diff --git a/Demos/Dropwizard/pom.xml b/Demos/Dropwizard/pom.xml index 9193722..b00bac1 100644 --- a/Demos/Dropwizard/pom.xml +++ b/Demos/Dropwizard/pom.xml @@ -81,7 +81,7 @@ com.groupdocs groupdocs-annotation - 23.6 + 23.8 javax.xml.bind diff --git a/Demos/Spring/pom.xml b/Demos/Spring/pom.xml index 7c2ef3f..71ca101 100644 --- a/Demos/Spring/pom.xml +++ b/Demos/Spring/pom.xml @@ -131,7 +131,7 @@ com.groupdocs groupdocs-annotation - 23.6 + 23.8 com.google.guava diff --git a/Examples/pom.xml b/Examples/pom.xml index 479b104..eb2eb8b 100644 --- a/Examples/pom.xml +++ b/Examples/pom.xml @@ -23,7 +23,7 @@ com.groupdocs groupdocs-annotation - 23.6 + 23.8 diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/RunExamples.java b/Examples/src/main/java/com/groupdocs/annotation/examples/RunExamples.java index b29281f..995a86f 100644 --- a/Examples/src/main/java/com/groupdocs/annotation/examples/RunExamples.java +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/RunExamples.java @@ -17,21 +17,22 @@ public static void main(String[] args) throws IOException { System.out.println("====================================================="); //NOTE: Please uncomment the example you want to try out + // Quick Start SetLicenseFromFile.run(); - SetLicenseFromStream.run(); -// SetMeteredLicense.run(); +// SetLicenseFromStream.run(); +// SetMeteredLicense.run(); // Get supported file formats - GetSupportedFileFormats.run(); +// GetSupportedFileFormats.run(); // Get file info - GetFileInfo.run(Constants.INPUT_PDF); - GetFileInfo.run(Constants.INPUT_DOC); - GetFileInfo.run(Constants.INPUT_CELL); +// GetFileInfo.run(Constants.INPUT_PDF); +// GetFileInfo.run(Constants.INPUT_DOC); +// GetFileInfo.run(Constants.INPUT_CELL); // Extract annotations from document - ExtractAnnotationsFromDocument.run(Constants.INPUT_PDF); +// ExtractAnnotationsFromDocument.run(Constants.INPUT_PDF); // ExtractAnnotationsFromDocument.run(Constants.INPUT_DOC); // ExtractAnnotationsFromDocument.run(Constants.INPUT_CELL); @@ -39,69 +40,69 @@ public static void main(String[] args) throws IOException { // RemoveAnnotationFromDocument.run(); // Generate document pages preview - GenerateDocumentPagesPreview.run(Constants.INPUT_PDF); +// GenerateDocumentPagesPreview.run(Constants.INPUT_PDF); // GenerateDocumentPagesPreview.run(Constants.INPUT_DOC); // GenerateDocumentPagesPreview.run(Constants.INPUT_CELL); // Saving specific page range - SavingSpecificPageRange.run(Constants.INPUT_PDF); +// SavingSpecificPageRange.run(Constants.INPUT_PDF); // Saving only pages with annotations - SavingOnlyPagesWithAnnotations.run(Constants.INPUT_PDF); +// SavingOnlyPagesWithAnnotations.run(Constants.INPUT_PDF); // Filtering annotation types - FilteringAnnotationTypes.run(Constants.INPUT_PDF); +// FilteringAnnotationTypes.run(Constants.INPUT_PDF); // Add area annotation - AddAreaAnnotation.run(); +// AddAreaAnnotation.run(); // Add arrow annotation - AddArrowAnnotation.run(); +// AddArrowAnnotation.run(); // Add distance annotation - AddDistanceAnnotation.run(); +// AddDistanceAnnotation.run(); // Add ellipse annotation - AddEllipseAnnotation.run(); +// AddEllipseAnnotation.run(); // Add link annotation - AddLinkAnnotation.run(); +// AddLinkAnnotation.run(); // Add point annotation - AddPointAnnotation.run(); +// AddPointAnnotation.run(); // Add resources redaction annotation - AddResourcesRedactionAnnotation.run(); +// AddResourcesRedactionAnnotation.run(); // Add text highlight annotation - AddTextHighlightAnnotation.run(); +// AddTextHighlightAnnotation.run(); // Add text field annotation - AddTextFieldAnnotation.run(); +// AddTextFieldAnnotation.run(); // Add text redaction annotation - AddTextRedactionAnnotation.run(); +// AddTextRedactionAnnotation.run(); // Add text replacement annotation - AddTextReplacementAnnotation.run(); +// AddTextReplacementAnnotation.run(); // Add text strikeout annotation AddTextStrikeoutAnnotation.run(); // Add polyline annotation - AddPolylineAnnotation.run(); +// AddPolylineAnnotation.run(); // Add underline annotation AddTextUnderlineAnnotation.run(); // Add watermark annotation - AddWatermarkAnnotation.run(); +// AddWatermarkAnnotation.run(); // Add replies annotation - AddReplies.run(); +// AddReplies.run(); // Remove replies - RemoveReplies.run(); +// RemoveReplies.run(); // Remove replies by Id // RemoveRepliesById.run(); @@ -110,22 +111,22 @@ public static void main(String[] args) throws IOException { // RemoveRepliesByUserName.run(); // Update annotation - UpdateAnnotation.run(); +// UpdateAnnotation.run(); // Load document from local disk - LoadDocumentFromLocalDisk.run(); +// LoadDocumentFromLocalDisk.run(); // Load document from stream - LoadDocumentFromStream.run(); +// LoadDocumentFromStream.run(); // Load password-protected documents - LoadPasswordProtectedDocuments.run(); +// LoadPasswordProtectedDocuments.run(); // Load document from url - LoadDocumentFromUrl.run(); +// LoadDocumentFromUrl.run(); // Load document from FTP - LoadDocumentFromFtp.run(); +// LoadDocumentFromFtp.run(); // Load document from AmazonS3 // LoadDocumentFromAmazonS3.run(); @@ -133,10 +134,10 @@ public static void main(String[] args) throws IOException { // Load document from Azure // LoadDocumentFromAzure.run(); - MinimalAnnotation.run(); +// MinimalAnnotation.run(); + +// AddUserRole.run(); - AddUserRole.run(); - System.out.println(); System.out.println("All done."); } diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/DevTest.java b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/DevTest.java new file mode 100644 index 0000000..299e9f5 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/DevTest.java @@ -0,0 +1,63 @@ +package com.groupdocs.annotation.examples.basic_usage; + +import com.groupdocs.annotation.Annotator; +import com.groupdocs.annotation.models.Point; +import com.groupdocs.annotation.models.Reply; +import com.groupdocs.annotation.models.annotationmodels.StrikeoutAnnotation; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +public class DevTest { + public static void run() { + // This example demonstrates adding text strikeout annotation. + + // Create an instance of Annotator class + Annotator annotator = new Annotator(System.getProperty("user.dir") + "\\Resources\\SampleFiles\\dev_sample.pdf"); + try { + // Create an instance of Reply class and add comments + Reply reply1 = new Reply(); + reply1.setComment("First comment"); + reply1.setRepliedOn(Calendar.getInstance().getTime()); + + Reply reply2 = new Reply(); + reply2.setComment("Second comment"); + reply2.setRepliedOn(Calendar.getInstance().getTime()); + + java.util.List replies = new ArrayList<>(); + replies.add(reply1); + replies.add(reply2); + + Point point1 = new Point(80, 730); + Point point2 = new Point(240, 730); + Point point3 = new Point(80, 650); + Point point4 = new Point(240, 650); + + List points = new ArrayList<>(); + points.add(point1); + points.add(point2); + points.add(point3); + points.add(point4); + + // Create an instance of StrikeoutAnnotation class and set options + StrikeoutAnnotation strikeout; + strikeout = new StrikeoutAnnotation(); + strikeout.setCreatedOn(Calendar.getInstance().getTime()); + strikeout.setFontColor(65535); + strikeout.setMessage("This is strikeout annotation"); + strikeout.setOpacity(0.7); + strikeout.setPageNumber(0); + strikeout.setPoints(points); + strikeout.setReplies(replies); + + // Add annotation and save to file + annotator.add(strikeout); + annotator.save(System.getProperty("user.dir") + "\\Resources\\Output\\dev.pdf"); + } finally { + if (annotator != null) { + annotator.dispose(); + } + } + } +} diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddAreaAnnotation.java b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddAreaAnnotation.java index 9cb5ea4..71ebf2a 100644 --- a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddAreaAnnotation.java +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddAreaAnnotation.java @@ -16,7 +16,6 @@ *

*/ public class AddAreaAnnotation { - public static void run() { Reply reply1 = new Reply(); reply1.setComment("First comment"); @@ -32,23 +31,21 @@ public static void run() { String outputPath = Constants.getOutputFilePath("AddAreaAnnotation", FilenameUtils.getExtension(Constants.INPUT_PDF)); - final Annotator annotator = new Annotator(Constants.INPUT_PDF); - - AreaAnnotation area = new AreaAnnotation(); - area.setBackgroundColor(65535); - area.setBox(new Rectangle(100, 100, 100, 100)); - area.setCreatedOn(Calendar.getInstance().getTime()); - area.setMessage("This is area annotation"); - area.setOpacity(0.7); - area.setPageNumber(0); - area.setPenColor(65535); - area.setPenStyle(PenStyle.DOT); - area.setPenWidth((byte) 3); - area.setReplies(replies); - annotator.add(area); - annotator.save(outputPath); - - annotator.dispose(); + try(final Annotator annotator = new Annotator(Constants.INPUT_PDF)) { + AreaAnnotation area = new AreaAnnotation(); + area.setBackgroundColor(65535); + area.setBox(new Rectangle(100, 100, 100, 100)); + area.setCreatedOn(Calendar.getInstance().getTime()); + area.setMessage("This is area annotation"); + area.setOpacity(0.7); + area.setPageNumber(0); + area.setPenColor(65535); + area.setPenStyle(PenStyle.DOT); + area.setPenWidth((byte) 3); + area.setReplies(replies); + annotator.add(area); + annotator.save(outputPath); + } System.out.println("\nDocument saved successfully.\nCheck output in " + outputPath); } diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddPolylineAnnotation.java b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddPolylineAnnotation.java index d375ab3..0cc9709 100644 --- a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddPolylineAnnotation.java +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddPolylineAnnotation.java @@ -30,7 +30,7 @@ public static void run() { reply2.setComment("Second comment"); reply2.setRepliedOn(Calendar.getInstance().getTime()); - java.util.List replies = new ArrayList(); + java.util.List replies = new ArrayList<>(); replies.add(reply1); replies.add(reply2); diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddTextStrikeoutAnnotation.java b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddTextStrikeoutAnnotation.java index 8aea48f..dec3328 100644 --- a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddTextStrikeoutAnnotation.java +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/add_annotation_to_the_document/AddTextStrikeoutAnnotation.java @@ -30,7 +30,7 @@ public static void run() { reply2.setComment("Second comment"); reply2.setRepliedOn(Calendar.getInstance().getTime()); - java.util.List replies = new ArrayList(); + java.util.List replies = new ArrayList<>(); replies.add(reply1); replies.add(reply2); @@ -39,7 +39,7 @@ public static void run() { Point point3 = new Point(80, 650); Point point4 = new Point(240, 650); - List points = new ArrayList(); + List points = new ArrayList<>(); points.add(point1); points.add(point2); points.add(point3); diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddButtonComponent.java b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddButtonComponent.java new file mode 100644 index 0000000..a4412ca --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddButtonComponent.java @@ -0,0 +1,46 @@ +package com.groupdocs.annotation.examples.basic_usage.pdf_components; + +import com.groupdocs.annotation.Annotator; +import com.groupdocs.annotation.examples.Constants; +import com.groupdocs.annotation.models.BorderStyle; +import com.groupdocs.annotation.models.Rectangle; +import com.groupdocs.annotation.models.Reply; +import com.groupdocs.annotation.models.formatspecificcomponents.pdf.ButtonComponent; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class AddButtonComponent { + public static void run() { + try(final Annotator annotator = new Annotator(Constants.INPUT_PDF)) { + ButtonComponent buttonComponent = new ButtonComponent(); + buttonComponent.setCreatedOn(new Date()); + buttonComponent.setStyle(BorderStyle.DASHED); + buttonComponent.setMessage("This is button component"); + buttonComponent.setBorderColor(1422623); + buttonComponent.setPenColor(14527697); + buttonComponent.setButtonColor(10832612); + buttonComponent.setPageNumber(0); + buttonComponent.setBorderWidth(12); + buttonComponent.setBox(new Rectangle(100, 300, 90, 30)); + + Reply reply1 = new Reply(); + reply1.setComment("First comment"); + reply1.setRepliedOn(new Date()); + + Reply reply2 = new Reply(); + reply2.setComment("Second comment"); + reply2.setRepliedOn(new Date()); + + List replies = new ArrayList<>(); + replies.add(reply1); + replies.add(reply2); + + buttonComponent.setReplies(replies); + + annotator.add(buttonComponent); + annotator.save("result_button_component.pdf"); + } + } +} diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddCheckBoxComponent.java b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddCheckBoxComponent.java new file mode 100644 index 0000000..c7a8de3 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddCheckBoxComponent.java @@ -0,0 +1,40 @@ +package com.groupdocs.annotation.examples.basic_usage.pdf_components; + +import com.groupdocs.annotation.Annotator; +import com.groupdocs.annotation.examples.Constants; +import com.groupdocs.annotation.models.BoxStyle; +import com.groupdocs.annotation.models.Rectangle; +import com.groupdocs.annotation.models.Reply; +import com.groupdocs.annotation.models.formatspecificcomponents.pdf.CheckBoxComponent; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class AddCheckBoxComponent { + public static void run() { + try(final Annotator annotator = new Annotator(Constants.INPUT_PDF)) { + CheckBoxComponent checkbox = new CheckBoxComponent(); + checkbox.setChecked(true); + checkbox.setBox(new Rectangle(100, 100, 100, 100)); + checkbox.setPenColor(65535); + checkbox.setStyle(BoxStyle.STAR); + Reply reply1 = new Reply(); + reply1.setComment("First comment"); + reply1.setRepliedOn(new Date()); + + Reply reply2 = new Reply(); + reply2.setComment("Second comment"); + reply2.setRepliedOn(new Date()); + + List replies = new ArrayList<>(); + replies.add(reply1); + replies.add(reply2); + + checkbox.setReplies(replies); + + annotator.add(checkbox); + annotator.save("result_checkbox_component.pdf"); + } + } +} diff --git a/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddDropdownComponent.java b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddDropdownComponent.java new file mode 100644 index 0000000..2302633 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/annotation/examples/basic_usage/pdf_components/AddDropdownComponent.java @@ -0,0 +1,47 @@ +package com.groupdocs.annotation.examples.basic_usage.pdf_components; + +import com.groupdocs.annotation.Annotator; +import com.groupdocs.annotation.examples.Constants; +import com.groupdocs.annotation.models.PenStyle; +import com.groupdocs.annotation.models.Rectangle; +import com.groupdocs.annotation.models.Reply; +import com.groupdocs.annotation.models.formatspecificcomponents.pdf.DropdownComponent; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +public class AddDropdownComponent { + public static void run() { + try(final Annotator annotator = new Annotator(Constants.INPUT_PDF)) { + DropdownComponent dropdownComponent = new DropdownComponent(); + dropdownComponent.setOptions(new ArrayList<>(Arrays.asList("Item1", "Item2", "Item3"))); + dropdownComponent.setSelectedOption(null); + dropdownComponent.setPlaceholder("Choose option"); + dropdownComponent.setBox(new Rectangle(100, 100, 100, 100)); + dropdownComponent.setCreatedOn(new Date()); + dropdownComponent.setMessage("This is dropdown component"); + dropdownComponent.setPageNumber(0); + dropdownComponent.setPenColor(65535); + dropdownComponent.setPenStyle(PenStyle.DOT); + dropdownComponent.setPenWidth((byte) 3); + + List replies = new ArrayList<>(); + Reply reply1 = new Reply(); + reply1.setComment("First comment"); + reply1.setRepliedOn(new Date()); + + Reply reply2 = new Reply(); + reply2.setComment("Second comment"); + reply2.setRepliedOn(new Date()); + + replies.add(reply1); + replies.add(reply2); + + dropdownComponent.setReplies(replies); + annotator.add(dropdownComponent); + annotator.save("result_dropdown_component.pdf"); + } + } +}