Changes

HotSpotting (Plugin)

2,582 bytes added, 13:29, 18 January 2021
The Plugin exposes several methods through the classes ''Annotating'' and "HotSpotting" that can be used in {{UBIK}} customizing code.
= Annotating (write annotation to revision) =
Example script for the {{UBIK}} [[Debugger|Whobert]] that shows the basic capabilities of the Plugin.
UBIK.Document.DocumentClass sourcedoc = obj.Environment.UBIKDataFactory().ContentObject(new Guid("a847ab9f-1e4c-42ed-933f-833fb8d69b5e")) as UBIK.Document.DocumentClass;
var annotating // create an instance of the Annotated Document wrapper UBIK.Module.Annotation.AnnotatedDocument pdf = new AnnotatingUBIK.Module.Annotation.AnnotatedDocument(sourcedoc);  //Load the Inking imformation from optional you can set the UBIK documentrelation name InkingLayer[] ann = annotatingpdf.LoadSetRedlineRelationName(sourcedoc"MY_RELATION_NAME");  UBIK.Document.DocumentClass revDoc;  //If we have an Image, merge trhe inking directly into the picturecreate a new revision and write annotations to pdf file // True => clear annotations property afterwards if(annotatingpdf.GetAnnotationFileTypeWriteAnnotationToRevisionDoc(sourcedoctrue, out revDoc) == Annotating.AnnotationFileTypes.Image)
{
if(annotating revDoc.UpdateRedlineSave(ann, sourcedoc)) { annotating.Delete(sourcedoc); //sourcedoc.MP_CREATE_PDF = false;save revision document sourcedoc pdf.Save(); } } //If we have a pdf, create a subdocument (redline) first and merge the inking into the version rather than the save original else if(annotating.GetAnnotationFileType(sourcedoc) == Annotating.AnnotationFileTypes.PdfDocument) { if(annotating.CreateRedline(ann, sourcedoc, "REL_FILEDOC_REDLINEDOC")) { //sourcedoc.MP_CREATE_PDF = false; sourcedoc.Save(); } document with cleared annotations property
}
Debugger.Output(this, "*** Finished");
}
}
}
</source>
 
= Annotating (write annotation to original document) =
Example script for the {{UBIK}} [[Debugger|Whobert]] that shows the basic capabilities of the Plugin.
 
<source lang="csharp">
 
using System;
using System.Windows.Forms;
using UBIK.Kernel;
using UBIK.Compiler;
using System.Linq;
using UBIK.Module.HotSpotting.Module;
using UBIK.WinX.HotSpotting.Models;
using UBIK.WinX.HotSpotting.Common;
 
namespace Studio
{
public class ObjectTest
{
public void TestObject (params BaseClass[] InVariables)
{
BaseClass obj = InVariables[0];
UBIK.Document.DocumentClass sourcedoc = obj.Environment.UBIKDataFactory().ContentObject(new Guid("a847ab9f-1e4c-42ed-933f-833fb8d69b5e")) as UBIK.Document.DocumentClass;
// create an instance of the Annotated Document wrapper
UBIK.Module.Annotation.AnnotatedDocument pdf = new UBIK.Module.Annotation.AnnotatedDocument(sourcedoc);
// write annotations to pdf file
// True => clear annotations property afterwards
pdf.WriteAnnotationToSourceDoc(true);
pdf.Save(); // save original document with cleared annotations property
Debugger.Output(this, "*** Finished");
Debugger.Output(this, "*** Finished");
}
}
}
</source>
 
= Annotating (old API) =
Example script for the {{UBIK}} [[Debugger|Whobert]] that shows the basic capabilities of the Plugin.
 
<source lang="csharp">
 
using System;
using System.Windows.Forms;
using UBIK.Kernel;
using UBIK.Compiler;
using System.Linq;
using UBIK.Module.HotSpotting.Module;
using UBIK.WinX.HotSpotting.Models;
using UBIK.WinX.HotSpotting.Common;
 
namespace Studio
{
public class ObjectTest
{
public void TestObject (params BaseClass[] InVariables)
{
BaseClass obj = InVariables[0];
UBIK.Document.DocumentClass sourcedoc = obj.Environment.UBIKDataFactory().ContentObject(new Guid("a847ab9f-1e4c-42ed-933f-833fb8d69b5e")) as UBIK.Document.DocumentClass;
var annotating = new Annotating();
//Load the Inking imformation from the UBIK document
InkingLayer[] ann = annotating.Load(sourcedoc);
//If we have an Image, merge trhe inking directly into the picture
if(annotating.GetAnnotationFileType(sourcedoc) == Annotating.AnnotationFileTypes.Image)
{
if(annotating.UpdateRedline(ann, sourcedoc))
{
annotating.Delete(sourcedoc);
//sourcedoc.MP_CREATE_PDF = false;
sourcedoc.Save();
}
}
//If we have a pdf, create a subdocument (redline) first and merge the inking into the version rather than the original
else if(annotating.GetAnnotationFileType(sourcedoc) == Annotating.AnnotationFileTypes.PdfDocument)
{
if(annotating.CreateRedline(ann, sourcedoc, "REL_FILEDOC_REDLINEDOC"))
{
//sourcedoc.MP_CREATE_PDF = false;
sourcedoc.Save();
}
}
Debugger.Output(this, "*** Finished");
}
}
1,579
edits