diff --git a/Examples/GroupDocs.Annotation.Examples.Java/Data/OutputFiles/Annotated.vsdx b/Examples/GroupDocs.Annotation.Examples.Java/Data/OutputFiles/Annotated.vsdx new file mode 100644 index 0000000..b166799 Binary files /dev/null and b/Examples/GroupDocs.Annotation.Examples.Java/Data/OutputFiles/Annotated.vsdx differ diff --git a/Examples/GroupDocs.Annotation.Examples.Java/Data/OutputFiles/annotated-text.pdf b/Examples/GroupDocs.Annotation.Examples.Java/Data/OutputFiles/annotated-text.pdf deleted file mode 100644 index f71424e..0000000 Binary files a/Examples/GroupDocs.Annotation.Examples.Java/Data/OutputFiles/annotated-text.pdf and /dev/null differ diff --git a/Examples/GroupDocs.Annotation.Examples.Java/pom.xml b/Examples/GroupDocs.Annotation.Examples.Java/pom.xml index abef5a9..de2e0d2 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/pom.xml +++ b/Examples/GroupDocs.Annotation.Examples.Java/pom.xml @@ -18,7 +18,7 @@ com.groupdocs groupdocs-annotation - 19.5 + 19.7 commons-io diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/CellsAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/CellsAnnotation.java index 5dd1f87..a5f6e0d 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/CellsAnnotation.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/CellsAnnotation.java @@ -5,13 +5,17 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.apache.commons.io.IOUtils; import com.groupdocs.annotation.domain.AnnotationInfo; +import com.groupdocs.annotation.domain.AnnotationType; +import com.groupdocs.annotation.domain.DocumentType; import com.groupdocs.annotation.domain.Point; +import com.groupdocs.annotation.domain.Rectangle; import com.groupdocs.annotation.domain.config.AnnotationConfig; import com.groupdocs.annotation.handler.AnnotationImageHandler; @@ -55,4 +59,35 @@ public static void addAnnotationInCells() { } //ExEnd:addAnnotationInCells } + + /* + * Add Ellipse Annotation in Cells + */ + public static void addEllipseAnnotationInCells() { + //ExStart:addEllipseAnnotationInCells + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + InputStream inputStream = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Ellipse annotation + AnnotationInfo ellipseAnnotation = new AnnotationInfo(); + ellipseAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); + ellipseAnnotation.setPageNumber(0); + ellipseAnnotation.setType(AnnotationType.Ellipse); + ellipseAnnotation.setCreatorName("Anonym A."); + annotations.add(ellipseAnnotation); + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(inputStream, annotations, DocumentType.Cells); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream( + Utilities.outputPath + File.separator + "cells-annotated.xlsx"); + IOUtils.copy(result, fileStream); + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:addEllipseAnnotationInCells + } } diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/DataStorage.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/DataStorage.java index 527da72..ffd1a1f 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/DataStorage.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/DataStorage.java @@ -258,6 +258,7 @@ public static void setBackgroundColor() { } // Updates the text in the annotation + public static void editTextFieldAnnotations() { //ExStart:editTextFieldAnnotations try { @@ -272,7 +273,7 @@ public static void editTextFieldAnnotations() { textFieldAnnotation.setAnnotationPosition(new Point(852.0, 201.0)); textFieldAnnotation.setFieldText("text in the box"); textFieldAnnotation.setFontFamily("Arial"); - textFieldAnnotation.setFontSize(10); + textFieldAnnotation.setFontSize(10D); textFieldAnnotation.setBox(new Rectangle(66f, 201f, 64f, 37f)); textFieldAnnotation.setPageNumber(0); textFieldAnnotation.setType(AnnotationType.TextField); @@ -284,7 +285,7 @@ public static void editTextFieldAnnotations() { final TextFieldInfo textFieldInfo = new TextFieldInfo(); textFieldInfo.setFieldText("new text"); textFieldInfo.setFontFamily("Colibri"); - textFieldInfo.setFontSize(12); + textFieldInfo.setFontSize(12D); SaveAnnotationTextResult saveTextFieldResult = annotator .saveTextField(createTextFieldAnnotationResult.getId(), textFieldInfo); System.out.println(saveTextFieldResult); @@ -472,6 +473,7 @@ public static void getCollaborator() { } // Updates document collaborator + public static void updateCollaborator() { //ExStart:updateCollaborator try { @@ -506,7 +508,7 @@ public static void updateCollaborator() { reviewerInfo.setAccessRights(AnnotationReviewerRights.All); // Update collaborator. Only color and access rights will be // updated. - reviewerInfo.setColor(3355443L); + reviewerInfo.setColor(3355443); SetCollaboratorsResult updateCollaboratorResult = annotator.updateCollaborator(documentId, reviewerInfo); System.out.println(updateCollaboratorResult); } catch (Exception e) { diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/DiagramsAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/DiagramsAnnotation.java new file mode 100644 index 0000000..98e52d7 --- /dev/null +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/DiagramsAnnotation.java @@ -0,0 +1,241 @@ +package GroupDocs.Annotation.Examples.Java; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.apache.commons.io.IOUtils; + +import com.groupdocs.annotation.domain.AnnotationInfo; +import com.groupdocs.annotation.domain.AnnotationType; +import com.groupdocs.annotation.domain.DocumentType; +import com.groupdocs.annotation.domain.PageData; +import com.groupdocs.annotation.domain.Rectangle; +import com.groupdocs.annotation.domain.RowData; +import com.groupdocs.annotation.domain.config.AnnotationConfig; +import com.groupdocs.annotation.domain.containers.DocumentInfoContainer; +import com.groupdocs.annotation.domain.image.PageImage; +import com.groupdocs.annotation.domain.options.ImageOptions; +import com.groupdocs.annotation.handler.AnnotationImageHandler; + +public class DiagramsAnnotation { + // ExStart:DiagramsAnnotation + /* + * document name + */ + public static String fileName = "sample.vsd"; + + public static void getDocInfoForDiagram() { + // ExStart:getDocInfoForDiagram + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + DocumentInfoContainer documentInfoContainer = annotator.getDocumentInfo(fileName); + + // Go through all pages + for (PageData pageData : documentInfoContainer.getPages()) { + System.out.println("Page number: " + pageData.getNumber()); + // Go through all page rows + for (int i = 0; i < pageData.getRows().size(); i++) { + RowData rowData = pageData.getRows().get(i); + // Write data to console + System.out.println("Row: " + (i + 1)); + System.out.println("Text: " + rowData.getText()); + System.out.println("Text width: " + rowData.getLineWidth()); + System.out.println("Text height: " + rowData.getLineHeight()); + System.out.println("Distance from left: " + rowData.getLineLeft()); + System.out.println("Distance from top: " + rowData.getLineTop()); + // Get words + String[] words = rowData.getText().split(" "); + // Go through all word coordinates + for (int j = 0; j < words.length; j++) { + int coordinateIndex = j == 0 ? 0 : j + 1; + // Write data to console + System.out.println("Word: '" + words[j] + "'"); + System.out.println("Word distance from left: " + rowData.getTextCoordinates().get(coordinateIndex)); + System.out.println("Word width: " + rowData.getTextCoordinates().get(coordinateIndex + 1)); + } + } + } + // ExEnd:getDocInfoForDiagram + } + + public static void getPageImagesForDiagramDocs() throws Throwable { + // ExStart:getPageImagesForDiagramDocs + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + List images = annotator.getPages(fileName, new ImageOptions()); + for (int i = 0; i < images.size(); i++) { + OutputStream fileStream = new FileOutputStream( + Utilities.outputPath + File.separator + "image_" + i + ".png"); + + final PageImage pageImage = images.get(i); + IOUtils.copy(pageImage.getStream(), fileStream); + } + // ExEnd:getPageImagesForDiagramDocs + } + + public static void addAnnotationDiagrams() throws Throwable { + // ExStart:addAnnotationDiagrams + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + + // Area annotation + AnnotationInfo areaAnnnotation = new AnnotationInfo(); + areaAnnnotation.setCreatedOn(new Date()); + areaAnnnotation.setType(AnnotationType.Area); + areaAnnnotation.setBox(new Rectangle(200, 114.5f, 282.3f, 103.7f)); + + // Polyline annotation + AnnotationInfo polylineAnnotation = new AnnotationInfo(); + polylineAnnotation.setCreatedOn(new Date()); + polylineAnnotation.setType(AnnotationType.Polyline); + polylineAnnotation.setBox(new Rectangle(206.3f, 106.61f, 456.04f, 307.97f)); + polylineAnnotation.setSvgPath( + "M436.293427230047,148.06338028169014l0,-0.9870892018779343l-0.9870892018779343,-0.9870892018779343l-1.9741784037558685,-0.9870892018779343l-0.9870892018779343,0l-0.9870892018779343,-0.9870892018779343l-1.9741784037558685,-0.9870892018779343l-0.9870892018779343,0l-1.9741784037558685,-0.9870892018779343l-1.9741784037558685,0l-4.935446009389671,-1.9741784037558685l-1.9741784037558685,0l-1.9741784037558685,-0.9870892018779343l-1.9741784037558685,0l-1.9741784037558685,-0.9870892018779343l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-1.9741784037558685,0l-3.948356807511737,0l-2.961267605633803,0l-3.948356807511737,0l-4.935446009389671,0l-3.948356807511737,0.9870892018779343l-4.935446009389671,0.9870892018779343l-6.90962441314554,0l-3.948356807511737,0.9870892018779343l-3.948356807511737,0l-2.961267605633803,1.9741784037558685l-3.948356807511737,0.9870892018779343l-6.90962441314554,1.9741784037558685l-6.90962441314554,0.9870892018779343l-12.832159624413146,2.961267605633803l-6.90962441314554,1.9741784037558685l-5.922535211267606,0.9870892018779343l-5.922535211267606,1.9741784037558685l-5.922535211267606,1.9741784037558685l-5.922535211267606,0.9870892018779343l-4.935446009389671,1.9741784037558685l-5.922535211267606,1.9741784037558685l-5.922535211267606,1.9741784037558685l-4.935446009389671,1.9741784037558685l-5.922535211267606,2.961267605633803l-5.922535211267606,3.948356807511737l-5.922535211267606,3.948356807511737l-4.935446009389671,3.948356807511737l-5.922535211267606,3.948356807511737l-5.922535211267606,3.948356807511737l-3.948356807511737,5.922535211267606l-3.948356807511737,4.935446009389671l-3.948356807511737,5.922535211267606l-3.948356807511737,6.90962441314554l-3.948356807511737,7.896713615023474l-0.9870892018779343,6.90962441314554l-1.9741784037558685,7.896713615023474l-1.9741784037558685,6.90962441314554l-0.9870892018779343,7.896713615023474l0,12.832159624413146l0,7.896713615023474l0,7.896713615023474l0.9870892018779343,7.896713615023474l1.9741784037558685,5.922535211267606l2.961267605633803,5.922535211267606l0.9870892018779343,5.922535211267606l2.961267605633803,6.90962441314554l3.948356807511737,5.922535211267606l4.935446009389671,4.935446009389671l3.948356807511737,5.922535211267606l3.948356807511737,5.922535211267606l3.948356807511737,5.922535211267606l5.922535211267606,5.922535211267606l5.922535211267606,5.922535211267606l5.922535211267606,5.922535211267606l6.90962441314554,5.922535211267606l7.896713615023474,5.922535211267606l7.896713615023474,5.922535211267606l17.767605633802816,8.883802816901408l11.845070422535212,3.948356807511737l11.845070422535212,4.935446009389671l23.690140845070424,8.883802816901408l41.45774647887324,6.90962441314554l31.586854460093896,3.948356807511737l16.780516431924884,0l16.780516431924884,1.9741784037558685l16.780516431924884,0l16.780516431924884,0l16.780516431924884,0l16.780516431924884,0l16.780516431924884,-1.9741784037558685l14.806338028169014,-1.9741784037558685l14.806338028169014,-1.9741784037558685l12.832159624413146,-1.9741784037558685l10.857981220657276,-2.961267605633803l10.857981220657276,-2.961267605633803l8.883802816901408,-4.935446009389671l8.883802816901408,-4.935446009389671l6.90962441314554,-6.90962441314554l6.90962441314554,-6.90962441314554l8.883802816901408,-16.780516431924884l4.935446009389671,-7.896713615023474l3.948356807511737,-8.883802816901408l4.935446009389671,-7.896713615023474l4.935446009389671,-7.896713615023474l3.948356807511737,-13.81924882629108l1.9741784037558685,-18.754694835680752l0,-7.896713615023474l0,-12.832159624413146l-1.9741784037558685,-15.793427230046948l-1.9741784037558685,-15.793427230046948l-4.935446009389671,-15.793427230046948l-8.883802816901408,-15.793427230046948l-12.832159624413146,-23.690140845070424l-10.857981220657276,-10.857981220657276l-5.922535211267606,-3.948356807511737l-12.832159624413146,-8.883802816901408l-9.870892018779342,-8.883802816901408l-5.922535211267606,-3.948356807511737l-12.832159624413146,-5.922535211267606l-15.793427230046948,-8.883802816901408l-13.81924882629108,-4.935446009389671l-11.845070422535212,-2.961267605633803l-11.845070422535212,-3.948356807511737l-11.845070422535212,-3.948356807511737l-5.922535211267606,-1.9741784037558685l-11.845070422535212,-2.961267605633803l-11.845070422535212,-1.9741784037558685l-5.922535211267606,-0.9870892018779343l-10.857981220657276,-1.9741784037558685l-10.857981220657276,-2.961267605633803l-9.870892018779342,0l-0.9870892018779343,0l-0.9870892018779343,0l-0.9870892018779343,0l-0.9870892018779343,0l0,-0.9870892018779343l1.9741784037558685,0"); + + // Text field annotation + AnnotationInfo textFieldAnnotation = new AnnotationInfo(); + textFieldAnnotation.setCreatedOn(new Date()); + textFieldAnnotation.setType(AnnotationType.TextField); + textFieldAnnotation.setBox(new Rectangle(162.87f, 267.5f, 91.8f, 42.45f)); + textFieldAnnotation.setBackgroundColor(-15988609); + textFieldAnnotation.setFieldText("Annotation Text"); + + // Arrow annotation + AnnotationInfo arrowAnnotation = new AnnotationInfo(); + arrowAnnotation.setType(AnnotationType.Arrow); + arrowAnnotation.setBox( + new Rectangle(435.77464788732397f, 148.05164319248826f, -66.34389671361504f, 53.07511737089203f)); + + // Resource redaction annotation + AnnotationInfo resourceRedactionAnnotation = new AnnotationInfo(); + resourceRedactionAnnotation.setType(AnnotationType.ResourcesRedaction); + resourceRedactionAnnotation.setBox(new Rectangle(200, 114.5f, 282.3f, 103.7f)); + + annotations.add(areaAnnnotation); + annotations.add(polylineAnnotation); + annotations.add(textFieldAnnotation); + annotations.add(arrowAnnotation); + annotations.add(resourceRedactionAnnotation); + + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); + + // Save result stream to file. + OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsdx"); + IOUtils.copy(result, fileStream); + // ExEnd:addAnnotationDiagrams + } + + public static void addDistanceAnnotationInDiagrams() throws Throwable { + // ExStart:addDistanceAnnotationInDiagrams + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Distance annotation + AnnotationInfo distanceAnnotation = new AnnotationInfo(); + distanceAnnotation.setCreatedOn(new Date()); + distanceAnnotation.setType(AnnotationType.Distance); + distanceAnnotation.setBox(new Rectangle((float)248.73202514648438, (float)287.85653686523438, (float)115.9178466796875, (float)25.143020629882812)); + distanceAnnotation.setSvgPath("M248.73201877934272,295.5439436619718 l115.28309859154929,-4.192112676056338"); + + annotations.add(distanceAnnotation); + + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsdx"); + IOUtils.copy(result, fileStream); + // ExEnd:addDistanceAnnotationInDiagrams + } + + public static void addPointAnnotationInDiagrams() throws Throwable { + // ExStart:addPointAnnotationInDiagrams + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Point annotation + AnnotationInfo pointAnnnotation = new AnnotationInfo(); + pointAnnnotation.setCreatedOn(new Date()); + pointAnnnotation.setType(AnnotationType.Point); + pointAnnnotation.setBox(new Rectangle(150.32f, 99.22f, 0, 0)); + pointAnnnotation.setPageNumber(0); + + annotations.add(pointAnnnotation); + + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsdx"); + IOUtils.copy(result, fileStream); + // ExEnd:addPointAnnotationInDiagrams + } + + public static void addWatermarkAnnotationInDiagrams() throws Throwable { + // ExStart:addWatermarkAnnotationInDiagrams + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Watermark annotation + AnnotationInfo watermarkAnnnotation = new AnnotationInfo(); + watermarkAnnnotation.setCreatedOn(new Date()); + watermarkAnnnotation.setFieldText("Watermark text"); + watermarkAnnnotation.setFontColor(16711680); + watermarkAnnnotation.setFontFamily("Microsoft Sans Serif"); + watermarkAnnnotation.setFontSize(17D); + //watermarkAnnnotation.setOpacity(0.3); + watermarkAnnnotation.setType(AnnotationType.Watermark); + + annotations.add(watermarkAnnnotation); + + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsd"); + IOUtils.copy(result, fileStream); + // ExEnd:addWatermarkAnnotationInDiagrams + } + + /* + * Add Ellipse Annotation in Diagrams + */ + public static void addEllipseAnnotationInDiagrams() { + //ExStart:addEllipseAnnotationInDiagrams + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + InputStream inputStream = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Ellipse annotation + AnnotationInfo ellipseAnnotation = new AnnotationInfo(); + ellipseAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); + ellipseAnnotation.setPageNumber(0); + ellipseAnnotation.setType(AnnotationType.Ellipse); + ellipseAnnotation.setCreatorName("Anonym A."); + annotations.add(ellipseAnnotation); + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(inputStream, annotations, DocumentType.Diagram); + + OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsdx"); + System.out.println(result.available()); + IOUtils.copy(result, fileStream); + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:addEllipseAnnotationInDiagrams + } +} diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/EmailAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/EmailAnnotation.java index 7dd6d0d..6ebefc8 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/EmailAnnotation.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/EmailAnnotation.java @@ -20,6 +20,7 @@ import com.groupdocs.annotation.handler.AnnotationImageHandler; public class EmailAnnotation { + //Sami public static void differentAnnotationsForEmail(String fileName) throws Throwable, Throwable{ //ExStart:differentAnnotationsForEmail AnnotationConfig cfg = Utilities.getConfiguration(); @@ -50,14 +51,14 @@ public static void differentAnnotationsForEmail(String fileName) throws Throwabl AnnotationInfo textFieldAnnotation = new AnnotationInfo(); textFieldAnnotation.setFieldText("text in the box"); textFieldAnnotation.setFontFamily("Arial"); - textFieldAnnotation.setFontSize(10); + textFieldAnnotation.setFontSize(10D); textFieldAnnotation.setBox(new Rectangle(92f, 73f, 106f, 45f)); textFieldAnnotation.setPageNumber(0); textFieldAnnotation.setType(AnnotationType.TextField); AnnotationInfo textReplacementAnnotation = new AnnotationInfo(); textReplacementAnnotation.setFieldText(" \"REPLACED TEXT\" "); - textReplacementAnnotation.setFontSize(10); + textReplacementAnnotation.setFontSize(10D); textReplacementAnnotation.setSvgPath("[{\"x\":251.224,\"y\":637.20401},{\"x\":327.89,\"y\":637.20401},{\"x\":251.224,\"y\":628.20401},{\"x\":327.89,\"y\":628.20401}]"); textReplacementAnnotation.setPageNumber(0); textReplacementAnnotation.setType(AnnotationType.TextReplacement); diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/HtmlAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/HtmlAnnotation.java index 106408a..113db60 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/HtmlAnnotation.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/HtmlAnnotation.java @@ -20,6 +20,7 @@ import com.groupdocs.annotation.handler.AnnotationImageHandler; public class HtmlAnnotation { + //Sami public static void createAnnotationForHtml(String fileName) throws Throwable, Throwable{ //ExStart:createAnnotationForHtml AnnotationConfig cfg = Utilities.getConfiguration(); @@ -50,14 +51,14 @@ public static void createAnnotationForHtml(String fileName) throws Throwable, Th AnnotationInfo textFieldAnnotation = new AnnotationInfo(); textFieldAnnotation.setFieldText("text in the box"); textFieldAnnotation.setFontFamily("Arial"); - textFieldAnnotation.setFontSize(10); + textFieldAnnotation.setFontSize(10D); textFieldAnnotation.setBox(new Rectangle(92f, 73f, 106f, 45f)); textFieldAnnotation.setPageNumber(1); textFieldAnnotation.setType(AnnotationType.TextField); AnnotationInfo textReplacementAnnotation = new AnnotationInfo(); textReplacementAnnotation.setFieldText(" \"REPLACED TEXT\" "); - textReplacementAnnotation.setFontSize(10); + textReplacementAnnotation.setFontSize(10D); textReplacementAnnotation.setSvgPath("[{\"x\":251.224,\"y\":637.20401},{\"x\":327.89,\"y\":637.20401},{\"x\":251.224,\"y\":628.20401},{\"x\":327.89,\"y\":628.20401}]"); textReplacementAnnotation.setPageNumber(0); textReplacementAnnotation.setType(AnnotationType.TextReplacement); diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/ImagesAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/ImagesAnnotation.java index 02a2320..4466782 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/ImagesAnnotation.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/ImagesAnnotation.java @@ -30,10 +30,13 @@ public class ImagesAnnotation { /* * document name */ + public static String fileName = "image.png"; + // From version 17.1.0 you can work with images of EMF/WMF, CAD-files (DWG), // DICOM, DjVu, PNG, JPG, TIFF, BMP and GIF(static without animation) format // images - public static void differentAnnotationsForImages(String fileName) throws Throwable { + + public static void differentAnnotationsForImages() throws Throwable { // ExStart:differentAnnotationsForImages AnnotationConfig cfg = Utilities.getConfiguration(); AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); @@ -137,7 +140,7 @@ public static void differentAnnotationsForImages(String fileName) throws Throwab watermarkAnnotation.setFieldText("This is watermark"); watermarkAnnotation.setFontFamily("arial"); watermarkAnnotation.setBox(new Rectangle(200, 250, 50, 0)); - watermarkAnnotation.setFontSize(25); + watermarkAnnotation.setFontSize(25D); watermarkAnnotation.setFontColor(15988609); AnnotationInfo distanceAnnotation = new AnnotationInfo(); @@ -175,180 +178,35 @@ public static void differentAnnotationsForImages(String fileName) throws Throwab // ExEnd:differentAnnotationsForImages } - - public static void getDocInfoForDiagram(String fileName) { - // ExStart:getDocInfoForDiagram - AnnotationConfig cfg = Utilities.getConfiguration(); - AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); - DocumentInfoContainer documentInfoContainer = annotator.getDocumentInfo(fileName); - - // Go through all pages - for (PageData pageData : documentInfoContainer.getPages()) { - System.out.println("Page number: " + pageData.getNumber()); - // Go through all page rows - for (int i = 0; i < pageData.getRows().size(); i++) { - RowData rowData = pageData.getRows().get(i); - // Write data to console - System.out.println("Row: " + (i + 1)); - System.out.println("Text: " + rowData.getText()); - System.out.println("Text width: " + rowData.getLineWidth()); - System.out.println("Text height: " + rowData.getLineHeight()); - System.out.println("Distance from left: " + rowData.getLineLeft()); - System.out.println("Distance from top: " + rowData.getLineTop()); - // Get words - String[] words = rowData.getText().split(" "); - // Go through all word coordinates - for (int j = 0; j < words.length; j++) { - int coordinateIndex = j == 0 ? 0 : j + 1; - // Write data to console - System.out.println("Word: '" + words[j] + "'"); - System.out.println("Word distance from left: " + rowData.getTextCoordinates().get(coordinateIndex)); - System.out.println("Word width: " + rowData.getTextCoordinates().get(coordinateIndex + 1)); - } - } - } - // ExEnd:getDocInfoForDiagram - } - - public static void getPageImagesForDiagramDocs(String fileName) throws Throwable { - // ExStart:getPageImagesForDiagramDocs - AnnotationConfig cfg = Utilities.getConfiguration(); - AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); - List images = annotator.getPages(fileName, new ImageOptions()); - for (int i = 0; i < images.size(); i++) { - OutputStream fileStream = new FileOutputStream( - Utilities.outputPath + File.separator + "image_" + i + ".png"); - - final PageImage pageImage = images.get(i); - IOUtils.copy(pageImage.getStream(), fileStream); - } - // ExEnd:getPageImagesForDiagramDocs - } - - public static void addAnnotationDiagrams(String fileName) throws Throwable { - // ExStart:addAnnotationDiagrams - AnnotationConfig cfg = Utilities.getConfiguration(); - AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); - InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); - List annotations = new ArrayList(); - - // Area annotation - AnnotationInfo areaAnnnotation = new AnnotationInfo(); - areaAnnnotation.setCreatedOn(new Date()); - areaAnnnotation.setType(AnnotationType.Area); - areaAnnnotation.setBox(new Rectangle(200, 114.5f, 282.3f, 103.7f)); - - // Polyline annotation - AnnotationInfo polylineAnnotation = new AnnotationInfo(); - polylineAnnotation.setCreatedOn(new Date()); - polylineAnnotation.setType(AnnotationType.Polyline); - polylineAnnotation.setBox(new Rectangle(206.3f, 106.61f, 456.04f, 307.97f)); - polylineAnnotation.setSvgPath( - "M436.293427230047,148.06338028169014l0,-0.9870892018779343l-0.9870892018779343,-0.9870892018779343l-1.9741784037558685,-0.9870892018779343l-0.9870892018779343,0l-0.9870892018779343,-0.9870892018779343l-1.9741784037558685,-0.9870892018779343l-0.9870892018779343,0l-1.9741784037558685,-0.9870892018779343l-1.9741784037558685,0l-4.935446009389671,-1.9741784037558685l-1.9741784037558685,0l-1.9741784037558685,-0.9870892018779343l-1.9741784037558685,0l-1.9741784037558685,-0.9870892018779343l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-2.961267605633803,0l-1.9741784037558685,0l-3.948356807511737,0l-2.961267605633803,0l-3.948356807511737,0l-4.935446009389671,0l-3.948356807511737,0.9870892018779343l-4.935446009389671,0.9870892018779343l-6.90962441314554,0l-3.948356807511737,0.9870892018779343l-3.948356807511737,0l-2.961267605633803,1.9741784037558685l-3.948356807511737,0.9870892018779343l-6.90962441314554,1.9741784037558685l-6.90962441314554,0.9870892018779343l-12.832159624413146,2.961267605633803l-6.90962441314554,1.9741784037558685l-5.922535211267606,0.9870892018779343l-5.922535211267606,1.9741784037558685l-5.922535211267606,1.9741784037558685l-5.922535211267606,0.9870892018779343l-4.935446009389671,1.9741784037558685l-5.922535211267606,1.9741784037558685l-5.922535211267606,1.9741784037558685l-4.935446009389671,1.9741784037558685l-5.922535211267606,2.961267605633803l-5.922535211267606,3.948356807511737l-5.922535211267606,3.948356807511737l-4.935446009389671,3.948356807511737l-5.922535211267606,3.948356807511737l-5.922535211267606,3.948356807511737l-3.948356807511737,5.922535211267606l-3.948356807511737,4.935446009389671l-3.948356807511737,5.922535211267606l-3.948356807511737,6.90962441314554l-3.948356807511737,7.896713615023474l-0.9870892018779343,6.90962441314554l-1.9741784037558685,7.896713615023474l-1.9741784037558685,6.90962441314554l-0.9870892018779343,7.896713615023474l0,12.832159624413146l0,7.896713615023474l0,7.896713615023474l0.9870892018779343,7.896713615023474l1.9741784037558685,5.922535211267606l2.961267605633803,5.922535211267606l0.9870892018779343,5.922535211267606l2.961267605633803,6.90962441314554l3.948356807511737,5.922535211267606l4.935446009389671,4.935446009389671l3.948356807511737,5.922535211267606l3.948356807511737,5.922535211267606l3.948356807511737,5.922535211267606l5.922535211267606,5.922535211267606l5.922535211267606,5.922535211267606l5.922535211267606,5.922535211267606l6.90962441314554,5.922535211267606l7.896713615023474,5.922535211267606l7.896713615023474,5.922535211267606l17.767605633802816,8.883802816901408l11.845070422535212,3.948356807511737l11.845070422535212,4.935446009389671l23.690140845070424,8.883802816901408l41.45774647887324,6.90962441314554l31.586854460093896,3.948356807511737l16.780516431924884,0l16.780516431924884,1.9741784037558685l16.780516431924884,0l16.780516431924884,0l16.780516431924884,0l16.780516431924884,0l16.780516431924884,-1.9741784037558685l14.806338028169014,-1.9741784037558685l14.806338028169014,-1.9741784037558685l12.832159624413146,-1.9741784037558685l10.857981220657276,-2.961267605633803l10.857981220657276,-2.961267605633803l8.883802816901408,-4.935446009389671l8.883802816901408,-4.935446009389671l6.90962441314554,-6.90962441314554l6.90962441314554,-6.90962441314554l8.883802816901408,-16.780516431924884l4.935446009389671,-7.896713615023474l3.948356807511737,-8.883802816901408l4.935446009389671,-7.896713615023474l4.935446009389671,-7.896713615023474l3.948356807511737,-13.81924882629108l1.9741784037558685,-18.754694835680752l0,-7.896713615023474l0,-12.832159624413146l-1.9741784037558685,-15.793427230046948l-1.9741784037558685,-15.793427230046948l-4.935446009389671,-15.793427230046948l-8.883802816901408,-15.793427230046948l-12.832159624413146,-23.690140845070424l-10.857981220657276,-10.857981220657276l-5.922535211267606,-3.948356807511737l-12.832159624413146,-8.883802816901408l-9.870892018779342,-8.883802816901408l-5.922535211267606,-3.948356807511737l-12.832159624413146,-5.922535211267606l-15.793427230046948,-8.883802816901408l-13.81924882629108,-4.935446009389671l-11.845070422535212,-2.961267605633803l-11.845070422535212,-3.948356807511737l-11.845070422535212,-3.948356807511737l-5.922535211267606,-1.9741784037558685l-11.845070422535212,-2.961267605633803l-11.845070422535212,-1.9741784037558685l-5.922535211267606,-0.9870892018779343l-10.857981220657276,-1.9741784037558685l-10.857981220657276,-2.961267605633803l-9.870892018779342,0l-0.9870892018779343,0l-0.9870892018779343,0l-0.9870892018779343,0l-0.9870892018779343,0l0,-0.9870892018779343l1.9741784037558685,0"); - - // Text field annotation - AnnotationInfo textFieldAnnotation = new AnnotationInfo(); - textFieldAnnotation.setCreatedOn(new Date()); - textFieldAnnotation.setType(AnnotationType.TextField); - textFieldAnnotation.setBox(new Rectangle(162.87f, 267.5f, 91.8f, 42.45f)); - textFieldAnnotation.setBackgroundColor(-15988609); - textFieldAnnotation.setFieldText("Annotation Text"); - - // Arrow annotation - AnnotationInfo arrowAnnotation = new AnnotationInfo(); - arrowAnnotation.setType(AnnotationType.Arrow); - arrowAnnotation.setBox( - new Rectangle(435.77464788732397f, 148.05164319248826f, -66.34389671361504f, 53.07511737089203f)); - - // Resource redaction annotation - AnnotationInfo resourceRedactionAnnotation = new AnnotationInfo(); - resourceRedactionAnnotation.setType(AnnotationType.ResourcesRedaction); - resourceRedactionAnnotation.setBox(new Rectangle(200, 114.5f, 282.3f, 103.7f)); - - annotations.add(areaAnnnotation); - annotations.add(polylineAnnotation); - annotations.add(textFieldAnnotation); - annotations.add(arrowAnnotation); - annotations.add(resourceRedactionAnnotation); - - // Add annotation to the document - InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); - - // Save result stream to file. - OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsdx"); - IOUtils.copy(result, fileStream); - // ExEnd:addAnnotationDiagrams - } - public static void addDistanceAnnotationInDiagrams(String fileName) throws Throwable { - // ExStart:addDistanceAnnotationInDiagrams - AnnotationConfig cfg = Utilities.getConfiguration(); - AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); - InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); - List annotations = new ArrayList(); - // Distance annotation - AnnotationInfo distanceAnnotation = new AnnotationInfo(); - distanceAnnotation.setCreatedOn(new Date()); - distanceAnnotation.setType(AnnotationType.Distance); - distanceAnnotation.setBox(new Rectangle((float)248.73202514648438, (float)287.85653686523438, (float)115.9178466796875, (float)25.143020629882812)); - distanceAnnotation.setSvgPath("M248.73201877934272,295.5439436619718 l115.28309859154929,-4.192112676056338"); - - annotations.add(distanceAnnotation); - - // Add annotation to the document - InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); - // Save result stream to file. - OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsdx"); - IOUtils.copy(result, fileStream); - // ExEnd:addDistanceAnnotationInDiagrams - } - - public static void addPointAnnotationInDiagrams(String fileName) throws Throwable { - // ExStart:addPointAnnotationInDiagrams - AnnotationConfig cfg = Utilities.getConfiguration(); - AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); - InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); - List annotations = new ArrayList(); - // Point annotation - AnnotationInfo pointAnnnotation = new AnnotationInfo(); - pointAnnnotation.setCreatedOn(new Date()); - pointAnnnotation.setType(AnnotationType.Point); - pointAnnnotation.setBox(new Rectangle(150.32f, 99.22f, 0, 0)); - pointAnnnotation.setPageNumber(0); - - annotations.add(pointAnnnotation); - - // Add annotation to the document - InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); - // Save result stream to file. - OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsdx"); - IOUtils.copy(result, fileStream); - // ExEnd:addPointAnnotationInDiagrams - } - - public static void addWatermarkAnnotationInDiagrams(String fileName) throws Throwable { - // ExStart:addWatermarkAnnotationInDiagrams - AnnotationConfig cfg = Utilities.getConfiguration(); - AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); - InputStream cleanDiagramFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); - List annotations = new ArrayList(); - // Watermark annotation - AnnotationInfo watermarkAnnnotation = new AnnotationInfo(); - watermarkAnnnotation.setCreatedOn(new Date()); - watermarkAnnnotation.setFieldText("Watermark text"); - watermarkAnnnotation.setFontColor(16711680); - watermarkAnnnotation.setFontFamily("Microsoft Sans Serif"); - watermarkAnnnotation.setFontSize(17); - //watermarkAnnnotation.setOpacity(0.3); - watermarkAnnnotation.setType(AnnotationType.Watermark); - - annotations.add(watermarkAnnnotation); - - // Add annotation to the document - InputStream result = annotator.exportAnnotationsToDocument(cleanDiagramFile, annotations); - // Save result stream to file. - OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Annotated.vsd"); - IOUtils.copy(result, fileStream); - // ExEnd:addWatermarkAnnotationInDiagrams + /* + * Add Ellipse Annotation in Images + */ + public static void addEllipseAnnotationInImages() { + //ExStart:addEllipseAnnotationInImages + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + InputStream inputStream = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Ellipse annotation + AnnotationInfo ellipseAnnotation = new AnnotationInfo(); + ellipseAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); + ellipseAnnotation.setPageNumber(0); + ellipseAnnotation.setType(AnnotationType.Ellipse); + ellipseAnnotation.setCreatorName("Anonym A."); + annotations.add(ellipseAnnotation); + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(inputStream, annotations, DocumentType.Images); + + OutputStream fileStream = new FileOutputStream(Utilities.outputPath + File.separator + "Image-annotated.png"); + System.out.println(result.available()); + IOUtils.copy(result, fileStream); + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:addEllipseAnnotationInImages } } diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/MainClass.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/MainClass.java index d559060..d996429 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/MainClass.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/MainClass.java @@ -6,7 +6,7 @@ public static void main(String[] args) throws Throwable { // Apply license - // Utilities.applyLicenseFromFile(); + // Utilities.applyLicenseFromFile(); // Annotations in PDF @@ -24,20 +24,27 @@ public static void main(String[] args) throws Throwable { // PDFAnnotation.addUnderlineAnnotationInPDF(); // PDFAnnotation.addDistanceAnnotationInPDF(); // PDFAnnotation.usersWithDifferentRights(); - // PDFAnnotation.gettingTextCoordinates("sample.pdf"); - + // PDFAnnotation.gettingTextCoordinates("sample.pdf"); // PDFAnnotation.exportAnnotationsUsingExportOption(); + // PDFAnnotation.addEllipseAnnotationInPDF(); + // PDFAnnotation.getThumbnailsOfPagesForPDF(); + // PDFAnnotation.setWatermarkAngleForPDF(); + // Annotation in Cells // CellsAnnotation.addAnnotationInCells(); + + // CellsAnnotation.addEllipseAnnotationInCells(); // Annotation in Slides // SlidesAnnotation.addAnnotationInSlides(); // SlidesAnnotation.differentAnnotationsForSlides(); // SlidesAnnotation.importingAnnotationsToSlide(); + + // SlidesAnnotation.addEllipseAnnotationInSlides(); // Annotation in Words @@ -51,12 +58,13 @@ public static void main(String[] args) throws Throwable { // WordsAnnotation.addTextRedactionAnnotationInWords(); // WordsAnnotation.addResourceRedactionAnnotationInWords(); // WordsAnnotation.addUnderlineAnnotationInWords(); - // WordsAnnotation.importingAnnotationsFromWordDoc(); - + // WordsAnnotation.importingAnnotationsFromWordDoc(); // WordsAnnotation.addDistanceAnnotationInWords(); // WordsAnnotation.addPolylineAnnotationInWords(); // WordsAnnotation.addWatermarkAnnotationInWords(); // WordsAnnotation.addPointAnnotationInWords(); + + // WordsAnnotation.addEllipseAnnotationInWords(); // Data Storage Functions @@ -77,16 +85,24 @@ public static void main(String[] args) throws Throwable { // DataStorage.managesCollaboratorRights(); // DataStorage.exportAnnotations(); - // Annotation in Images/Diagrams - - // ImagesAnnotation.differentAnnotationsForImages("image.png"); - // ImagesAnnotation.getDocInfoForDiagram("sample.vsd"); - // ImagesAnnotation.getPageImagesForDiagramDocs("sample.vsd"); - // ImagesAnnotation.addAnnotationDiagrams("sample.vsd"); + // Annotation in Images - // ImagesAnnotation.addDistanceAnnotationInDiagrams("sample.vsd"); - // ImagesAnnotation.addPointAnnotationInDiagrams("sample.vsd"); - // ImagesAnnotation.addWatermarkAnnotationInDiagrams("sample.vsd"); + // ImagesAnnotation.differentAnnotationsForImages(); + + // ImagesAnnotation.addEllipseAnnotationInImages(); + + // Annotation in Diagrams + + // DiagramsAnnotation.getDocInfoForDiagram(); + // DiagramsAnnotation.getPageImagesForDiagramDocs(); + // DiagramsAnnotation.addAnnotationDiagrams(); + // DiagramsAnnotation.addDistanceAnnotationInDiagrams(); + // DiagramsAnnotation.addPointAnnotationInDiagrams(); + // DiagramsAnnotation.addWatermarkAnnotationInDiagrams(); + + // DiagramsAnnotation.addEllipseAnnotationInDiagrams(); + + // Annotation in Emails diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/PDFAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/PDFAnnotation.java index e8fc29c..6306a66 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/PDFAnnotation.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/PDFAnnotation.java @@ -24,6 +24,7 @@ import com.groupdocs.annotation.domain.RowData; import com.groupdocs.annotation.domain.config.AnnotationConfig; import com.groupdocs.annotation.domain.containers.DocumentInfoContainer; +import com.groupdocs.annotation.domain.image.PageImage; import com.groupdocs.annotation.domain.options.ExportOptions; import com.groupdocs.annotation.domain.results.CreateAnnotationResult; import com.groupdocs.annotation.domain.results.GetCollaboratorsResult; @@ -233,6 +234,7 @@ public static void addPolyLineAnnotationInPDF() { /* * add text field annotation in PDF */ + public static void addTextFieldAnnotationInPDF() { //ExStart:addTextFieldAnnotationInPDF try { @@ -246,7 +248,7 @@ public static void addTextFieldAnnotationInPDF() { textFieldAnnotation.setAnnotationPosition(new Point(852.0, 201.0)); textFieldAnnotation.setFieldText("text in the box"); textFieldAnnotation.setFontFamily("Arial"); - textFieldAnnotation.setFontSize(10); + textFieldAnnotation.setFontSize(10D); textFieldAnnotation.setBox(new Rectangle(66f, 201f, 64f, 37f)); textFieldAnnotation.setPageNumber(0); textFieldAnnotation.setType(AnnotationType.TextField); @@ -268,6 +270,7 @@ public static void addTextFieldAnnotationInPDF() { /* * add watermark annotation in PDF */ + public static void addWatermarkAnnotationInPDF() { //ExStart:addWatermarkAnnotationInPDF try { @@ -281,11 +284,11 @@ public static void addWatermarkAnnotationInPDF() { watermarkAnnotation.setAnnotationPosition(new Point(852.0, 300.0)); watermarkAnnotation.setFieldText("TEXT STAMP"); watermarkAnnotation.setFontFamily("Microsoft Sans Serif"); - watermarkAnnotation.setFontSize(10); + watermarkAnnotation.setFontSize(10D); watermarkAnnotation.setFontColor(2222222); watermarkAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); watermarkAnnotation.setPageNumber(0); - watermarkAnnotation.setType(AnnotationType.TextField); + watermarkAnnotation.setType(AnnotationType.Watermark); watermarkAnnotation.setCreatorName("Anonym A."); annotations.add(watermarkAnnotation); // Add annotation to the document @@ -304,6 +307,7 @@ public static void addWatermarkAnnotationInPDF() { /* * add text replacement annotation in PDF */ + public static void addTextReplacementAnnotationInPDF() { //ExStart:addTextReplacementAnnotationInPDF try { @@ -316,7 +320,7 @@ public static void addTextReplacementAnnotationInPDF() { AnnotationInfo textReplacementAnnotation = new AnnotationInfo(); textReplacementAnnotation.setAnnotationPosition(new Point(852.0, 172.0)); textReplacementAnnotation.setFieldText("Replaced text"); - textReplacementAnnotation.setFontSize(10); + textReplacementAnnotation.setFontSize(10D); textReplacementAnnotation.setBox(new Rectangle(68f, 154f, 102f, 9f)); textReplacementAnnotation.setPageNumber(0); textReplacementAnnotation.setType(AnnotationType.TextReplacement); @@ -677,4 +681,104 @@ public static void exportAnnotationsUsingExportOption() { } //ExEnd:exportAnnotationsUsingExportOption } + + /* + * Add Ellipse Annotation in PDF + */ + public static void addEllipseAnnotationInPDF() { + //ExStart:addEllipseAnnotationInPDF + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + InputStream inputStream = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Ellipse annotation + AnnotationInfo ellipseAnnotation = new AnnotationInfo(); + ellipseAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); + ellipseAnnotation.setPageNumber(0); + ellipseAnnotation.setType(AnnotationType.Ellipse); + ellipseAnnotation.setCreatorName("Anonym A."); + annotations.add(ellipseAnnotation); + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(inputStream, annotations, DocumentType.Pdf); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream( + Utilities.outputPath + File.separator + "annotated-ellipsed.pdf"); + IOUtils.copy(result, fileStream); + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:addEllipseAnnotationInPDF + } + + /* + * Get Thumbnails Of Document Pages + */ + public static void getThumbnailsOfPagesForPDF() { + //ExStart:getThumbnailsOfPagesForPDF + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + //InputStream inputFile = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List pages = annotator.getPages(fileName); + + // get thumbnails: + for (int i = 0; i < pages.size(); i++) { + InputStream stream = pages.get(i).getThumbnail(); + // do something with stream + } + + // Default image size was 300x180. + for (int i = 0; i < pages.size(); i++) { + InputStream stream = pages.get(i).getThumbnail(100, 100); + // do something with stream + } + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:getThumbnailsOfPagesForPDF + } + + /* + * Set Watermark Angle for PDF + */ + public static void setWatermarkAngleForPDF() { + //ExStart:setWatermarkAngleForPDF + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + InputStream inputStream = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Watermark annotation + AnnotationInfo watermarkAnnotation = new AnnotationInfo(); + watermarkAnnotation.setFieldText("TEXT STAMP"); + watermarkAnnotation.setFontFamily("Microsoft Sans Serif"); + watermarkAnnotation.setFontSize(10D); + watermarkAnnotation.setFontColor(2222222); + watermarkAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); + watermarkAnnotation.setPageNumber(0); + watermarkAnnotation.setType(AnnotationType.Watermark); + watermarkAnnotation.setCreatorName("Anonym A."); + //set Angle + watermarkAnnotation.setAngle(45.0); + annotations.add(watermarkAnnotation); + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(inputStream, annotations, DocumentType.Pdf); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream( + Utilities.outputPath + File.separator + "annotated-angled-watermark.pdf"); + IOUtils.copy(result, fileStream); + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:setWatermarkAngleForPDF + } + + } diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/SlidesAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/SlidesAnnotation.java index 3001115..8431e30 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/SlidesAnnotation.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/SlidesAnnotation.java @@ -64,6 +64,7 @@ public static void addAnnotationInSlides() { /* * Creating annotations of different types */ + public static void differentAnnotationsForSlides() throws Throwable{ //ExStart:differentAnnotationsForSlides AnnotationConfig cfg = Utilities.getConfiguration(); @@ -140,7 +141,7 @@ public static void differentAnnotationsForSlides() throws Throwable{ watermarkAnnotation.setFieldText("This is watermark"); watermarkAnnotation.setFontFamily("arial"); watermarkAnnotation.setBox(new Rectangle(100,50,50,0)); - watermarkAnnotation.setFontSize(25); + watermarkAnnotation.setFontSize(25D); watermarkAnnotation.setFontColor(-15988609); //Text annotations @@ -204,4 +205,35 @@ public static void importingAnnotationsToSlide() throws Throwable{ IOUtils.copy(output, fileStream); //ExEnd:importingAnnotationsToSlide } + + /* + * Add Ellipse Annotation in Slides + */ + public static void addEllipseAnnotationInSlides() { + //ExStart:addEllipseAnnotationInSlides + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + InputStream inputStream = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Ellipse annotation + AnnotationInfo ellipseAnnotation = new AnnotationInfo(); + ellipseAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); + ellipseAnnotation.setPageNumber(0); + ellipseAnnotation.setType(AnnotationType.Ellipse); + ellipseAnnotation.setCreatorName("Anonym A."); + annotations.add(ellipseAnnotation); + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(inputStream, annotations, DocumentType.Slides); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream( + Utilities.outputPath + File.separator + "slides-annotated.pptx"); + IOUtils.copy(result, fileStream); + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:addEllipseAnnotationInSlides + } } diff --git a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/WordsAnnotation.java b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/WordsAnnotation.java index 3292ce9..02f8364 100644 --- a/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/WordsAnnotation.java +++ b/Examples/GroupDocs.Annotation.Examples.Java/src/main/java/GroupDocs/Annotation/Examples/Java/WordsAnnotation.java @@ -34,6 +34,7 @@ public class WordsAnnotation { /* * add different annotations in words */ + public static void addDifferentAnnotationInWords() { //ExStart:addDifferentAnnotationInWords try { @@ -63,13 +64,13 @@ public static void addDifferentAnnotationInWords() { AnnotationInfo textFieldAnnotation = new AnnotationInfo(); textFieldAnnotation.setFieldText("text in the box"); textFieldAnnotation.setFontFamily("Arial"); - textFieldAnnotation.setFontSize(10); + textFieldAnnotation.setFontSize(10D); textFieldAnnotation.setBox(new Rectangle(92f, 73f, 106f, 45f)); textFieldAnnotation.setPageNumber(1); textFieldAnnotation.setType(AnnotationType.TextField); AnnotationInfo textReplacementAnnotation = new AnnotationInfo(); textReplacementAnnotation.setFieldText(" \"REPLACED TEXT\" "); - textReplacementAnnotation.setFontSize(10); + textReplacementAnnotation.setFontSize(10D); textReplacementAnnotation.setSvgPath( "[{\"x\":251.224,\"y\":637.20401},{\"x\":327.89,\"y\":637.20401},{\"x\":251.224,\"y\":628.20401},{\"x\":327.89,\"y\":628.20401}]"); textReplacementAnnotation.setPageNumber(1); @@ -214,6 +215,7 @@ public static void addStrikeoutAnnotationInWords() { /* * add text field annotation in words */ + public static void addTextFieldAnnotationInWords() { //ExStart:addTextFieldAnnotationInWords try { @@ -225,7 +227,7 @@ public static void addTextFieldAnnotationInWords() { AnnotationInfo textFieldAnnotation = new AnnotationInfo(); textFieldAnnotation.setFieldText("text in the box"); textFieldAnnotation.setFontFamily("Arial"); - textFieldAnnotation.setFontSize(10); + textFieldAnnotation.setFontSize(10D); textFieldAnnotation.setBox(new Rectangle(92f, 73f, 106f, 45f)); textFieldAnnotation.setPageNumber(1); textFieldAnnotation.setType(AnnotationType.TextField); @@ -247,6 +249,7 @@ public static void addTextFieldAnnotationInWords() { /* * add text replacement annotation in words */ + public static void addTextReplacementAnnotationInWords() { //ExStart:addTextReplacementAnnotationInWords try { @@ -257,7 +260,7 @@ public static void addTextReplacementAnnotationInWords() { // init text replacement annotations AnnotationInfo textReplacementAnnotation = new AnnotationInfo(); textReplacementAnnotation.setFieldText(" \"REPLACED TEXT\" "); - textReplacementAnnotation.setFontSize(10); + textReplacementAnnotation.setFontSize(10D); textReplacementAnnotation.setSvgPath( "[{\"x\":251.224,\"y\":637.20401},{\"x\":327.89,\"y\":637.20401},{\"x\":251.224,\"y\":628.20401},{\"x\":327.89,\"y\":628.20401}]"); textReplacementAnnotation.setPageNumber(1); @@ -492,7 +495,7 @@ public static void addWatermarkAnnotationInWords() { watermarkAnnnotation.setFieldText("Watermark text"); watermarkAnnnotation.setFontColor(16711680); watermarkAnnnotation.setFontFamily("Microsoft Sans Serif"); - watermarkAnnnotation.setFontSize(17); + watermarkAnnnotation.setFontSize(17D); //watermarkAnnnotation.setOpacity(0.3); watermarkAnnnotation.setType(AnnotationType.Watermark); @@ -540,4 +543,35 @@ public static void addPointAnnotationInWords() { } //ExEnd:addPointAnnotationInWords } + + /* + * Add Ellipse Annotation in Words + */ + public static void addEllipseAnnotationInWords() { + //ExStart:addEllipseAnnotationInWords + try { + AnnotationConfig cfg = Utilities.getConfiguration(); + AnnotationImageHandler annotator = new AnnotationImageHandler(cfg); + annotator.getDocumentDataHandler(); + InputStream inputStream = new FileInputStream(Utilities.storagePath + File.separator + fileName); + List annotations = new ArrayList(); + // Ellipse annotation + AnnotationInfo ellipseAnnotation = new AnnotationInfo(); + ellipseAnnotation.setBox(new Rectangle(430f, 272f, 66f, 51f)); + ellipseAnnotation.setPageNumber(0); + ellipseAnnotation.setType(AnnotationType.Ellipse); + ellipseAnnotation.setCreatorName("Anonym A."); + annotations.add(ellipseAnnotation); + // Add annotation to the document + InputStream result = annotator.exportAnnotationsToDocument(inputStream, annotations, DocumentType.Words); + // Save result stream to file. + OutputStream fileStream = new FileOutputStream( + Utilities.outputPath + File.separator + "words-annotated.docx"); + IOUtils.copy(result, fileStream); + } catch (Exception e) { + System.out.println("Exception: " + e.getMessage()); + e.printStackTrace(); + } + //ExEnd:addEllipseAnnotationInWords + } }