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");
+ }
+ }
+}