diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b3a9165 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/Examples/target/ +/Examples/.classpath +/Examples/.project +/Examples/.settings/ + +deploy_key diff --git a/Examples/GroupDocs.Watermark-for-Java/.gitignore b/Examples/GroupDocs.Watermark-for-Java/.gitignore deleted file mode 100644 index 6567c5d..0000000 --- a/Examples/GroupDocs.Watermark-for-Java/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.idea/ -target/ -*.iml -.DS_Store -/bin/ -.classpath -.project -.settings/ -.gitignore -.git/ \ No newline at end of file diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Attachments/License Agreement.doc b/Examples/GroupDocs.Watermark-for-Java/Data/Attachments/License Agreement.doc deleted file mode 100644 index 3c6f4ed..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Attachments/License Agreement.doc and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Attachmentssample.msg b/Examples/GroupDocs.Watermark-for-Java/Data/Attachmentssample.msg deleted file mode 100644 index bc72cb7..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Attachmentssample.msg and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.docx b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.docx deleted file mode 100644 index 6c720e7..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.docx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.gif b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.gif deleted file mode 100644 index 0597dab..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.gif and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.msg b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.msg deleted file mode 100644 index 760fad6..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.msg and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.pdf b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.pdf deleted file mode 100644 index 22c2e78..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.pdf and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.png b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.png deleted file mode 100644 index 5bbc560..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.png and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.pptx b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.pptx deleted file mode 100644 index b53ed81..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.pptx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.vsdx b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.vsdx deleted file mode 100644 index cc53cfc..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.vsdx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.xlsx b/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.xlsx deleted file mode 100644 index 978fc4d..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Output/sample.xlsx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/Files.png b/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/Files.png deleted file mode 100644 index 5078410..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/Files.png and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/ProjectInEclipse.png b/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/ProjectInEclipse.png deleted file mode 100644 index fa3aa73..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/ProjectInEclipse.png and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/imagewatermark.jpg b/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/imagewatermark.jpg deleted file mode 100644 index c24a0d3..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/imagewatermark.jpg and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/parent_margins.png b/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/parent_margins.png deleted file mode 100644 index 22e800f..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/parent_margins.png and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/parent_margins_2.png b/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/parent_margins_2.png deleted file mode 100644 index 9ebd99e..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/parent_margins_2.png and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/rotation.png b/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/rotation.png deleted file mode 100644 index ee26c65..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/rotation.png and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/textwatermark.jpg b/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/textwatermark.jpg deleted file mode 100644 index 701490e..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Screenshots/textwatermark.jpg and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.docx b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.docx deleted file mode 100644 index d6ecf8b..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.docx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.gif b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.gif deleted file mode 100644 index cc85865..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.gif and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.jpg b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.jpg deleted file mode 100644 index c24a0d3..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.jpg and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.pdf b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.pdf deleted file mode 100644 index b240cab..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.pdf and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.png b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.png deleted file mode 100644 index e561f94..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.png and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.vsdx b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.vsdx deleted file mode 100644 index 88fb4f2..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.vsdx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.xlsx b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.xlsx deleted file mode 100644 index 3e67df6..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.xlsx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample_with_Artifact_watermark.pdf b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample_with_Artifact_watermark.pdf deleted file mode 100644 index be55d34..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample_with_Artifact_watermark.pdf and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample_with_watermark.docx b/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample_with_watermark.docx deleted file mode 100644 index eb17e63..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample_with_watermark.docx and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/watermark.jpg b/Examples/GroupDocs.Watermark-for-Java/Data/watermark.jpg deleted file mode 100644 index 35ecc51..0000000 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/watermark.jpg and /dev/null differ diff --git a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Common.java b/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Common.java deleted file mode 100644 index 95e2d4b..0000000 --- a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Common.java +++ /dev/null @@ -1,254 +0,0 @@ -package com.groupdocs.watermark.examples; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.file.FileSystems; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Properties; -import java.util.regex.Pattern; - -import com.groupdocs.watermark.*; - -public class Common { - - public static final Path STORAGE_PATH = getProjectBaseDir().resolve("Data/Source"); - public static final Path OUTPUT_PATH = getProjectBaseDir().resolve("Data/Output"); - public static final String WATERMARK_IMAGE_PATH = getProjectBaseDir().resolve("Data/watermark.jpg").toString(); - public static final String ATTACHMENTS_PATH = getProjectBaseDir().resolve("Data/Attachments/").toString(); - public static String LICENSE_PATH = "D:\\GroupDocs.Total.Java.lic"; - public static String publicKey = "Public key for your account"; - public static String privateKey = "Private key for your account"; - - // applies product license - public static void applyLicenseFromFile() { - try { - // ExStart:ApplyLicenseFromFile - // Setup license - License lic = new License(); - lic.setLicense(LICENSE_PATH); - // ExEnd:ApplyLicenseFromFile - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - // applies product license - public static void applyLicenseFromStream() { - try { - // ExStart:ApplyLicenseFromStream - // Setup license - License lic = new License(); - lic.setLicense(new java.io.FileInputStream(LICENSE_PATH)); - // ExEnd:ApplyLicenseFromStream - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - // returns project base directory - public static Path getProjectBaseDir() { - return Paths.get(System.getProperty("user.dir")); - } - - // returns source file path - public static String mapSourceFilePath(String inputFileName) { - try { - return STORAGE_PATH + "/" + inputFileName; - } catch (Exception e) { - e.printStackTrace(); - return e.getMessage(); - } - } - - // returns output file path - public static String mapOutputFilePath(String outputFileName) { - try { - return OUTPUT_PATH + "/" + outputFileName; - } catch (Exception e) { - e.printStackTrace(); - return e.getMessage(); - } - } - - // shows how to use library in licensed mode using Dynabic.Metered account - public static void useDynabicMeteredAccount() { - // ExStart:ApplyMeteredLicense - // initialize Metered API - Metered metered = new Metered(); - // set-up credentials - try { - metered.setMeteredKey(publicKey, privateKey); - } catch (Exception e) { - e.printStackTrace(); - } - // ExEnd:ApplyMeteredLicense - // do some work: - } - - public static void loadDocument(String fileName) { - try { - // ExStart:LoadDocument - Document doc = Document.load(Common.mapSourceFilePath(fileName)); - - // Here we can use document instance to add or remove watermarks - - doc.close(); - // ExEnd:LoadDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void loadDocumentFromStream(String fileName) { - try { - // ExStart:loadDocumentFromStream - InputStream inputStream = new FileInputStream(Common.mapSourceFilePath(fileName)); - Document doc = Document.load(inputStream); - - // Here we can use document instance to add or remove watermarks - - doc.close(); - inputStream.close(); - // ExEnd:loadDocumentFromStream - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void saveDocument(String fileName) { - try { - // ExStart:loadDocumentFromStream - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - Document doc = Document.load(Common.mapSourceFilePath(fileName)); - // Watermarking goes here - // ... - - // Save the document to the specified location - doc.save("D:\\result.doc"); - - // Save the document to the specified stream - doc.save(outputStream); - - doc.close(); - - // Use the stream containing the document - // ... - outputStream.close(); - // Document class implements Closeable interface. Therefore, it is - // necessary to call close method when you are done working with the - // document. Alternatively, you can use try-with-resources - // statement. - // ExEnd:loadDocumentFromStream - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void loadPasswordProtectedDocument(String fileName) { - try { - // ExStart:loadPasswordProtectedDocument - // Use LoadOptions instance to pass the password - LoadOptions loadOptions = new LoadOptions(); - loadOptions.setPassword("123"); - Document doc = Document.load(Common.mapSourceFilePath(fileName), loadOptions); - - doc.close(); - // ExEnd:loadPasswordProtectedDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void getDocumentInformation(String fileName) { - try { - // ExStart:getDocumentInformation - DocumentInfo documentInfo = Document.getInfo(Common.mapSourceFilePath(fileName)); - System.out.println(documentInfo.getFileFormat()); - System.out.println(documentInfo.isEncrypted()); - // ExEnd:getDocumentInformation - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void AddWatermarkToAllDocumentsInFolder() { - // ExStart:AddWatermarkToAllDocumentsInFolderBusinessCase - String inputFolder = "D:\\docs\\input\\"; - String outputFolder = "D:\\docs\\output\\"; - - File[] files = new File(inputFolder).listFiles(); - - Font font = new Font("Arial", 8, FontStyle.Bold); - TextWatermark watermark = new TextWatermark("CONFIDENTIAL", font); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(-45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(0.8); - watermark.setOpacity(0.5); - watermark.setForegroundColor(Color.getRed()); - - for (File file : files) { - if (file.isFile()) { - Document doc = null; - try { - doc = Document.load(file.getAbsolutePath()); - doc.addWatermark(watermark); - doc.save(outputFolder + file.getName()); - } catch (UnsupportedFileTypeException exception) { - System.out.println("File format is not supported. File = " + file.getName()); - } finally { - if (doc != null) { - doc.close(); - } - } - } - } - // ExEnd:AddWatermarkToAllDocumentsInFolderBusinessCase - } - - public static void RemoveCompanyLogoWatermarkFromDocuments() { - // ExStart:RemoveCompanyLogoWatermarkFromDocumentsBusinessCase - String inputFolder = "D:\\docs\\input\\"; - String outputFolder = "D:\\docs\\output\\"; - String logo = "D:\\docs\\logo.png"; - - File[] files = new File(inputFolder).listFiles(); - - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(logo); - Pattern pattern = Pattern.compile("^Company\\s+Name$", Pattern.CASE_INSENSITIVE); - TextSearchCriteria textSearchCriteria = new TextSearchCriteria(pattern); - - for (File file : files) { - if (file.isFile()) { - Document doc = null; - try { - doc = Document.load(file.getAbsolutePath()); - PossibleWatermarkCollection watermarks = doc - .findWatermarks(textSearchCriteria.or(imageSearchCriteria)); - watermarks.clear(); - doc.save(outputFolder + file.getName()); - } catch (UnsupportedFileTypeException exception) { - System.out.println("File format is not supported. File = " + file.getName()); - } finally { - if (doc != null) { - doc.close(); - } - } - } - } - // ExEnd:RemoveCompanyLogoWatermarkFromDocumentsBusinessCase - } - -} diff --git a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Documents.java b/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Documents.java deleted file mode 100644 index d139d7f..0000000 --- a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Documents.java +++ /dev/null @@ -1,4540 +0,0 @@ -package com.groupdocs.watermark.examples; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.InputStream; - -import com.groupdocs.watermark.CellsAttachment; -import com.groupdocs.watermark.CellsChart; -import com.groupdocs.watermark.CellsDocument; -import com.groupdocs.watermark.CellsHeaderFooter; -import com.groupdocs.watermark.CellsHeaderFooterSection; -import com.groupdocs.watermark.CellsHeaderFooterSectionCollection; -import com.groupdocs.watermark.CellsHeaderFooterSectionType; -import com.groupdocs.watermark.CellsImageEffects; -import com.groupdocs.watermark.CellsMsoDrawingType; -import com.groupdocs.watermark.CellsSearchableObjects; -import com.groupdocs.watermark.CellsShape; -import com.groupdocs.watermark.CellsShapeCollection; -import com.groupdocs.watermark.CellsShapeSettings; -import com.groupdocs.watermark.CellsTextEffects; -import com.groupdocs.watermark.CellsWatermarkableImage; -import com.groupdocs.watermark.CellsWorksheet; -import com.groupdocs.watermark.Color; -import com.groupdocs.watermark.DiagramDocument; -import com.groupdocs.watermark.DiagramHyperlink; -import com.groupdocs.watermark.DiagramPage; -import com.groupdocs.watermark.DiagramShape; -import com.groupdocs.watermark.DiagramShapeSettings; -import com.groupdocs.watermark.DiagramWatermarkPlacementType; -import com.groupdocs.watermark.DiagramWatermarkableImage; -import com.groupdocs.watermark.Document; -import com.groupdocs.watermark.EmailAddress; -import com.groupdocs.watermark.EmailAttachment; -import com.groupdocs.watermark.EmailDocument; -import com.groupdocs.watermark.EmailEmbeddedObject; -import com.groupdocs.watermark.EmailSearchableObjects; -import com.groupdocs.watermark.FileFormat; -import com.groupdocs.watermark.Font; -import com.groupdocs.watermark.FontStyle; -import com.groupdocs.watermark.FormattedTextFragment; -import com.groupdocs.watermark.HorizontalAlignment; -import com.groupdocs.watermark.ISlidesHyperlinkContainer; -import com.groupdocs.watermark.ImageDctHashSearchCriteria; -import com.groupdocs.watermark.ImageSearchCriteria; -import com.groupdocs.watermark.ImageWatermark; -import com.groupdocs.watermark.OfficeDashStyle; -import com.groupdocs.watermark.OfficeHeaderFooterType; -import com.groupdocs.watermark.OfficeLineStyle; -import com.groupdocs.watermark.PdfAnnotation; -import com.groupdocs.watermark.PdfArtifact; -import com.groupdocs.watermark.PdfAttachment; -import com.groupdocs.watermark.PdfDocument; -import com.groupdocs.watermark.PdfImageConversionFormat; -import com.groupdocs.watermark.PdfPage; -import com.groupdocs.watermark.PdfPageMarginType; -import com.groupdocs.watermark.PdfSearchableObjects; -import com.groupdocs.watermark.PdfWatermarkableImage; -import com.groupdocs.watermark.PdfXObject; -import com.groupdocs.watermark.PossibleWatermarkCollection; -import com.groupdocs.watermark.SearchCriteria; -import com.groupdocs.watermark.SizingType; -import com.groupdocs.watermark.SlidesChart; -import com.groupdocs.watermark.SlidesDocument; -import com.groupdocs.watermark.SlidesHyperlinkActionType; -import com.groupdocs.watermark.SlidesImageEffects; -import com.groupdocs.watermark.SlidesImageFillFormat; -import com.groupdocs.watermark.SlidesLayoutSlide; -import com.groupdocs.watermark.SlidesMasterSlide; -import com.groupdocs.watermark.SlidesSearchableObjects; -import com.groupdocs.watermark.SlidesShape; -import com.groupdocs.watermark.SlidesShapeSettings; -import com.groupdocs.watermark.SlidesSlide; -import com.groupdocs.watermark.SlidesTextEffects; -import com.groupdocs.watermark.SlidesWatermarkableImage; -import com.groupdocs.watermark.TextSearchCriteria; -import com.groupdocs.watermark.TextWatermark; -import com.groupdocs.watermark.VerticalAlignment; -import com.groupdocs.watermark.WatermarkableImage; -import com.groupdocs.watermark.WatermarkableImageCollection; -import com.groupdocs.watermark.WordsDocument; -import com.groupdocs.watermark.WordsImageEffects; -import com.groupdocs.watermark.WordsLockType; -import com.groupdocs.watermark.WordsPageSetup; -import com.groupdocs.watermark.WordsProtectionType; -import com.groupdocs.watermark.WordsSection; -import com.groupdocs.watermark.WordsShape; -import com.groupdocs.watermark.WordsShapeSettings; -import com.groupdocs.watermark.WordsTextEffects; - -public class Documents { - public static class PDF { - // initialize file path - // ExStart:SourcePDFFilePath - private final static String FILE_PATH = "sample.pdf"; - // ExEnd:SourcePDFFilePath - - /** - * Adds watermark to a PDF document - */ - public static void addWatermark() { - try { - // ExStart:AddWatermarkToPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Add text watermark - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); - doc.getPages().get_Item(0).addWatermark(textWatermark); - - // Add image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - doc.getPages().get_Item(1).addWatermark(imageWatermark); - imageWatermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets dimensions of a PDF document - */ - public static void getDimensions() { - try { - // ExStart:GetDimensionsPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - System.out.println(doc.getPages().get_Item(0).getWidth()); - System.out.println(doc.getPages().get_Item(0).getHeight()); - - doc.close(); - // ExEnd:GetDimensionsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images inside a PDF document - */ - public static void addWatermarkToImages() { - try { - // ExStart:AddWatermarkToImagesPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - // Get all images from the first page - WatermarkableImageCollection images = doc.getPages().get_Item(0).findImages(); - - // Add watermark to all found images - for (WatermarkableImage image : images) { - image.addWatermark(watermark); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImagesPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds artifact watermark to a PDF document - */ - public static void addArtifactWatermark() { - try { - // ExStart:AddArtifactWatermarkPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Add image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - doc.addArtifactWatermark(imageWatermark); - imageWatermark.close(); - - // Add text watermark - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); - doc.addArtifactWatermark(textWatermark); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddArtifactWatermarkPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds annotation watermark to a PDF document - */ - public static void addAnnotationWatermark() { - try { - // ExStart:AddAnnotationWatermarkPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Add image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - doc.addAnnotationWatermark(imageWatermark); - imageWatermark.close(); - - // Add text watermark - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); - doc.addAnnotationWatermark(textWatermark); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddAnnotationWatermarkPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds print only annotation watermark to a PDF document - */ - public static void addPrintOnlyAnnotationWatermark() { - try { - // ExStart:AddPrintOnlyAnnotationWatermarkPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark textWatermark = new TextWatermark("This is a test watermark", new Font("Arial", 8)); - boolean isPrintOnly = true; - - // Annotation will be printed, but not displayed in pdf viewing - // application - doc.getPages().get_Item(0).addAnnotationWatermark(textWatermark, isPrintOnly); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddPrintOnlyAnnotationWatermarkPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes watermark from a PDF document - */ - public static void removeWatermark() { - try { - // ExStart:RemoveWatermarkFromPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize search criteria - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - TextSearchCriteria textSearchCriteria = new TextSearchCriteria("This is a test watermark"); - - PossibleWatermarkCollection possibleWatermarks = doc.getPages().get_Item(0) - .findWatermarks(imageSearchCriteria.or(textSearchCriteria)); - - // Remove all found watermarks - for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--) { - possibleWatermarks.removeAt(i); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveWatermarkFromPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information about all XObjects in a PDF document - */ - public static void extractXObjectInformation() { - try { - // ExStart:ExtractXObjectInformationPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfPage page : doc.getPages()) { - for (PdfXObject xObject : page.getXObjects()) { - if (xObject.getImage() != null) { - System.out.println(xObject.getImage().getWidth()); - System.out.println(xObject.getImage().getHeight()); - System.out.println(xObject.getImage().getBytes().length); - } - for (FormattedTextFragment fragment : xObject.getFormattedTextFragments()) { - System.out.println(fragment.getText()); - System.out.println(fragment.getFont().getFamilyName()); - System.out.println(fragment.getFont().getSize()); - System.out.println(fragment.getForegroundColor().toArgb()); - System.out.println(fragment.getBackgroundColor().toArgb()); - } - System.out.println(xObject.getText()); - System.out.println(xObject.getX()); - System.out.println(xObject.getY()); - System.out.println(xObject.getWidth()); - System.out.println(xObject.getHeight()); - System.out.println(xObject.getRotateAngle()); - } - } - doc.close(); - // ExEnd:ExtractXObjectInformationPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes XObject from a PDF document - */ - public static void removeXObject() { - try { - // ExStart:RemoveXObjectPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove XObject by index - doc.getPages().get_Item(0).getXObjects().removeAt(0); - - // Remove XObject by reference - doc.getPages().get_Item(0).getXObjects().remove(doc.getPages().get_Item(0).getXObjects().get_Item(0)); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveXObjectPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes XObject with particular text formatting - */ - public static void removeXObjectWithParticularTextFormatting() { - try { - // ExStart:RemoveXObjectWithParticularTextFormatting_1 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfPage page : doc.getPages()) { - for (int i = page.getXObjects().getCount() - 1; i >= 0; i--) { - for (FormattedTextFragment fragment : page.getXObjects().get_Item(i) - .getFormattedTextFragments()) { - if (Color.getRed().equals(fragment.getForegroundColor())) { - page.getXObjects().removeAt(i); - break; - } - } - } - - } - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveXObjectWithParticularTextFormatting_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images XObjects inside a PDF document - */ - public static void addWatermarkToXObjects() { - try { - // ExStart:AddWatermarkToXObjectsPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (PdfPage page : doc.getPages()) { - for (PdfXObject xObject : page.getXObjects()) { - if (xObject.getImage() != null) { - // Add watermark to the image - xObject.getImage().addWatermark(watermark); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToXObjectsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information about all artifacts in a PDF document - */ - public static void extractArtifactInformation() { - try { - // ExStart:ExtractArtifactInformationPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfPage page : doc.getPages()) { - for (PdfArtifact artifact : page.getArtifacts()) { - System.out.println(artifact.getArtifactType()); - System.out.println(artifact.getArtifactSubtype()); - if (artifact.getImage() != null) { - System.out.println(artifact.getImage().getWidth()); - System.out.println(artifact.getImage().getHeight()); - System.out.println(artifact.getImage().getBytes().length); - } - for (FormattedTextFragment fragment : artifact.getFormattedTextFragments()) { - System.out.println(fragment.getText()); - System.out.println(fragment.getFont().getFamilyName()); - System.out.println(fragment.getFont().getSize()); - System.out.println(fragment.getForegroundColor().toArgb()); - System.out.println(fragment.getBackgroundColor().toArgb()); - } - System.out.println(artifact.getText()); - System.out.println(artifact.getOpacity()); - System.out.println(artifact.getX()); - System.out.println(artifact.getY()); - System.out.println(artifact.getWidth()); - System.out.println(artifact.getHeight()); - System.out.println(artifact.getRotateAngle()); - } - } - doc.close(); - // ExEnd:ExtractArtifactInformationPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes artifact from a PDF document - */ - public static void removeArtifact() { - try { - // ExStart:RemoveArtifactPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove Artifact by index - doc.getPages().get_Item(0).getArtifacts().removeAt(0); - - // Remove Artifact by reference - doc.getPages().get_Item(0).getArtifacts().remove(doc.getPages().get_Item(0).getArtifacts().get_Item(0)); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveArtifactPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes artifact containing particular text formatting - */ - public static void removeArtifactWithParticularTextFormatting() { - try { - // ExStart:RemoveArtifactsWithParticularTextFormatting_1 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfPage page : doc.getPages()) { - for (int i = page.getArtifacts().getCount() - 1; i >= 0; i--) { - for (FormattedTextFragment fragment : page.getArtifacts().get_Item(i) - .getFormattedTextFragments()) { - if (fragment.getFont().getSize() > 42) { - page.getArtifacts().removeAt(i); - break; - } - } - } - - } - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveArtifactsWithParticularTextFormatting_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images Artifacts inside a PDF document - */ - public static void addWatermarkToArtifacts() { - try { - // ExStart:AddWatermarkToArtifactsPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (PdfPage page : doc.getPages()) { - for (PdfArtifact artifact : page.getArtifacts()) { - if (artifact.getImage() != null) { - // Add watermark to the image - artifact.getImage().addWatermark(watermark); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToArtifactsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information about all annotations in a PDF document - */ - public static void extractAnnotationInformation() { - try { - // ExStart:ExtractAnnotationInformationPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfPage page : doc.getPages()) { - for (PdfAnnotation annotation : page.getAnnotations()) { - System.out.println(annotation.getAnnotationType()); - if (annotation.getImage() != null) { - System.out.println(annotation.getImage().getWidth()); - System.out.println(annotation.getImage().getHeight()); - System.out.println(annotation.getImage().getBytes().length); - } - for (FormattedTextFragment fragment : annotation.getFormattedTextFragments()) { - System.out.println(fragment.getText()); - System.out.println(fragment.getFont().getFamilyName()); - System.out.println(fragment.getFont().getSize()); - System.out.println(fragment.getForegroundColor().toArgb()); - System.out.println(fragment.getBackgroundColor().toArgb()); - } - System.out.println(annotation.getText()); - System.out.println(annotation.getX()); - System.out.println(annotation.getY()); - System.out.println(annotation.getWidth()); - System.out.println(annotation.getHeight()); - System.out.println(annotation.getRotateAngle()); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ExtractAnnotationInformationPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes annotation from a PDF document - */ - public static void removeAnnotation() { - try { - // ExStart:RemoveAnnotationPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove Annotation by index - doc.getPages().get_Item(0).getAnnotations().removeAt(0); - - // Remove Annotation by reference - doc.getPages().get_Item(0).getAnnotations() - .remove(doc.getPages().get_Item(0).getAnnotations().get_Item(0)); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveAnnotationPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes annotation with particular text formatting - */ - public static void removeAnnotationWithParticularTextFormatting() { - try { - // ExStart:RemoveAnnotationsWithParticularTextFormatting_1 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfPage page : doc.getPages()) { - for (int i = page.getAnnotations().getCount() - 1; i >= 0; i--) { - for (FormattedTextFragment fragment : page.getAnnotations().get_Item(i) - .getFormattedTextFragments()) { - if ("Verdana".equals(fragment.getFont().getFamilyName())) { - page.getAnnotations().removeAt(i); - break; - } - } - } - - } - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveAnnotationsWithParticularTextFormatting_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images Annotations inside a PDF document - */ - public static void addWatermarkToAnnotations() { - try { - // ExStart:AddWatermarkToAnnotationsPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (PdfPage page : doc.getPages()) { - for (PdfAnnotation annotation : page.getAnnotations()) { - if (annotation.getImage() != null) { - // Add watermark to the image - annotation.getImage().addWatermark(watermark); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToAnnotationsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Rasterizes a PDF document - */ - public static void rasterizePDFDocument() { - try { - // ExStart:RasterizePDFDocumentPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Do not copy", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - watermark.setOpacity(0.5); - - // Add watermark of any type first - doc.addWatermark(watermark); - - // Rasterize all pages - doc.rasterize(100, 100, PdfImageConversionFormat.Png); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RasterizePDFDocumentPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Rasterizes a particular page of a PDF document - */ - public static void rasterizeParticularPageOfPDFDocument() { - try { - // ExStart:RasterizeParticularPageOfPDFDocumentPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Do not copy", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - watermark.setOpacity(0.5); - - // Add watermark of any type first - doc.getPages().get_Item(0).addWatermark(watermark); - - // Rasterize the first page - doc.getPages().get_Item(0).rasterize(100, 100, PdfImageConversionFormat.Png); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RasterizeParticularPageOfPDFDocumentPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to a PDF document specifying page margin type - */ - public static void addWatermarkWithPageMrginType() { - try { - // ExStart:AddWatermarkWithPageMrginTypePDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 42)); - watermark.setHorizontalAlignment(HorizontalAlignment.Right); - watermark.setVerticalAlignment(VerticalAlignment.Top); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - doc.setPageMarginType(PdfPageMarginType.BleedBox); - watermark.setConsiderParentMargins(true); - doc.addWatermark(watermark); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithPageMrginTypePDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extracts attachments from PDF document - */ - public static void extractAttachments() { - try { - // ExStart:extractAttachmentsPDF - String targetFolder = Common.ATTACHMENTS_PATH; - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfAttachment attachment : doc.getAttachments()) { - System.out.println("Name: " + attachment.getName()); - System.out.println("Description: " + attachment.getDescription()); - System.out.println("File format: " + attachment.getDocumentInfo().getFileFormat()); - - // Save the attached file on disk - FileOutputStream fileStream = new FileOutputStream(targetFolder + "\\" + attachment.getName()); - fileStream.write(attachment.getContent()); - fileStream.close(); - } - doc.close(); - // ExEnd:extractAttachmentsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes particular attachment from PDF document - */ - public static void removeAttachment() { - try { - // ExStart:removeAttachmentPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (int i = doc.getAttachments().getCount() - 1; i >= 0; i--) { - PdfAttachment attachment = doc.getAttachments().get_Item(i); - - // Remove all attached pdf files with a particular name - if (attachment.getName().contains("EULA") - && attachment.getDocumentInfo().getFileFormat() == FileFormat.Pdf) { - doc.getAttachments().removeAt(i); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:removeAttachmentPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all attached files of supported types - */ - public static void addWatermarkToAttachments() { - try { - // ExStart:addWatermarkToAttachmentsPDF - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (PdfAttachment attachment : doc.getAttachments()) { - // Check if the attached file is supported by - // GroupDocs.Watermark - if (attachment.getDocumentInfo().getFileFormat() != FileFormat.Undefined - && !attachment.getDocumentInfo().isEncrypted()) { - // Load the attached document - Document attachedDocument = attachment.loadDocument(); - - // Add wateramrk - attachedDocument.addWatermark(watermark); - - // Save changes in the attached file - attachment.updateDocument(attachedDocument); - - // Close the attached document - attachedDocument.close(); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:addWatermarkToAttachmentsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for images in attached files - */ - public static void searchImagesInAttachments() { - try { - // ExStart:searchImagesInAttachmentsPDF - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Consider only the attached images - doc.getSearchableObjects().setPdfSearchableObjects(PdfSearchableObjects.AttachedImages); - - // Specify sample image to compare document images with - ImageSearchCriteria criteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - - // Search for similar images - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(criteria); - - // Remove found image watermarks - possibleWatermarks.clear(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:searchImagesInAttachmentsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds attachment to PDF file - */ - public static void addAttachments() { - try { - // ExStart:addAttachmentsPDF - String attachmentPath = Common.mapSourceFilePath("sample.docx"); - File attachmentFile = new File(attachmentPath); - byte[] attachmentBytes = new byte[(int) attachmentFile.length()]; - InputStream attachmentInputStream = new FileInputStream(attachmentFile); - attachmentInputStream.read(attachmentBytes); - attachmentInputStream.close(); - - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Add the attachment - doc.getAttachments().add(attachmentBytes, "License Agreement.doc", "end-user license agreement"); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:addAttachmentsPDF - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular XObject - */ - public static void replaceTextForParticularXObject() { - try { - // ExStart:ReplaceTextForParticularXObject_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - for (PdfXObject xObject : doc.getPages().get_Item(0).getXObjects()) { - if (xObject.getText().contains("Test")) { - xObject.setText("Passed"); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularXObject_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular artifact - */ - public static void replaceTextForParticularArtifact() { - try { - // ExStart:ReplaceTextForParticularArtifact_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - for (PdfArtifact artifact : doc.getPages().get_Item(0).getArtifacts()) { - if (artifact.getText().contains("Test")) { - artifact.setText("Passed"); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularArtifact_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular annotation - */ - public static void replaceTextForParticularAnnotation() { - try { - // ExStart:ReplaceTextForParticularAnnotation_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - for (PdfAnnotation annotation : doc.getPages().get_Item(0).getAnnotations()) { - if (annotation.getText().contains("Test")) { - annotation.setText("Passed"); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularAnnotation_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular XObject with formatting - */ - public static void replaceTextForParticularXObjectWithFormatting() { - try { - // ExStart:ReplaceTextForParticularXObjectWithFormatting_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - for (PdfXObject xObject : doc.getPages().get_Item(0).getXObjects()) { - if (xObject.getText().contains("Test")) { - xObject.getFormattedTextFragments().clear(); - xObject.getFormattedTextFragments().add("Passed", new Font("Calibri", 19, FontStyle.Bold), - Color.getRed(), Color.getAqua()); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularXObjectWithFormatting_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular artifact with formatting - */ - public static void replaceTextForParticularArtifactWithFormatting() { - try { - // ExStart:ReplaceTextForParticularArtifactWithFormatting_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - for (PdfArtifact artifact : doc.getPages().get_Item(0).getArtifacts()) { - if (artifact.getText().contains("Test")) { - artifact.getFormattedTextFragments().clear(); - artifact.getFormattedTextFragments().add("Passed", new Font("Calibri", 19, FontStyle.Bold), - Color.getRed(), Color.getAqua()); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularArtifactWithFormatting_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular annotation with formatting - */ - public static void replaceTextForParticularAnnotationWithFormatting() { - try { - // ExStart:ReplaceTextForParticularAnnotationWithFormatting_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - for (PdfAnnotation annotation : doc.getPages().get_Item(0).getAnnotations()) { - if (annotation.getText().contains("Test")) { - annotation.getFormattedTextFragments().clear(); - annotation.getFormattedTextFragments().add("Passed", new Font("Calibri", 19, FontStyle.Bold), - Color.getRed(), Color.getAqua()); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularAnnotationWithFormatting_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces image for particular XObject - */ - public static void replaceImageForParticularXObject() { - try { - // ExStart:ReplaceImageForParticularXObject_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - String imagePath = "D:\\test.png"; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (PdfXObject xObject : doc.getPages().get_Item(0).getXObjects()) { - if (xObject.getImage() != null) { - xObject.setImage(new PdfWatermarkableImage(imageBytes)); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceImageForParticularXObject_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces image for particular artifact - */ - public static void replaceImageForParticularArtifact() { - try { - // ExStart:ReplaceImageForParticularArtifact_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - String imagePath = "D:\\test.png"; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (PdfArtifact artifact : doc.getPages().get_Item(0).getArtifacts()) { - if (artifact.getImage() != null) { - artifact.setImage(new PdfWatermarkableImage(imageBytes)); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceImageForParticularArtifact_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces image for particular annotation - */ - public static void replaceImageForParticularAnnotation() { - try { - // ExStart:ReplaceImageForParticularAnnotation_18.3 - PdfDocument doc = Document.load(PdfDocument.class, Common.mapSourceFilePath(FILE_PATH)); - String imagePath = "D:\\test.png"; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (PdfAnnotation annotation : doc.getPages().get_Item(0).getAnnotations()) { - if (annotation.getImage() != null) { - annotation.setImage(new PdfWatermarkableImage(imageBytes)); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceImageForParticularAnnotation_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - } - - public static class Word { - // initialize file path - // ExStart:SourceWordFilePath - private final static String FILE_PATH = "sample_with_watermark.docx"; - - // ExEnd:SourceWordFilePath - /** - * Adds watermark to a section of Word document - */ - public static void addWatermarkToSection() { - try { - // ExStart:AddWatermarkToSection - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - - // Add watermark to all visible headers of the first section - doc.getSections().get_Item(0).addWatermark(watermark); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToSection - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to a particular page of Word document - */ - public static void addWatermarkToParticuarPage() { - try { - // ExStart:AddWatermarkToParticuarPageWord - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark textWatermark = new TextWatermark("DRAFT", new Font("Arial", 42)); - - // Add watermark to the last page - doc.addWatermark(textWatermark, doc.getPageCount()); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToParticuarPageWord - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds locked watermark to a section of Word document - **/ - public static void addLockedWatermarkToSection() { - try { - // ExStart:AddLockedWatermarkToSection_18.6 - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); - watermark.setForegroundColor(Color.getRed()); - - WordsShapeSettings settings = new WordsShapeSettings(); - settings.setLocked(true); - settings.setLockType(WordsLockType.ReadOnlyWithEditableContent); - settings.setPassword("7654321"); - - doc.getSections().get_Item(0).addWatermark(watermark, settings); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddLockedWatermarkToSection_18.6 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds locked watermark to all pages of Word document - **/ - public static void addLockedWatermarkToAllPages() { - try { - // ExStart:AddLockedWatermarkToAllPages_18.6 - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); - watermark.setForegroundColor(Color.getRed()); - - WordsShapeSettings settings = new WordsShapeSettings(); - settings.setLocked(true); - settings.setLockType(WordsLockType.AllowOnlyFormFields); - settings.setPassword("7654321"); - - doc.addWatermark(watermark, settings); - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddLockedWatermarkToAllPages_18.6 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds locked watermark to particular pages of Word document - **/ - public static void addLockedWatermarkToParticularPages() { - try { - // ExStart:AddLockedWatermarkToParticularPages_18.6 - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); - watermark.setForegroundColor(Color.getRed()); - - WordsShapeSettings settings = new WordsShapeSettings(); - settings.setPageNumbers(new int[] { 1, 3 }); - settings.setLocked(true); - settings.setLockType(WordsLockType.AllowOnlyComments); - settings.setPassword("7654321"); - - doc.addWatermark(watermark, settings); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddLockedWatermarkToParticularPages_18.6 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets properties of a section of Word document - */ - public static void getSectionProperties() { - try { - // ExStart:GetSectionProperties - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - WordsPageSetup pageSetup = doc.getSections().get_Item(0).getPageSetup(); - - System.out.println(pageSetup.getWidth()); - System.out.println(pageSetup.getHeight()); - System.out.println(pageSetup.getTopMargin()); - System.out.println(pageSetup.getRightMargin()); - System.out.println(pageSetup.getBottomMargin()); - System.out.println(pageSetup.getLeftMargin()); - - doc.close(); - // ExEnd:GetSectionProperties - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Links header/footer to the previous section of Word document - */ - public static void linkHeaderFooterInSection() { - try { - // ExStart:LinkHeaderFooterInSection - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Link footer for even numbered pages to corresponding footer - // in previous section - doc.getSections().get_Item(0).getHeadersFooters() - .getByOfficeHeaderFooterType(OfficeHeaderFooterType.FooterEven).setLinkedToPrevious(true); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:LinkHeaderFooterInSection - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Links all header/footer to the previous section of Word document - */ - public static void linkAllHeaderFooterInSection() { - try { - // ExStart:LinkAllHeaderFooterInSection - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Link all headers and footers to the corresponding headers and - // footers in the previous section. - doc.getSections().get_Item(0).getHeadersFooters().linkToPrevious(true); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:LinkAllHeaderFooterInSection - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Links all header/footer to the previous section and adds watermark - */ - public static void linkAllHeaderFooterInSectionAndAddsWatermark() { - try { - // ExStart:LinkAllHeaderFooterInSection - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - // Add watermark to all visible headers of the first section - doc.getSections().get_Item(0).addWatermark(watermark); - - watermark.close(); - - // Link all other headers&footers to corresponding - // headers&footers of the first section - for (int i = 1; i < doc.getSections().getCount(); i++) { - doc.getSections().get_Item(i).getHeadersFooters().linkToPrevious(true); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:LinkAllHeaderFooterInSection - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Sets different headers/footers for even/odd numbered pages and for - * the first page of the document - */ - public static void setDifferentFirstPageHeaderFooter() { - try { - // ExStart:SetDifferentFirstPageHeaderFooter - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - doc.getSections().get_Item(0).getPageSetup().setDifferentFirstPageHeaderFooter(true); - doc.getSections().get_Item(0).getPageSetup().setOddAndEvenPagesHeaderFooter(true); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:SetDifferentFirstPageHeaderFooter - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds image watermark to a word document - */ - public static void addImageWatermark() { - try { - // ExStart:AddImageWatermarkToWord - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - // Add watermark to all visible headers of the first section - doc.getSections().get_Item(0).addWatermark(watermark); - - watermark.close(); - - // Link all other headers&footers to corresponding - // headers&footers of the first section - for (int i = 1; i < doc.getSections().getCount(); i++) { - doc.getSections().get_Item(i).getHeadersFooters().linkToPrevious(true); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddImageWatermarkToWord - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images inside a section of Word document - */ - public static void addWatermarkToImages() { - try { - // ExStart:AddWatermarkToImagesWordSection - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - // Get all images belonging to the first section - WatermarkableImageCollection images = doc.getSections().get_Item(0).findImages(); - - // Add watermark to all found images - for (WatermarkableImage image : images) { - image.addWatermark(watermark); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImagesWordSection - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to Word document with Words Shape Settings - */ - public static void addWatermarkWithWordsShapeSettings() { - try { - // ExStart:AddWatermarkWithWordsShapeSettings - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("This is test watermark", new Font("Arial", 19)); - WordsShapeSettings shapeSettings = new WordsShapeSettings(); - - // Set the shape name - shapeSettings.setName("Shape 1"); - - // Set the descriptive (alternative) text that will be - // associated with the shape - shapeSettings.setAlternativeText("Test watermark"); - - doc.addWatermark(watermark, shapeSettings); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithWordsShapeSettings - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to Word document with text effects - */ - public static void addWatermarkWithTextEffects() { - try { - // ExStart:AddWatermarkWithTextEffectsWord - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - - WordsTextEffects effects = new WordsTextEffects(); - effects.getLineFormat().setEnabled(true); - effects.getLineFormat().setColor(Color.getRed()); - effects.getLineFormat().setDashStyle(OfficeDashStyle.DashDotDot); - effects.getLineFormat().setLineStyle(OfficeLineStyle.Triple); - effects.getLineFormat().setWeight(1); - doc.addTextWatermark(watermark, effects); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithTextEffectsWord - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to Word document with image effects - */ - public static void addWatermarkWithImageEffects() { - try { - // ExStart:AddWatermarkWithImageEffectsWord - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - WordsImageEffects effects = new WordsImageEffects(); - effects.setBrightness(0.7); - effects.setContrast(0.6); - effects.setChromaKey(Color.getWhite()); - effects.getBorderLineFormat().setEnabled(true); - effects.getBorderLineFormat().setWeight(1); - doc.addImageWatermark(watermark, effects); - watermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithImageEffectsWord - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes watermark from a particular section of Word document - */ - public static void removeWatermarkFromSection() { - try { - // ExStart:RemoveWatermarkFromSection - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize search criteria - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - TextSearchCriteria textSearchCriteria = new TextSearchCriteria("This is test watermark"); - - // Call findWatermarks method for a section - PossibleWatermarkCollection possibleWatermarks = doc.getSections().get_Item(0) - .findWatermarks(textSearchCriteria.or(imageSearchCriteria)); - - // Remove all found watermarks - for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--) { - possibleWatermarks.removeAt(i); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveWatermarkFromSection - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Finds watermarks in a header/footer of Word document - */ - public static void findWatermarkInHeaderFooter() { - try { - // ExStart:FindWatermarkInHeaderFooter - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name"); - - PossibleWatermarkCollection possibleWatermarks = doc.getSections().get_Item(0).getHeadersFooters() - .getByOfficeHeaderFooterType(OfficeHeaderFooterType.HeaderPrimary) - .findWatermarks(textSearchCriteria.or(imageSearchCriteria)); - - System.out.println(possibleWatermarks.getCount()); - doc.close(); - // ExEnd:FindWatermarkInHeaderFooter - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extracts information about all the shapes is a Word document - */ - public static void getShapesInformation() { - try { - // ExStart:GetShapesInformationWord - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (WordsSection section : doc.getSections()) { - for (WordsShape shape : section.getShapes()) { - if (shape.getHeaderFooter() != null) { - System.out.println("In header/footer"); - } - - System.out.println(shape.getShapeType()); - System.out.println(shape.getWidth()); - System.out.println(shape.getHeight()); - System.out.println(shape.isWordArt()); - System.out.println(shape.getRotateAngle()); - System.out.println(shape.getAlternativeText()); - System.out.println(shape.getName()); - System.out.println(shape.getX()); - System.out.println(shape.getY()); - System.out.println(shape.getText()); - if (shape.getImage() != null) { - System.out.println(shape.getImage().getWidth()); - System.out.println(shape.getImage().getHeight()); - System.out.println(shape.getImage().getBytes().length); - } - - for (FormattedTextFragment fragment : shape.getFormattedTextFragments()) { - System.out.println(fragment.getText()); - System.out.println(fragment.getFont().getFamilyName()); - System.out.println(fragment.getFont().getSize()); - System.out.println(fragment.getForegroundColor().toArgb()); - System.out.println(fragment.getBackgroundColor().toArgb()); - } - - System.out.println(shape.getHorizontalAlignment()); - System.out.println(shape.getVerticalAlignment()); - System.out.println(shape.getRelativeHorizontalPosition()); - System.out.println(shape.getRelativeVerticalPosition()); - System.out.println(shape.getHyperlink()); - } - } - - doc.close(); - // ExEnd:GetShapesInformationWord - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shape in a Word document - */ - public static void removeShape() { - try { - // ExStart:RemoveShapeWordDocument - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove shape by index - doc.getSections().get_Item(0).getShapes().removeAt(0); - - // Remove shape by reference - doc.getSections().get_Item(0).getShapes().remove(doc.getSections().get_Item(0).getShapes().get_Item(0)); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveShapeWordDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shape with particular text formatting - */ - public static void removeShapeWithParticularTextFormatting() { - try { - // ExStart:RemoveTextShapesWithParticularTextFormattingWord_1 - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (WordsSection section : doc.getSections()) { - for (int i = section.getShapes().getCount() - 1; i >= 0; i--) { - for (FormattedTextFragment fragment : section.getShapes().get_Item(i) - .getFormattedTextFragments()) { - if ("Arial".equals(fragment.getFont().getFamilyName()) - && Color.getRed().equals(fragment.getForegroundColor())) { - section.getShapes().removeAt(i); - break; - } - } - } - - } - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveTextShapesWithParticularTextFormattingWord_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all image shapes in a Word document - */ - public static void addWatermarkToImageShapes() { - try { - // ExStart:AddWatermarkToImageShapesWordDocument - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (WordsSection section : doc.getSections()) { - for (WordsShape shape : section.getShapes()) { - // Headers&Footers usually contains only service - // information. - // So, we skip images in headers/footers, expecting that - // they are probably watermarks or backgrounds - if (shape.getHeaderFooter() == null && shape.getImage() != null) { - shape.getImage().addWatermark(watermark); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImageShapesWordDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes/replaces hyperlink associated with a particular shape - */ - public static void removeHyperlinkAssociatedWithParticularShape() { - try { - // ExStart:RemoveHyperlinksWord_1 - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Replace hyperlink - doc.getSections().get_Item(0).getShapes().get_Item(0).setHyperlink("https://www.groupdocs.com/"); - - // Remove hyperlink - doc.getSections().get_Item(0).getShapes().get_Item(1).setHyperlink(null); - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveHyperlinksWord_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Protects a Word document - */ - public static void protectWordDocument() { - try { - // ExStart:ProtectWordDocument_18.6 - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - doc.protect(WordsProtectionType.ReadOnly, "7654321"); - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ProtectWordDocument_18.6 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes protection from Word document - */ - public static void unprotectWordDocument() { - try { - // ExStart:UnProtectWordDocument_18.6 - WordsDocument doc = Document.load(WordsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - doc.unprotect(); - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:UnProtectWordDocument_18.6 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - } - - public static class Excel { - // initialize file path - // ExStart:SourceExcelFilePath - private final static String FILE_PATH = "sample.xlsx"; - // ExEnd:SourceExcelFilePath - - /** - * Adds watermark to Excel spreadsheet - */ - public static void addWatermark() { - try { - // ExStart:AddWatermarkToExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Add text watermark - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); - doc.getWorksheets().get_Item(0).addWatermark(textWatermark); - - // Add image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - doc.getWorksheets().get_Item(0).addWatermark(imageWatermark); - imageWatermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets content area dimensions of Excel worksheet - */ - public static void getContentAreaDimensions() { - try { - // ExStart:GetContentAreaDimensionsExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Get the size of content area - System.out.println(doc.getWorksheets().get_Item(0).getContentAreaHeight()); - System.out.println(doc.getWorksheets().get_Item(0).getContentAreaWidth()); - - // Get the size of particular cell - System.out.println(doc.getWorksheets().get_Item(0).getColumnWidth(0)); - System.out.println(doc.getWorksheets().get_Item(0).getRowHeight(0)); - - doc.close(); - // ExEnd:GetContentAreaDimensionsExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images inside an Excel worksheet - */ - public static void addWatermarkToImages() { - try { - // ExStart:AddWatermarkToImagesExcelWorksheet - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - // Get all images from the first worksheet - WatermarkableImageCollection images = doc.getWorksheets().get_Item(0).findImages(); - - // Add watermark to all found images - for (WatermarkableImage image : images) { - image.addWatermark(watermark); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - - // ExEnd:AddWatermarkToImagesExcelWorksheet - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds modern word art watermark to Excel worksheet - */ - public static void addModernWordArdWatermark() { - try { - // ExStart:AddModernWordArdWatermarkToExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 36)); - doc.getWorksheets().get_Item(0).addModernWordArtWatermark(textWatermark); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddModernWordArdWatermarkToExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to Excel worksheet with additional shape settings - */ - public static void addWatermarkUsingCellsShapeSettings() { - try { - // ExStart:AddWatermarkUsingCellsShapeSettings - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 36)); - CellsShapeSettings shapeSettings = new CellsShapeSettings(); - - // Set the shape name - shapeSettings.setName("Shape 1"); - - // Set the descriptive (alternative) text that will be - // associated with the shape - shapeSettings.setAlternativeText("Test watermark"); - - // Editing of the shape in Excel is forbidden - shapeSettings.setLocked(true); - doc.addModernWordArtWatermark(textWatermark, shapeSettings); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkUsingCellsShapeSettings - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark with text effects to Excel worksheet - */ - public static void addWatermarkWithTextEffects() { - try { - // ExStart:AddWatermarkWithTextEffectsToExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19)); - - CellsTextEffects effects = new CellsTextEffects(); - effects.getLineFormat().setEnabled(true); - effects.getLineFormat().setColor(Color.getRed()); - effects.getLineFormat().setDashStyle(OfficeDashStyle.DashDotDot); - effects.getLineFormat().setLineStyle(OfficeLineStyle.Triple); - effects.getLineFormat().setWeight(1); - - doc.addTextWatermark(watermark, effects); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithTextEffectsToExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark with image effects to Excel worksheet - */ - public static void addWatermarkWithImageEffects() { - try { - // ExStart:AddWatermarkWithImageEffectsToExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - CellsImageEffects effects = new CellsImageEffects(); - effects.setBrightness(0.7); - effects.setContrast(0.6); - effects.setChromaKey(Color.getWhite()); - effects.getBorderLineFormat().setEnabled(true); - effects.getBorderLineFormat().setWeight(1); - - doc.addImageWatermark(watermark, effects); - watermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithImageEffectsToExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark as background to Excel worksheet - */ - public static void addWatermarkAsBackground() { - try { - // ExStart:AddWatermarkAsBackgroundToExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - doc.addWatermarkAsBackground(watermark); - watermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkAsBackgroundToExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark as background with relative size and position to Excel - * worksheet - */ - public static void addWatermarkAsBackgroundWithRelativeSizeAndPosition() { - try { - // ExStart:AddWatermarkAsBackgroundWithRelativeSizeAndPosition - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(90); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(0.5); - doc.getWorksheets().get_Item(0).addWatermarkAsBackground(watermark, doc.getWorksheets().get_Item(0) - .getContentAreaWidthPx() /* set background width */, - doc.getWorksheets().get_Item(0) - .getContentAreaHeightPx() /* - * set background - * height - */); - watermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkAsBackgroundWithRelativeSizeAndPosition - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark text as background to Excel worksheet - * - */ - public static void addWatermarkAsBackground(String WatermarkText) { - try { - // ExStart:AddWatermarkTextAsBackgroundToExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(0.5); - watermark.setOpacity(0.5); - doc.getWorksheets().get_Item(0).addWatermarkAsBackground(watermark, doc.getWorksheets().get_Item(0) - .getContentAreaWidthPx() /* set background width */, - doc.getWorksheets().get_Item(0) - .getContentAreaHeightPx() /* - * set background - * height - */); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkTextAsBackgroundToExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds image watermark into header/footer of Excel worksheet - */ - public static void addWatermarkIntoHeaderFooter() { - try { - // ExStart:AddImageWatermarkIntoHeaderFooter - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - watermark.setVerticalAlignment(VerticalAlignment.Top); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - doc.getWorksheets().get_Item(0).addWatermarkIntoHeaderFooter(watermark); - watermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddImageWatermarkIntoHeaderFooter - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds text watermark into header/footer of Excel worksheet - * - */ - public static void addWatermarkIntoHeaderFooter(String WatermarkText) { - try { - // ExStart:AddTextWatermarkIntoHeaderFooter - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19, FontStyle.Bold)); - watermark.setForegroundColor(Color.getRed()); - watermark.setVerticalAlignment(VerticalAlignment.Top); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - doc.getWorksheets().get_Item(0).addWatermarkIntoHeaderFooter(watermark); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddTextWatermarkIntoHeaderFooter - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes watermark from Excel worksheet - */ - public static void removeWatermark() { - try { - // ExStart:RemoveWatermarkExcelWorksheet - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize search criteria - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Test watermark"); - - // Call findWatermarks method for a worksheet - PossibleWatermarkCollection possibleWatermarks = doc.getWorksheets().get_Item(0) - .findWatermarks(textSearchCriteria.or(imageSearchCriteria)); - - // Remove all found watermarks - for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--) { - possibleWatermarks.removeAt(i); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveWatermarkExcelWorksheet - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extracts information about all the shapes is a Excel document - */ - public static void getShapesInformation() { - try { - // ExStart:GetShapesInformationExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (CellsShape shape : worksheet.getShapes()) { - System.out.println(shape.getAutoShapeType()); - System.out.println(shape.getMsoDrawingType()); - System.out.println(shape.getText()); - if (shape.getImage() != null) { - System.out.println(shape.getImage().getWidth()); - System.out.println(shape.getImage().getHeight()); - System.out.println(shape.getImage().getBytes().length); - } - for (FormattedTextFragment fragment : shape.getFormattedTextFragments()) { - System.out.println(fragment.getText()); - System.out.println(fragment.getFont().getFamilyName()); - System.out.println(fragment.getFont().getSize()); - System.out.println(fragment.getForegroundColor().toArgb()); - System.out.println(fragment.getBackgroundColor().toArgb()); - } - System.out.println(shape.getHyperlink()); - System.out.println(shape.getId()); - System.out.println(shape.getAlternativeText()); - System.out.println(shape.getX()); - System.out.println(shape.getY()); - System.out.println(shape.getWidth()); - System.out.println(shape.getHeight()); - System.out.println(shape.getRotateAngle()); - System.out.println(shape.isWordArt()); - System.out.println(shape.getName()); - } - } - - doc.close(); - // ExEnd:GetShapesInformationExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shape in an Excel worksheet - */ - public static void removeShape() { - try { - // ExStart:RemoveShapeExcelWorksheet - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove shape by index - doc.getWorksheets().get_Item(0).getShapes().removeAt(0); - - // Remove shape by reference - doc.getWorksheets().get_Item(0).getShapes() - .remove(doc.getWorksheets().get_Item(0).getShapes().get_Item(0)); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveShapeExcelWorksheet - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shape with particular text formatting - */ - public static void removeShapeWithParticularTextFormatting() { - try { - // ExStart:RemoveTextShapesWithParticularTextFormattingExcel_1 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (int i = worksheet.getShapes().getCount() - 1; i >= 0; i--) { - for (FormattedTextFragment fragment : worksheet.getShapes().get_Item(i) - .getFormattedTextFragments()) { - if ("Arial".equals(fragment.getFont().getFamilyName()) - && Color.getRed().equals(fragment.getForegroundColor())) { - worksheet.getShapes().removeAt(i); - break; - } - } - } - } - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveTextShapesWithParticularTextFormattingExcel_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all image shapes in a Excel document - */ - public static void addWatermarkToImageShapes() { - try { - // ExStart:AddWatermarkToImageShapesExcelDocument - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (CellsShape shape : worksheet.getShapes()) { - if (shape.getImage() != null) { - // Add watermark to the image - shape.getImage().addWatermark(watermark); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImageShapesExcelDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular shapes - */ - public static void replaceTextForParticularShapes() { - try { - // ExStart:ReplaceTextForParticularShapes_17.12 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsShape shape : doc.getWorksheets().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.setText(" GroupDocs 2017"); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularShapes_17.12 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - - } - - /** - * Replaces text with formatting for particular shapes - */ - public static void replaceTextWithParticularFormatting() { - - try { - // ExStart:ReplaceTextWithFormattingForParticularShapes_17.12 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsShape shape : doc.getWorksheets().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.getFormattedTextFragments().clear(); - shape.getFormattedTextFragments().add(" GroupDocs 2017", - new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextWithFormattingForParticularShapes_17.12 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - - } - - /** - * Replaces image of particular shapes - */ - public static void replaceImageOfParticularShapes() { - try { - // ExStart:ReplaceImageOfParticularShapes_17.12 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (CellsShape shape : doc.getWorksheets().get_Item(0).getShapes()) { - if (shape.getImage() != null) { - shape.setImage(new CellsWatermarkableImage(imageBytes)); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceImageOfParticularShapes_17.12 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Sets background image for particular shapes - */ - public static void setBackgroundImageForParticularShapes() { - try { - // ExStart:SetBackgroundImageForParticularShapes_17.12 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (CellsShape shape : doc.getWorksheets().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.getImageFillFormat().setBackgroundImage(new CellsWatermarkableImage(imageBytes)); - shape.getImageFillFormat().setTransparency(0.5); - shape.getImageFillFormat().setTileAsTexture(true); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:SetBackgroundImageForParticularShapes_17.12 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Updates shape properties - */ - public static void updateShapeProperties() { - try { - // ExStart:UpdateShapeProperties_17.12 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsShape shape : doc.getWorksheets().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.setAlternativeText("watermark"); - shape.setRotateAngle(30); - shape.setX(200); - shape.setY(200); - shape.setWidth(400); - shape.setHeight(100); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:UpdateShapeProperties_17.12 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information about all worksheet backgrounds in a Excel document - */ - public static void getInformationOfWorksheetBackgrounds() { - try { - // ExStart:GetInformationOfWorksheetBackgrounds - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - if (worksheet.getBackgroundImage() != null) { - System.out.println(worksheet.getBackgroundImage().getWidth()); - System.out.println(worksheet.getBackgroundImage().getHeight()); - System.out.println(worksheet.getBackgroundImage().getBytes().length); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:GetInformationOfWorksheetBackgrounds - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes background in a Excel worksheet - */ - public static void removeWorksheetBackground() { - try { - // ExStart:RemoveWorksheetBackground - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - doc.getWorksheets().get_Item(0).setBackgroundImage(null); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveWorksheetBackground - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all background images in a Excel worksheet - */ - public static void addWatermarkToBackgroundImages() { - try { - // ExStart:AddWatermarkToBackgroundImagesExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - if (worksheet.getBackgroundImage() != null) { - // Add watermark to the image - worksheet.getBackgroundImage().addWatermark(watermark); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToBackgroundImagesExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information about all headers/footers in a Excel document - */ - public static void getHeaderFooterInformation() { - try { - // ExStart:GetHeaderFooterInformationExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (CellsHeaderFooter headerFooter : worksheet.getHeadersFooters()) { - System.out.println(headerFooter.getHeaderFooterType()); - for (CellsHeaderFooterSection section : headerFooter.getSections()) { - System.out.println(section.getSectionType()); - if (section.getImage() != null) { - System.out.println(section.getImage().getWidth()); - System.out.println(section.getImage().getHeight()); - System.out.println(section.getImage().getBytes().length); - } - System.out.println(section.getScript()); - } - } - } - - doc.close(); - // ExEnd:GetHeaderFooterInformationExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Clears particular headers/footers in a Excel worksheet - */ - public static void clearHeaderFooter() { - try { - // ExStart:ClearHeaderFooterExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - CellsHeaderFooterSectionCollection sections = doc.getWorksheets().get_Item(0).getHeadersFooters() - .getByOfficeHeaderFooterType(OfficeHeaderFooterType.HeaderPrimary).getSections(); - for (CellsHeaderFooterSection section : sections) { - section.setScript(null); - section.setImage(null); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ClearHeaderFooterExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Clears particular section of headers/footers in a Excel worksheet - */ - public static void clearSectionOfHeaderFooter() { - try { - // ExStart:ClearSectionOfHeaderFooterExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - CellsHeaderFooterSection section = doc.getWorksheets().get_Item(0).getHeadersFooters() - .getByOfficeHeaderFooterType(OfficeHeaderFooterType.HeaderPrimary).getSections() - .getByCellsHeaderFooterSectionType(CellsHeaderFooterSectionType.Left); - - section.setScript(null); - section.setImage(null); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ClearSectionOfHeaderFooterExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images of headers/footers in a Excel worksheet - */ - public static void addWatermarkToImagesInHeaderFooter() { - try { - // ExStart:AddWatermarkToImagesInHeaderFooterExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (CellsHeaderFooter headerFooter : worksheet.getHeadersFooters()) { - for (CellsHeaderFooterSection section : headerFooter.getSections()) { - if (section.getImage() != null) { - // Add watermark to the image - section.getImage().addWatermark(watermark); - } - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImagesInHeaderFooterExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Sets background image for a chart in a Excel worksheet - */ - public static void setBackgroundImageForChart() { - try { - // ExStart:SetBackgroundImageForChart - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - CellsChart chart = doc.getWorksheets().get_Item(0).getCharts().get_Item(0); - chart.getImageFillFormat().setBackgroundImage(new CellsWatermarkableImage(imageBytes)); - chart.getImageFillFormat().setTransparency(0.5); - chart.getImageFillFormat().setTileAsTexture(true); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:SetBackgroundImageForChart - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information about all charts on a worksheet - */ - public static void getInformationAboutAllChart() { - try { - // ExStart:getInformationAboutAllChart - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsChart chart : doc.getWorksheets().get_Item(0).getCharts()) { - System.out.println(chart.getWidth()); - System.out.println(chart.getHeight()); - System.out.println(chart.getX()); - System.out.println(chart.getY()); - System.out.println(chart.getAlternativeText()); - System.out.println(chart.getId()); - System.out.println(chart.getName()); - System.out.println(chart.getHyperlink()); - } - - doc.close(); - // ExEnd:getInformationAboutAllChart - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extract information about all attachments in an Excel document - */ - public static void extractAttachmentsInfo() { - try { - // ExStart:extractAttachmentsInfo - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (CellsAttachment attachment : worksheet.getAttachments()) { - System.out.println("Alternative text: " + attachment.getAlternativeText()); - System.out.println("Attachment frame x-coordinate: " + attachment.getX()); - System.out.println("Attachment frame y-coordinate: " + attachment.getY()); - System.out.println("Attachment frame width: " + attachment.getWidth()); - System.out.println("Attachment frame height: " + attachment.getHeight()); - System.out.println("Preview image size: " + attachment.getPreviewImageContent() != null - ? attachment.getPreviewImageContent().length : 0); - - if (attachment.isLink()) { - // The document contains only a link to the attached - // file - System.out.println("Full path to the attached file: " + attachment.getSourceFullName()); - } else { - // The attached file is stored in the document - System.out.println("File format: " + attachment.getDocumentInfo().getFileFormat()); - System.out.println("Name of the source file: " + attachment.getSourceFullName()); - System.out.println("File size: " + attachment.getContent().length); - } - } - } - - doc.close(); - // ExEnd:extractAttachmentsInfo - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Add an attachment to an Excel document - */ - public static void addAttachment() { - try { - // ExStart:AddAttachmentExcel - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String attachmentPath = Common.mapSourceFilePath("sample.docx"); - File file = new File(attachmentPath); - byte[] attachmentBytes = new byte[(int) file.length()]; - InputStream inputStream = new FileInputStream(file); - inputStream.read(attachmentBytes); - inputStream.close(); - - String previewImagePath = Common.mapSourceFilePath("sample.png"); - file = new File(previewImagePath); - byte[] previewImageBytes = new byte[(int) file.length()]; - inputStream = new FileInputStream(file); - inputStream.read(previewImageBytes); - inputStream.close(); - - CellsWorksheet worksheet = doc.getWorksheets().get_Item(0); - - // Add the attachment - worksheet.getAttachments().addAttachment(attachmentBytes, // File - // content - attachmentPath, // Source file full name (the extension - // is used to determine appropriate - // application to open the file) - previewImageBytes, // Preview image content - 50, // X-coordinate of the attachment frame - 100, // Y-coordinate of the attachment frame - 200, // Attachment frame width - 400); // Attachment frame height - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddAttachmentExcel - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Add a linked file to an Excel document - */ - public static void addLinkedAttachment() { - try { - // ExStart:AddLinkedAttachment - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String attachmentPath = Common.mapSourceFilePath("sample.docx"); - String previewImagePath = Common.mapSourceFilePath("sample.png"); - File file = new File(previewImagePath); - byte[] previewImageBytes = new byte[(int) file.length()]; - FileInputStream inputStream = new FileInputStream(file); - inputStream.read(previewImageBytes); - inputStream.close(); - - CellsWorksheet worksheet = doc.getWorksheets().get_Item(0); - - // Add the attachment - worksheet.getAttachments().addLink(attachmentPath, // Source - // file path - previewImageBytes, // Preview image content - 50, // X-coordinate of the attachment frame - 100, // Y-coordinate of the attachment frame - 200, // Attachment frame width - 400); // Attachment frame height - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddLinkedAttachment - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Remove particular attachments from an Excel document - */ - public static void removeAttachment() { - try { - // ExStart:RemoveAttachment - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (int i = worksheet.getAttachments().getCount() - 1; i >= 0; i--) { - CellsAttachment attachment = worksheet.getAttachments().get_Item(i); - if (attachment.isLink() && !new File(attachment.getSourceFullName()).exists() || // Linked - // file - // that - // is - // not - // available - // at - // this - // moment - attachment.getDocumentInfo().isEncrypted()) // Attached - // file - // protected - // with - // a - // password - { - // Remove the file if it meets at least one of the - // conditions above - worksheet.getAttachments().removeAt(i); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveAttachment - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Add watermark to all attached files of supported types - */ - public static void addWatermarkToAttachments() { - try { - // ExStart:AddWatermarkToAttachment - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - - for (CellsWorksheet worksheet : doc.getWorksheets()) { - for (CellsAttachment attachment : worksheet.getAttachments()) { - // Check if the attached file is supported by - // GroupDocs.Watermark - if (attachment.getDocumentInfo().getFileFormat() != FileFormat.Undefined - && !attachment.getDocumentInfo().isEncrypted()) { - // Load the attached document - Document attachedDocument = attachment.loadDocument(); - - // Add wateramrk - attachedDocument.addWatermark(watermark); - - // Save changes in the attached file - attachment.updateDocument(attachedDocument); - - attachedDocument.close(); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToAttachment - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Search for images in the attached files using FindImages or - * FindWatermarks method - */ - public static void searchImagesInAttachments() { - try { - // ExStart:SearchImageInAttachment - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Consider only the attached images - doc.getSearchableObjects().setCellsSearchableObjects(CellsSearchableObjects.AttachedImages); - - // Specify sample image to compare document images with - ImageSearchCriteria criteria = new ImageDctHashSearchCriteria("D:\\watermark.jpg"); - - // Search for similar images - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(criteria); - - // Remove found image watermarks - possibleWatermarks.clear(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:SearchImageInAttachment - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes/replaces hyperlink associated with particular shape - */ - public static void removeHyperlinkAssociatedWithParticularShape() { - try { - // ExStart:RemoveHyperlinksExcel_1 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Replace hyperlink - doc.getWorksheets().get_Item(0).getCharts().get_Item(0).setHyperlink("https://www.aspose.com/"); - doc.getWorksheets().get_Item(0).getShapes().get_Item(0).setHyperlink("https://www.groupdocs.com/"); - - // Remove hyperlink - doc.getWorksheets().get_Item(1).getCharts().get_Item(0).setHyperlink(null); - doc.getWorksheets().get_Item(1).getShapes().get_Item(0).setHyperlink(null); - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveHyperlinksExcel_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shape in an Excel worksheet - */ - public static void RemoveSmartArtAndCustomXmlShapes() { - try { - // ExStart:RemoveSmartArtAndCustomXmlShapes_18.8 - CellsDocument doc = Document.load(CellsDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Get shapes - CellsShapeCollection shapes = doc.getWorksheets().get_Item(0).getShapes(); - for (int i = shapes.getCount() - 1; i >= 0; i--) { - CellsShape shape = shapes.get_Item(i); - // Check if the shape is SmartArt or CustomXml - if (shape.getMsoDrawingType() == CellsMsoDrawingType.SmartArt - || shape.getMsoDrawingType() == CellsMsoDrawingType.CustomXml) { - shapes.removeAt(i); - } - } - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveSmartArtAndCustomXmlShapes_18.8 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - } - - public static class PowerPoint { - // initialize file path - // ExStart:SourcePowerPointFilePath - private final static String FILE_PATH = "sample.pptx"; - // ExEnd:SourcePowerPointFilePath - - /** - * Adds watermark to a PowerPoint slide - */ - public static void addWatermark() { - try { - // ExStart:AddWatermarkToPowerPointSlide - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Add text watermark - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); - doc.getSlides().get_Item(0).addWatermark(textWatermark); - - // Add image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - doc.getSlides().get_Item(1).addWatermark(imageWatermark); - imageWatermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToPowerPointSlide - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets dimensions of a PowerPoint slide - */ - public static void getDimensionsOfSlide() { - try { - // ExStart:GetDimensionsOfSlide - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - System.out.println(doc.getSlideWidth()); - System.out.println(doc.getSlideHeight()); - - doc.close(); - // ExEnd:GetDimensionsOfSlide - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images of a PowerPoint slide - */ - public static void addWatermarkToImages() { - try { - // ExStart:AddWatermarkToImagesPowerPointSlide - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - // Get all images from the first slide - WatermarkableImageCollection images = doc.getSlides().get_Item(0).findImages(); - - // Add watermark to all found images - for (WatermarkableImage image : images) { - image.addWatermark(watermark); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImagesPowerPointSlide - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all slide types of PowerPoint document - */ - public static void addWatermarkToAllSlideTypes() { - try { - // ExStart:AddWatermarkToAllSlideTypes - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 8)); - - // Add watermark to all master slides - for (SlidesMasterSlide slide : doc.getMasterSlides()) { - slide.addWatermark(watermark); - } - - // Add watermark to all layout slides - if (doc.getLayoutSlides() != null) { - for (SlidesLayoutSlide slide : doc.getLayoutSlides()) { - slide.addWatermark(watermark); - } - } - - // Add watermark to all notes slides - for (SlidesSlide slide : doc.getSlides()) { - if (slide.getNotesSlide() != null) { - slide.getNotesSlide().addWatermark(watermark); - } - } - - // Add watermark to handout master - if (doc.getMasterHandoutSlide() != null) { - doc.getMasterHandoutSlide().addWatermark(watermark); - } - - // Add watermark to notes master - if (doc.getMasterNotesSlide() != null) { - doc.getMasterNotesSlide().addWatermark(watermark); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToAllSlideTypes - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to a PowerPoint slide with Slides Shape Settings - */ - public static void addWatermarkWithSlidesShapeSettings() { - try { - // ExStart:AddWatermarkWithSlidesShapeSettings - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - watermark.setBackground(true); - SlidesShapeSettings shapeSettings = new SlidesShapeSettings(); - - // Set the shape name - shapeSettings.setName("Shape 1"); - - // Set the descriptive (alternative) text that will be - // associated with the shape - shapeSettings.setAlternativeText("Test watermark"); - - // Editing of the shape in PowerPoint is forbidden - shapeSettings.setLocked(true); - - doc.addWatermark(watermark, shapeSettings); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithSlidesShapeSettings - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark with text effects to a PowerPoint slide - */ - public static void addWatermarkWithTextEffects() { - try { - // ExStart:AddWatermarkWithTextEffectsPowerPointSlide - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19)); - - SlidesTextEffects effects = new SlidesTextEffects(); - effects.getLineFormat().setEnabled(true); - effects.getLineFormat().setColor(Color.getRed()); - effects.getLineFormat().setDashStyle(OfficeDashStyle.DashDotDot); - effects.getLineFormat().setLineStyle(OfficeLineStyle.Triple); - effects.getLineFormat().setWeight(1); - doc.addTextWatermark(watermark, effects); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithTextEffectsPowerPointSlide - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark with image effects to a PowerPoint slide - */ - public static void addWatermarkWithImageEffects() { - try { - // ExStart:AddWatermarkWithImageEffectsPowerPointSlide - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - SlidesImageEffects effects = new SlidesImageEffects(); - effects.setBrightness(0.7); - effects.setContrast(0.6); - effects.setChromaKey(Color.getWhite()); // setChromaKey method - // doesn't work for ppt - // files at this moment. - effects.getBorderLineFormat().setEnabled(true); - effects.getBorderLineFormat().setWeight(1); - doc.addImageWatermark(watermark, effects); - watermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithImageEffectsPowerPointSlide - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes watermark from PowerPoint slide - */ - public static void removeWatermark() { - try { - // ExStart:RemoveWatermarkPowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize search criteria - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - TextSearchCriteria textSearchCriteria = new TextSearchCriteria("This is test watermark"); - - // Call findWatermarks method for a slide - PossibleWatermarkCollection possibleWatermarks = doc.getSlides().get_Item(0) - .findWatermarks(textSearchCriteria.or(imageSearchCriteria)); - - // Remove all found watermarks - for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--) { - possibleWatermarks.removeAt(i); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveWatermarkPowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extracts information about all the shapes in PowerPoint slide - */ - public static void getShapesInformation() { - try { - // ExStart:GetShapesInformationPowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (SlidesSlide slide : doc.getSlides()) { - for (SlidesShape shape : slide.getShapes()) { - if (shape.getImage() != null) { - System.out.println(shape.getImage().getWidth()); - System.out.println(shape.getImage().getHeight()); - System.out.println(shape.getImage().getBytes().length); - } - - for (FormattedTextFragment fragment : shape.getFormattedTextFragments()) { - System.out.println(fragment.getText()); - System.out.println(fragment.getFont().getFamilyName()); - System.out.println(fragment.getFont().getSize()); - System.out.println(fragment.getForegroundColor().toArgb()); - System.out.println(fragment.getBackgroundColor().toArgb()); - } - - System.out.println(shape.getName()); - System.out.println(shape.getAlternativeText()); - System.out.println(shape.getX()); - System.out.println(shape.getY()); - System.out.println(shape.getWidth()); - System.out.println(shape.getHeight()); - System.out.println(shape.getRotateAngle()); - System.out.println(shape.getText()); - System.out.println(shape.getId()); - System.out.println(shape.getShapeType()); - System.out.println(shape.getZOrderPosition()); - System.out.println(shape.getHyperlink(SlidesHyperlinkActionType.MouseClick)); - System.out.println(shape.getHyperlink(SlidesHyperlinkActionType.MouseOver)); - } - } - - doc.close(); - // ExEnd:GetShapesInformationPowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shape from PowerPoint slide - */ - public static void removeShape() { - try { - // ExStart:RemoveShapePowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove shape by index - doc.getSlides().get_Item(0).getShapes().removeAt(0); - - // Remove shape by reference - doc.getSlides().get_Item(0).getShapes().remove(doc.getSlides().get_Item(0).getShapes().get_Item(0)); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveShapePowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shape with particular text formatting - */ - public static void removeShapeWithParticularTextFormatting() { - try { - // ExStart:RemoveTextShapesWithParticularTextFormattingPowerPoint_1 - // Load document - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Get and remove shapes from slides - for (SlidesSlide section : doc.getSlides()) { - for (int i = section.getShapes().getCount() - 1; i >= 0; i--) { - for (FormattedTextFragment fragment : section.getShapes().get_Item(i) - .getFormattedTextFragments()) { - if ("Arial".equals(fragment.getFont().getFamilyName()) - && Color.getRed().equals(fragment.getForegroundColor())) { - section.getShapes().removeAt(i); - break; - } - } - } - } - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveTextShapesWithParticularTextFormattingPowerPoint_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all image shapes in a PowerPoint document - */ - public static void addWatermarkToImageShapes() { - try { - // ExStart:AddWatermarkToImageShapesPowerPointDocument - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (SlidesSlide slide : doc.getSlides()) { - for (SlidesShape shape : slide.getShapes()) { - if (shape.getImage() != null) { - // Add watermark to the image - shape.getImage().addWatermark(watermark); - } - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImageShapesPowerPointDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information of all slide backgrounds of a PowerPoint document - */ - public static void getInformationOfSlideBackgrounds() { - try { - // ExStart:GetInformationOfSlideBackgroundsPowerPointDocument - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (SlidesSlide slide : doc.getSlides()) { - if (slide.getImageFillFormat().getBackgroundImage() != null) { - System.out.println(slide.getImageFillFormat().getTileAsTexture()); - System.out.println(slide.getImageFillFormat().getTransparency()); - System.out.println(slide.getImageFillFormat().getBackgroundImage().getWidth()); - System.out.println(slide.getImageFillFormat().getBackgroundImage().getHeight()); - System.out.println(slide.getImageFillFormat().getBackgroundImage().getBytes().length); - } - } - - doc.close(); - // ExEnd:GetInformationOfSlideBackgroundsPowerPointDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes background of a PowerPoint slide - */ - public static void removeBackground() { - try { - // ExStart:RemoveBackgroundPowerPointSlide - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - doc.getSlides().get_Item(0).getImageFillFormat().setBackgroundImage(null); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveBackgroundPowerPointSlide - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all background images of a PowerPoint slide - */ - public static void addWatermarkToAllBackgroundImages() { - try { - // ExStart:AddWatermarkToAllBackgroundImagesPowerPointSlide - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - for (SlidesSlide slide : doc.getSlides()) { - if (slide.getImageFillFormat().getBackgroundImage() != null) { - // Add watermark to the image - slide.getImageFillFormat().getBackgroundImage().addWatermark(watermark); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToAllBackgroundImagesPowerPointSlide - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Sets additional settings for slide backgrounds - */ - public static void setAdditionalSettingsForSlideBackgrounds() { - try { - // ExStart:SetTiledSemitransparentBackgroundPowerPoint_1 - // Get image - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - // Load document - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Get slide and update background - SlidesSlide slide = doc.getSlides().get_Item(0); - slide.getImageFillFormat().setBackgroundImage(new SlidesWatermarkableImage(imageBytes)); - slide.getImageFillFormat().setTileAsTexture(true); - slide.getImageFillFormat().setTransparency(0.5); - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:SetTiledSemitransparentBackgroundPowerPoint_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Sets tiled semitransparent image background for a particular slide. - */ - public static void getChartInformation() { - try { - // ExStart:getChartInformation - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (SlidesChart chart : doc.getSlides().get_Item(0).getCharts()) { - System.out.println(chart.getWidth()); - System.out.println(chart.getHeight()); - System.out.println(chart.getX()); - System.out.println(chart.getY()); - System.out.println(chart.getAlternativeText()); - System.out.println(chart.getId()); - System.out.println(chart.getName()); - System.out.println(chart.getHyperlink(SlidesHyperlinkActionType.MouseClick)); - System.out.println(chart.getHyperlink(SlidesHyperlinkActionType.MouseOver)); - } - - doc.close(); - // ExEnd:getChartInformation - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Sets background image for a chart in a PowerPoint presentation - */ - public static void setBackgroundImageForChart() { - try { - // ExStart:SetBackgroundImageForChartPowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - SlidesImageFillFormat imageFillFormat = doc.getSlides().get_Item(0).getCharts().get_Item(0) - .getImageFillFormat(); - imageFillFormat.setBackgroundImage(new SlidesWatermarkableImage(imageBytes)); - imageFillFormat.setTransparency(0.5); - imageFillFormat.setTileAsTexture(true); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:SetBackgroundImageForChartPowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text with formatted text - */ - public static void replaceTextWithFormattedText() { - try { - // ExStart:replaceTextWithFormattedTextPowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - for (SlidesShape shape : doc.getSlides().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.getFormattedTextFragments().clear(); - shape.getFormattedTextFragments().add(" GroupDocs 2017", - new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); - } - } - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:replaceTextWithFormattedTextPowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes hyperlink associated with a particular shape or chart inside - * a PowerPoint document - */ - public static void replaceHyperlinks() { - try { - // ExStart:RemoveHyperlinksPowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String oldUrl = "http://aspose.com/"; - - // Assign null to remove hyperlink - String newUrl = "http://groupdocs.com/"; - - for (SlidesSlide slide : doc.getSlides()) { - // Replace hyperlinks in shapes - for (SlidesShape shape : slide.getShapes()) { - replaceHyperlink(shape, SlidesHyperlinkActionType.MouseOver, oldUrl, newUrl); - replaceHyperlink(shape, SlidesHyperlinkActionType.MouseClick, oldUrl, newUrl); - - // Replace hyperlinks in text fragments - for (FormattedTextFragment fragment : shape.getFormattedTextFragments()) { - replaceHyperlink((ISlidesHyperlinkContainer) fragment, SlidesHyperlinkActionType.MouseClick, - oldUrl, newUrl); - replaceHyperlink((ISlidesHyperlinkContainer) fragment, SlidesHyperlinkActionType.MouseOver, - oldUrl, newUrl); - } - } - - // Replace hyperlinks in charts - for (SlidesChart chart : slide.getCharts()) { - replaceHyperlink(chart, SlidesHyperlinkActionType.MouseOver, oldUrl, newUrl); - replaceHyperlink(chart, SlidesHyperlinkActionType.MouseClick, oldUrl, newUrl); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveHyperlinksPowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - private static void replaceHyperlink(ISlidesHyperlinkContainer hyperlinkContainer, int hyperlinkActionType, - String oldUrl, String newUrl) { - if (oldUrl.equals(hyperlinkContainer.getHyperlink(hyperlinkActionType))) { - hyperlinkContainer.setHyperlink(hyperlinkActionType, newUrl); - } - } - - /** - * Replaces text for a particular shape - */ - public static void replaceTextForParticularShape() { - try { - // ExStart:ReplaceTextForParticularShapePowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (SlidesShape shape : doc.getSlides().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.setText(" GroupDocs 2017"); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularShapePowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text with a particular formatting - */ - public static void replaceTextWithFormattingForParticularShape() { - try { - // ExStart:replaceTextWithFormattingForParticularShapePowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (SlidesShape shape : doc.getSlides().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.getFormattedTextFragments().clear(); - shape.getFormattedTextFragments().add(" GroupDocs 2017", - new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:replaceTextWithFormattingForParticularShapePowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces shape image - */ - public static void replaceShapeImage() { - try { - // ExStart:replaceShapeImagePowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (SlidesShape shape : doc.getSlides().get_Item(0).getShapes()) { - if (shape.getImage() != null) { - shape.setImage(new SlidesWatermarkableImage(imageBytes)); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:replaceShapeImagePowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Sets background image for particular shapes - */ - public static void setBackgroundImageForParticularShapes() { - try { - // ExStart:SetBackgroundImageForParticularShapesPowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (SlidesShape shape : doc.getSlides().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.getImageFillFormat().setBackgroundImage(new SlidesWatermarkableImage(imageBytes)); - shape.getImageFillFormat().setTransparency(0.5); - shape.getImageFillFormat().setTileAsTexture(true); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:SetBackgroundImageForParticularShapesPowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Modifies shape properties - */ - public static void modifyShapeProperties() { - try { - // ExStart:ModifyShapePropertiesPowerPoint - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (SlidesShape shape : doc.getSlides().get_Item(0).getShapes()) { - if (" Aspose 2016".equals(shape.getText())) { - shape.setAlternativeText("watermark"); - shape.setRotateAngle(30); - shape.setX(200); - shape.setY(200); - shape.setWidth(400); - shape.setHeight(100); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ModifyShapePropertiesPowerPoint - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes hyperlinks of all types - */ - public static void removeHyperlinksOfAllTypes() { - try { - // ExStart:RemoveHyperlinksUsingFindWatermarkPowerPoint_1 - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(FILE_PATH)); - doc.getSearchableObjects().setSlidesSearchableObjects(SlidesSearchableObjects.Hyperlinks); - - // Find all hyperlinks - PossibleWatermarkCollection watermarks = doc.findWatermarks(); - - // Remove found watermarks - watermarks.clear(); - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveHyperlinksUsingFindWatermarkPowerPoint_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Protects watermark using unreadable characters - */ - public static void ProtectWatermarkUsingUnreadableCharacters() { - try { - // ExStart:ProtectWatermarkUsingUnreadableCharacters_18.8 - final SlidesDocument document = Document.load(SlidesDocument.class, - Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); - - SlidesShapeSettings settings = new SlidesShapeSettings(); - settings.setLocked(true); - - // Set protection with unreadable characters - settings.setProtectWithUnreadableCharacters(true); - - // Add watermark - document.addWatermark(watermark, settings); - - // Save document - document.save(Common.mapOutputFilePath(FILE_PATH)); - document.close(); - // ExEnd:ProtectWatermarkUsingUnreadableCharacters_18.8 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - } - - public static class Visio { - // initialize file path - // ExStart:SourceVisioFilePath - private final static String FILE_PATH = "sample.vsdx"; - // ExEnd:SourceVisioFilePath - - /** - * Adds watermark to all pages of a particular type - */ - public static void addWatermarkToAllPagesOfParticularType() { - try { - // ExStart:AddWatermarkToAllPagesOfParticularType - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize text watermark - TextWatermark textWatermark = new TextWatermark("Test watermark 1", new Font("Calibri", 19)); - - // Add text watermark to all background pages - doc.addWatermark(textWatermark, DiagramWatermarkPlacementType.BackgroundPages); - - // Initialize image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - // Add image watermark to all background pages - doc.addWatermark(imageWatermark, DiagramWatermarkPlacementType.ForegroundPages); - imageWatermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToAllPagesOfParticularType - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to separate newly created backround pages - */ - public static void addWatermarkToSeparateBackgroundPage() { - try { - // ExStart:AddWatermarkToSeparateBackgroundPage - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize watermark of any supported type - TextWatermark textWatermark = new TextWatermark("Test watermark 1", new Font("Calibri", 19)); - - // Create separate background for each page where it is not set. - // Add watermark to it. - doc.addWatermark(textWatermark, DiagramWatermarkPlacementType.SeparateBackgrounds); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToSeparateBackgroundPage - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to a particular page - */ - public static void addWatermarkToParticularPage() { - try { - // ExStart:AddWatermarkToParticularPage - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Add text watermark - TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Calibri", 19)); - doc.getPages().get_Item(0).addWatermark(textWatermark); - - // Add image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - doc.getPages().get_Item(0).addWatermark(imageWatermark); - imageWatermark.close(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToParticularPage - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Gets information about the pages - */ - public static void getPagesInformation() { - try { - // ExStart:GetPagesInformationVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (DiagramPage page : doc.getPages()) { - System.out.println(page.getWidth()); - System.out.println(page.getHeight()); - System.out.println(page.getLeftMargin()); - System.out.println(page.getRightMargin()); - System.out.println(page.getTopMargin()); - System.out.println(page.getBottomMargin()); - System.out.println(page.getName()); - System.out.println(page.isBackground()); - System.out.println(page.isVisible()); - if (page.getBackgroundPage() != null) { - System.out.println(page.getBackgroundPage().getName()); - } - } - - doc.close(); - // ExEnd:GetPagesInformationVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all images of a particular page - */ - public static void addWatermarkToImages() { - try { - // ExStart:AddWatermarkToImagesVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize image or text watermark - TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); - watermark.setHorizontalAlignment(HorizontalAlignment.Center); - watermark.setVerticalAlignment(VerticalAlignment.Center); - watermark.setRotateAngle(45); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - - // Get all images from the first slide - WatermarkableImageCollection images = doc.getPages().get_Item(0).findImages(); - - // Add watermark to all found images - for (WatermarkableImage image : images) { - image.addWatermark(watermark); - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToImagesVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Locks the watermark shape to prevent editing in MS Visio - */ - public static void lockWatermarkShape() { - try { - // ExStart:LockWatermarkShape - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - - DiagramShapeSettings shapeSettings = new DiagramShapeSettings(); - shapeSettings.setLocked(true); - - // Editing of the shape in Visio is forbidden - doc.addWatermark(watermark, shapeSettings); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:LockWatermarkShape - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes watermark from a particular page - */ - public static void removeWatermark() { - try { - // ExStart:RemoveWatermarkVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Initialize search criteria - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Test watermark"); - - // Call findWatermarks method for the first page - PossibleWatermarkCollection possibleWatermarks = doc.getPages().get_Item(0) - .findWatermarks(textSearchCriteria.or(imageSearchCriteria)); - - // Remove all found watermarks - possibleWatermarks.clear(); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveWatermarkVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extracts information about the shapes - */ - public static void getShapesInformation() { - try { - // ExStart:GetShapesInformationVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (DiagramPage page : doc.getPages()) { - for (DiagramShape shape : page.getShapes()) { - if (shape.getImage() != null) { - System.out.println(shape.getImage().getWidth()); - System.out.println(shape.getImage().getHeight()); - System.out.println(shape.getImage().getBytes().length); - } - - for (FormattedTextFragment fragment : shape.getFormattedTextFragments()) { - System.out.println(fragment.getText()); - System.out.println(fragment.getFont().getFamilyName()); - System.out.println(fragment.getFont().getSize()); - System.out.println(fragment.getForegroundColor().toArgb()); - System.out.println(fragment.getBackgroundColor().toArgb()); - } - - System.out.println(shape.getName()); - System.out.println(shape.getX()); - System.out.println(shape.getY()); - System.out.println(shape.getWidth()); - System.out.println(shape.getHeight()); - System.out.println(shape.getRotateAngle()); - System.out.println(shape.getText()); - System.out.println(shape.getId()); - - for (DiagramHyperlink hyperlink : shape.getHyperlinks()) { - System.out.println(hyperlink.getAddress()); - System.out.println(hyperlink.getSubAddress()); - System.out.println(hyperlink.getDescription()); - } - } - } - - doc.close(); - // ExEnd:GetShapesInformationVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes a particular shape - */ - public static void removeShape() { - try { - // ExStart:RemoveShapeVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove shape by index - doc.getPages().get_Item(0).getShapes().removeAt(0); - - // Remove shape by reference - doc.getPages().get_Item(0).getShapes().remove(doc.getPages().get_Item(0).getShapes().get_Item(0)); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveShapeVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes shapes with particular text formatting - */ - public static void removeShapeWithParticularTextFormatting() { - try { - // ExStart:RemoveTextShapesWithParticularTextFormattingVisio_1 - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Get pages and remove shapes with particular text formatting - for (DiagramPage section : doc.getPages()) { - for (int i = section.getShapes().getCount() - 1; i >= 0; i--) { - for (FormattedTextFragment fragment : section.getShapes().get_Item(i) - .getFormattedTextFragments()) { - if ("Arial".equals(fragment.getFont().getFamilyName()) - && Color.getRed().equals(fragment.getForegroundColor())) { - section.getShapes().removeAt(i); - break; - } - } - } - } - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveTextShapesWithParticularTextFormattingVisio_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extracts information about all the headers&footers - */ - public static void getHeaderFooterInformation() { - try { - // ExStart:GetHeaderFooterInformationVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Get header&footer font settings - System.out.println(doc.getHeaderFooter().getFont().getFamilyName()); - System.out.println(doc.getHeaderFooter().getFont().getSize()); - System.out.println(doc.getHeaderFooter().getFont().getBold()); - System.out.println(doc.getHeaderFooter().getFont().getItalic()); - System.out.println(doc.getHeaderFooter().getFont().getUnderline()); - System.out.println(doc.getHeaderFooter().getFont().getStrikeout()); - - // Get text contained in headers&footers - System.out.println(doc.getHeaderFooter().getHeaderLeft()); - System.out.println(doc.getHeaderFooter().getHeaderCenter()); - System.out.println(doc.getHeaderFooter().getHeaderRight()); - System.out.println(doc.getHeaderFooter().getFooterLeft()); - System.out.println(doc.getHeaderFooter().getFooterCenter()); - System.out.println(doc.getHeaderFooter().getFooterRight()); - - // Get text color - System.out.println(doc.getHeaderFooter().getTextColor().toArgb()); - - // Get header&footer margins - System.out.println(doc.getHeaderFooter().getFooterMargin()); - System.out.println(doc.getHeaderFooter().getHeaderMargin()); - - doc.close(); - // ExEnd:GetHeaderFooterInformationVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes or replaces particular header&footer - */ - public static void removeOrReplaceHeaderFooter() { - try { - // ExStart:RemoveOrReplaceHeaderFooter - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Remove header - doc.getHeaderFooter().setHeaderCenter(null); - - // Replace footer - doc.getHeaderFooter().setFooterCenter("Footer center"); - doc.getHeaderFooter().getFont().setSize(19); - doc.getHeaderFooter().getFont().setFamilyName("Times New Roman"); - doc.getHeaderFooter().setTextColor(Color.getBlack()); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveOrReplaceHeaderFooter - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text for particular shapes - */ - public static void replaceTextForParticularShapes() { - try { - // ExStart:ReplaceTextForParticularShapesVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (DiagramShape shape : doc.getPages().get_Item(0).getShapes()) { - if (shape.getText() != null && shape.getText().contains(" Aspose 2016")) { - shape.setText(" GroupDocs 2017"); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextForParticularShapesVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces text with formatting - */ - public static void replaceTextWithFormatting() { - try { - // ExStart:ReplaceTextWithFormattingVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (DiagramShape shape : doc.getPages().get_Item(0).getShapes()) { - if (shape.getText() != null && shape.getText().contains(" Aspose 2016")) { - shape.getFormattedTextFragments().clear(); - shape.getFormattedTextFragments().add(" GroupDocs 2017", - new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceTextWithFormattingVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces shape image - */ - public static void replaceShapeImage() { - try { - // ExStart:ReplaceShapeImageVisio - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - for (DiagramShape shape : doc.getPages().get_Item(0).getShapes()) { - if (shape.getImage() != null) { - shape.setImage(new DiagramWatermarkableImage(imageBytes)); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:ReplaceShapeImageVisio - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes/replaces hyperlink associated with particular shape - */ - public static void removeHyperlinkAssociatedWithParticularShape() { - try { - // ExStart:RemoveHyperlinksVisio_1 - DiagramDocument doc = Document.load(DiagramDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - DiagramShape shape = doc.getPages().get_Item(0).getShapes().get_Item(0); - for (int i = shape.getHyperlinks().getCount() - 1; i >= 0; i--) { - - if (shape.getHyperlinks().get_Item(i).getAddress().contains("http://someurl.com")) { - shape.getHyperlinks().removeAt(i); - } - } - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveHyperlinksVisio_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - } - - public static class Email { - // initialize file path - // ExStart:SourceVisioFilePath - private final static String FILE_PATH = "sample.msg"; - // ExEnd:SourceVisioFilePath - - /** - * Loads an email message - */ - public static void loadEmailMessage() { - try { - // ExStart:LoadEmailMessage - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - // Do something... - doc.close(); - // ExEnd:LoadEmailMessage - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Extract all attachments from an email message - */ - public static void extractAllAttachments() { - try { - // ExStart:ExtractAllAttachments - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String targetFolder = Common.ATTACHMENTS_PATH; - - for (EmailAttachment attachment : doc.getAttachments()) { - System.out.println("Name: " + attachment.getName()); - System.out.println("File format: " + attachment.getDocumentInfo().getFileFormat()); - - FileOutputStream outputStream = new FileOutputStream(targetFolder + "\\" + attachment.getName()); - outputStream.write(attachment.getContent()); - outputStream.close(); - } - - doc.close(); - // ExEnd:ExtractAllAttachments - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes particular attachments from an email message - */ - public static void removeAttachment() { - try { - // ExStart:RemoveAttachment - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (int i = doc.getAttachments().getCount() - 1; i >= 0; i--) { - EmailAttachment attachment = doc.getAttachments().get_Item(i); - - // Remove all attached pdf files with a particular name - if (attachment.getName().contains("sample") - && attachment.getDocumentInfo().getFileFormat() == FileFormat.Msg) { - doc.getAttachments().removeAt(i); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveAttachment - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds watermark to all attached files of supported types - */ - public static void addWatermarkToAllAttachment() { - try { - // ExStart:AddWatermarkToAllAttachment - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - - for (EmailAttachment attachment : doc.getAttachments()) { - // Check if the attached file is supported by - // GroupDocs.Watermark - if (attachment.getDocumentInfo().getFileFormat() != FileFormat.Undefined - && !attachment.getDocumentInfo().isEncrypted()) { - // Load the attached document - Document attachedDocument = attachment.loadDocument(); - - // Add watermark - attachedDocument.addWatermark(watermark); - - // Save changes in the attached file - attachment.updateDocument(attachedDocument); - - attachedDocument.close(); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToAllAttachment - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Adds an attachment to an email message - */ - public static void addAttachment() { - try { - // ExStart:AddAttachment - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String attachmentPath = Common.mapSourceFilePath("sample.docx"); - File attachmentFile = new File(attachmentPath); - byte[] attachmentBytes = new byte[(int) attachmentFile.length()]; - InputStream attachmentInputStream = new FileInputStream(attachmentFile); - attachmentInputStream.read(attachmentBytes); - attachmentInputStream.close(); - - doc.getAttachments().add(attachmentBytes, "sample.docx"); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddAttachment - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes all embedded jpeg images from an email message - */ - public static void removeEmbeddedImages() { - try { - // ExStart:RemoveEmbeddedImages - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - for (int i = doc.getEmbeddedObjects().getCount() - 1; i >= 0; i--) { - if (doc.getEmbeddedObjects().get_Item(i).getDocumentInfo().getFileFormat() == FileFormat.Jpeg) { - // Remove reference to the image from html body - String pattern = "]*src=\"cid:" + doc.getEmbeddedObjects().get_Item(i).getContentId() - + "\"[^>]*>"; - doc.setHtmlBody(doc.getHtmlBody().replaceAll(pattern, "")); - - // Remove the image - doc.getEmbeddedObjects().removeAt(i); - } - } - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:RemoveEmbeddedImages - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Embeds image into email message body - */ - public static void addEmbeddedImage() { - try { - // ExStart:AddEmbeddedImage - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - String imagePath = Common.WATERMARK_IMAGE_PATH; - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - doc.getEmbeddedObjects().add(imageBytes, imagePath); - EmailEmbeddedObject embeddedObject = doc.getEmbeddedObjects() - .get_Item(doc.getEmbeddedObjects().getCount() - 1); - doc.setHtmlBody("This is an embedded image: "); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddEmbeddedImage - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Modifies email bosy and subject - */ - public static void modifyEmailBodyAndSubject() { - try { - // ExStart:modifyEmailBodyAndSubject - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // Set the plain text body - doc.setBody("Test plain text body"); - - // Set the html body - doc.setHtmlBody("Test html body"); - - // Set the email subject - doc.setSubject("Test subject"); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:modifyEmailBodyAndSubject - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Lists all email recipients - */ - public static void listAllRecipients() { - try { - // ExStart:listAllRecipients - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - // List all direct recipients - for (EmailAddress address : doc.getTo()) { - System.out.println(address.getAddress()); - } - - // List all CC recipients - for (EmailAddress address : doc.getCc()) { - System.out.println(address.getAddress()); - } - - // List all BCC recipients - for (EmailAddress address : doc.getBcc()) { - System.out.println(address.getAddress()); - } - doc.close(); - // ExEnd:listAllRecipients - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Finds text fragment in email message - */ - public static void findTextFragmentInEmailMessage() { - try { - // ExStart:findTextFragmentInEmailMessage - EmailDocument doc = Document.load(EmailDocument.class, Common.mapSourceFilePath(FILE_PATH)); - - SearchCriteria criteria = new TextSearchCriteria("test", false); - - // Specify search locations - doc.getSearchableObjects().setEmailSearchableObjects(EmailSearchableObjects.Subject - | EmailSearchableObjects.HtmlBody | EmailSearchableObjects.PlainTextBody); - - // Note, search is performed only if you pass TextSearchCriteria - // instance to findWatermarks method - PossibleWatermarkCollection watermarks = doc.findWatermarks(criteria); - - // Remove found text fragments - watermarks.clear(); - - // Save document - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:findTextFragmentInEmailMessage - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - } -} diff --git a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Images.java b/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Images.java deleted file mode 100644 index 29ae9ac..0000000 --- a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/Images.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.groupdocs.watermark.examples; - -import com.groupdocs.watermark.Document; -import com.groupdocs.watermark.Font; -import com.groupdocs.watermark.ImageWatermark; -import com.groupdocs.watermark.MultiframeImageDocument; -import com.groupdocs.watermark.TextWatermark; - -public class Images { - // ExStart:SourcePDFFilePath - private final static String FILE_PATH = "sample.gif"; - // ExEnd:SourcePDFFilePath - - /** - * Adds watermark to a multi frame image - */ - public static void addWatermarkToMultiframeImageDocument() { - try { - // ExStart:AddWatermarkToMultiframeImageDocument - MultiframeImageDocument doc = Document.load(MultiframeImageDocument.class, - Common.mapSourceFilePath(FILE_PATH)); - - // Initialize text or image watermark - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); - - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - // Add watermark to the first frame - doc.getFrames().get_Item(0).addWatermark(watermark); - doc.getFrames().get_Item(0).addWatermark(imageWatermark); - - doc.save(Common.mapOutputFilePath(FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToMultiframeImageDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - -} diff --git a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/MainClass.java b/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/MainClass.java deleted file mode 100644 index 1b392b9..0000000 --- a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/MainClass.java +++ /dev/null @@ -1,392 +0,0 @@ -package com.groupdocs.watermark.examples; - -public class MainClass { - public static void main(String[] args) throws Throwable { - - // Uncomment following code if you have license file - //Common.applyLicenseFromFile(); - - // Using metered license - // Common.useDynabicMeteredAccount(); - - // Working with Watermark Operations - // Add image watermark to any supported document - //WatermarkOperations.addImageWatermark(); - - // Add image watermark to any supported document using stream - //WatermarkOperations.addImageWatermarkUsingStream(); - - // Add text watermark to any supported document - // WatermarkOperations.addTextWatermark(); - - // Add watermark to absolute position - // WatermarkOperations.addWatermarkToAbsolutePosition(); - - // Add watermark to the images inside a document - // WatermarkOperations.addWatermarkToImagesInsideDocument(); - - // Add watermark to relative position - // WatermarkOperations.addWatermarkToRelativePosition(); - - // Add watermark with absolute margin - // WatermarkOperations.addWatermarkWithAbsoluteMargin(); - - // Add watermark with absolute margin - // WatermarkOperations.addWatermarkWithRelativeMargin(); - - // Add watermark with size type - // WatermarkOperations.addWatermarkWithSizeType(); - - // Add watermark specifying parent margin - // WatermarkOperations.addWatermarkWithParentMargin(); - - // Remove watermark - // WatermarkOperations.removeWatermark(); - - // Search image watermark - // WatermarkOperations.searchImageWatermark(); - - // Search watermark - // WatermarkOperations.searchWatermark(); - - // Search watermark with combined search criteria - // WatermarkOperations.searchWatermarkWithCombinedSearch(); - - // Search for watermark specifying which objects should be included in - // the search for all document instances - // WatermarkOperations.searchWatermarkInParticularObjects(); - - // Search for watermark specifying which objects should be included in - // the search for particular document instance - // WatermarkOperations.searchWatermarkInParticularObjectsForParticularDocument(); - - // Working with PDF Documents - // Add annotation watermark - // Documents.PDF.addAnnotationWatermark(); - - // Add artifact watermark - // Documents.PDF.addArtifactWatermark(); - - // Add print only watermark - // Documents.PDF.addPrintOnlyAnnotationWatermark(); - - // Add watermark - // Documents.PDF.addWatermark(); - - // Add watermark to annotations - // Documents.PDF.addWatermarkToAnnotations(); - - // Add watermark to artifact - // Documents.PDF.addWatermarkToArtifacts(); - - // Add watermark to images - // Documents.PDF.addWatermarkToImages(); - - // Add watermark to XObjects - // Documents.PDF.addWatermarkToXObjects(); - - // Add attachment - // Documents.PDF.addAttachments(); - - // Extract attachment - // Documents.PDF.extractAttachments(); - - // Add attachment - // Documents.PDF.removeAttachment(); - - // Add watermark to the attachments - // Documents.PDF.addWatermarkToAttachments(); - - // Extract information of annotations in document - // Documents.PDF.extractAnnotationInformation(); - - // Extract information of artifacts in document - // Documents.PDF.extractArtifactInformation(); - - // Extract information of XObjects in document - // Documents.PDF.extractXObjectInformation(); - - // Get dimension - // Documents.PDF.getDimensions(); - - // Rasterize a PDF document - // Documents.PDF.rasterizePDFDocument(); - - // Remove annotation - // Documents.PDF.removeAnnotation(); - - // Remove artifact - // Documents.PDF.removeArtifact(); - - // Remove watermark - // Documents.PDF.removeWatermark(); - - // Remove XObject - // Documents.PDF.removeXObject(); - - // Add watermark with page margin type - // Documents.PDF.addWatermarkWithPageMrginType(); - - // Working with Word Documents - // Add image watermark - // Documents.Word.addImageWatermark(); - - // Add watermark to images inside document - // Documents.Word.addWatermarkToImages(); - - // Add watermark to the shapes inside document - // Documents.Word.addWatermarkToImageShapes(); - - // Add watermark to a section - // Documents.Word.addWatermarkToSection(); - - // Add image watermark with effects - // Documents.Word.addWatermarkWithImageEffects(); - - // Add text watermark with effects - // Documents.Word.addWatermarkWithTextEffects(); - - // Add watermark with words shape settings - // Documents.Word.addWatermarkWithWordsShapeSettings(); - - // Add watermark in header/footer - // Documents.Word.findWatermarkInHeaderFooter(); - - // Get section properties - // Documents.Word.getSectionProperties(); - - // Get information of shapes inside a document - // Documents.Word.getShapesInformation(); - - // Link header footer in section - // Documents.Word.linkHeaderFooterInSection(); - - // Link all header/footer in sections - // Documents.Word.linkAllHeaderFooterInSection(); - - // Remove shape - // Documents.Word.removeShape(); - - // Remove watermark from section - // Documents.Word.removeWatermarkFromSection(); - - // Working with Excel Documents - // Add modern word art watermark - // Documents.Excel.addModernWordArdWatermark(); - - // Add watermark - // Documents.Excel.addWatermark(); - - // Add watermark as background - // Documents.Excel.addWatermarkAsBackground(); - - // Add watermark as background with relative size and position - // Documents.Excel.addWatermarkAsBackgroundWithRelativeSizeAndPosition(); - - // Add watermark to header/footer - // Documents.Excel.addWatermarkIntoHeaderFooter(); - - // Add watermark to background images - // Documents.Excel.addWatermarkToBackgroundImages(); - - // Add watermark to images inside a document - // Documents.Excel.addWatermarkToImages(); - - // Add watermark to shapes - // Documents.Excel.addWatermarkToImageShapes(); - - // Add watermark to images inside a section - // Documents.Excel.addWatermarkToImagesInHeaderFooter(); - - // Add watermark using cells shape settings - // Documents.Excel.addWatermarkUsingCellsShapeSettings(); - - // Add watermark with image effects - // Documents.Excel.addWatermarkWithImageEffects(); - - // Add watermark with text effects - // Documents.Excel.addWatermarkWithTextEffects(); - - // Clear header/footer - // Documents.Excel.clearHeaderFooter(); - - // Clear section of header/footer - // Documents.Excel.clearSectionOfHeaderFooter(); - - // Get content area dimensions - // Documents.Excel.getContentAreaDimensions(); - - // Get header/footer information - // Documents.Excel.getHeaderFooterInformation(); - - // Get information of worksheet backgrounds - // Documents.Excel.getInformationOfWorksheetBackgrounds(); - - // Get information of shapes inside a document - // Documents.Excel.getShapesInformation(); - - // Remove a shape - // Documents.Excel.removeShape(); - - // Remove watermark - // Documents.Excel.removeWatermark(); - - // Remove worksheet background - // Documents.Excel.removeWorksheetBackground(); - - // Extract all attachments from Excel document - // Documents.Excel.extractAllAttachments(); - - // Add an attachment to a PDF document - // Documents.Excel.addAttachment(); - - // Add a linked file to an Excel document - // Documents.Excel.addLinkedAttachment(); - - // Remove particular attachments from an Excel document - // Documents.Excel.removeAttachment(); - - // Add watermark to all attached files of supported types - // Documents.Excel.addWatermarkToAttachment(); - - // Add watermark to all attached files of supported types - // Documents.Excel.searchImageInAttachment(); - - // Working with PowerPoint Documents - // Add watermark - // Documents.PowerPoint.addWatermark(); - - // Add watermark to all background images - // Documents.PowerPoint.addWatermarkToAllBackgroundImages(); - - // Add watermark to all slide types - // Documents.PowerPoint.addWatermarkToAllSlideTypes(); - - // Add watermark to images inside document - // Documents.PowerPoint.addWatermarkToImages(); - - // Add watermark to the shapes - // Documents.PowerPoint.addWatermarkToImageShapes(); - - // Add watermark with image effects - // Documents.PowerPoint.addWatermarkWithImageEffects(); - - // Add watermark with slides shape settings - // Documents.PowerPoint.addWatermarkWithSlidesShapeSettings(); - - // Add watermark with text effects - // Documents.PowerPoint.addWatermarkWithTextEffects(); - - // Get dimensions of slide - // Documents.PowerPoint.getDimensionsOfSlide(); - - // Get information of the slide background - // Documents.PowerPoint.getInformationOfSlideBackgrounds(); - - // Get information of the shapes inside a document - // Documents.PowerPoint.getShapesInformation(); - - // Remove background - // Documents.PowerPoint.removeBackground(); - - // Remove shape - // Documents.PowerPoint.removeShape(); - - // Remove watermark - // Documents.PowerPoint.removeWatermark(); - - // Replace hyperlinks that are activated on mouse over - // Documents.PowerPoint.replaceHyperlinks(); - - // Working with Visio Documents - - // =================================== issue====================== - // Add watermark to a particular page - // Documents.Visio.addWatermarkToParticularPage(); - // ======================================= issue ====================== - - // Add watermark to all pages of a particular type - // Documents.Visio.addWatermarkToAllPagesOfParticularType(); - - // Add watermark to all images in a particular page - // Documents.Visio.addWatermarkToImages(); - - // Add watermark to a separate newly created background pages - // Documents.Visio.addWatermarkToSeparateBackgroundPage(); - - // Get information about headers&footers - // Documents.Visio.getHeaderFooterInformation(); - - // Get information about pages - // Documents.Visio.getPagesInformation(); - - // Get information about shapes - // Documents.Visio.getShapesInformation(); - - // Lock watermark shape to prevent editing - // Documents.Visio.lockWatermarkShape(); - - // Remove watermark - // Documents.Visio.removeWatermark(); - - // Remove or replace a particular header&footer - // Documents.Visio.removeOrReplaceHeaderFooter(); - - // Remove a particular shape - // Documents.Visio.removeShape(); - - // Working with Emails - // Load an email message - // Documents.Email.loadEmailMessage(); - - // Extract all attachments from an email message - // Documents.Email.extractAllAttachments(); - - // Remove particular attachments from an email message - // Documents.Email.removeAttachment(); - - // Add watermark to all attached files of supported types - // Documents.Email.addWatermarkToAllAttachment(); - - // Add an attachment to an email message - // Documents.Email.addAttachment(); - - // Remove all embedded jpeg images from an email message - // Documents.Email.removeEmbeddedImages(); - - // Embed image into email message body - // Documents.Email.addEmbeddedImage(); - - // Working with images - // Images.addWatermarkToMultiframeImageDocument(); - - // Replace text for particular XObject - // Documents.PDF.replaceTextForParticularXObject(); - - // Replace text for particular artifact - // Documents.PDF.replaceTextForParticularArtifact(); - - // Replace text for particular annotation - // Documents.PDF.replaceTextForParticularAnnotation(); - - // Replace text for particular XObject with formatting - // Documents.PDF.replaceTextForParticularXObjectWithFormatting(); - - // Replace text for particular artifact with formatting - // Documents.PDF.replaceTextForParticularArtifactWithFormatting(); - - // Replace text for particular annotation with formatting - // Documents.PDF.replaceTextForParticularAnnotationWithFormatting(); - - // Replace image for particular XObject - // Documents.PDF.replaceImageForParticularXObject(); - - // Replace image for particular artifact - // Documents.PDF.replaceImageForParticularArtifact(); - - // Replaces image for particular annotation - // Documents.PDF.replaceImageForParticularAnnotation(); - - System.out.println("Completed..."); - } -} diff --git a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/WatermarkOperations.java b/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/WatermarkOperations.java deleted file mode 100644 index c8f7542..0000000 --- a/Examples/GroupDocs.Watermark-for-Java/src/main/java/com/groupdocs/watermark/examples/WatermarkOperations.java +++ /dev/null @@ -1,733 +0,0 @@ -package com.groupdocs.watermark.examples; - -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.regex.Pattern; - -import com.groupdocs.watermark.CellsSearchableObjects; -import com.groupdocs.watermark.Color; -import com.groupdocs.watermark.ColorRange; -import com.groupdocs.watermark.DiagramSearchableObjects; -import com.groupdocs.watermark.Document; -import com.groupdocs.watermark.Font; -import com.groupdocs.watermark.FontStyle; -import com.groupdocs.watermark.HorizontalAlignment; -import com.groupdocs.watermark.HyperlinkPossibleWatermark; -import com.groupdocs.watermark.ImageDctHashSearchCriteria; -import com.groupdocs.watermark.ImageSearchCriteria; -import com.groupdocs.watermark.ImageWatermark; -import com.groupdocs.watermark.MarginType; -import com.groupdocs.watermark.PdfSearchableObjects; -import com.groupdocs.watermark.PossibleWatermark; -import com.groupdocs.watermark.PossibleWatermarkCollection; -import com.groupdocs.watermark.RotateAngleSearchCriteria; -import com.groupdocs.watermark.SearchCriteria; -import com.groupdocs.watermark.SearchableObjects; -import com.groupdocs.watermark.SizingType; -import com.groupdocs.watermark.SlidesDocument; -import com.groupdocs.watermark.SlidesSearchableObjects; -import com.groupdocs.watermark.TextAlignment; -import com.groupdocs.watermark.TextFormattingSearchCriteria; -import com.groupdocs.watermark.TextSearchCriteria; -import com.groupdocs.watermark.TextWatermark; -import com.groupdocs.watermark.VerticalAlignment; -import com.groupdocs.watermark.WatermarkableImageCollection; -import com.groupdocs.watermark.WordsSearchableObjects; - -public class WatermarkOperations { - // initialize file paths - // ExStart:SourceDocumentFilesPath - private final static String PNG_FILE_PATH = "sample.png"; - private final static String DOC_FILE_PATH = "sample.docx"; - private final static String PPT_FILE_PATH = "sample.pptx"; - private final static String XLS_FILE_PATH = "sample.xlsx"; - private final static String PDF_FILE_PATH = "sample.pdf"; - // ExEnd:SourceDocumentFilesPath - - public static void addTextWatermark() { - try { - // ExStart:AddTextWatermark - Document doc = Document.load(Common.mapSourceFilePath(PNG_FILE_PATH)); - - Font font = new Font("Arial", 19, FontStyle.Bold | FontStyle.Italic); - TextWatermark watermark = new TextWatermark("Test watermark", font); - - // Set watermark properties - watermark.setForegroundColor(Color.getRed()); - watermark.setBackgroundColor(Color.getBlue()); - watermark.setTextAlignment(TextAlignment.Right); - watermark.setOpacity(0.5); - - doc.addWatermark(watermark); - - doc.save(Common.mapOutputFilePath(PNG_FILE_PATH)); - - doc.close(); - // ExEnd:AddTextWatermark - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addImageWatermark() { - try { - // ExStart:AddImageWatermark - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - // Use path to an image as constructor parameter - ImageWatermark watermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - - // Add watermark to the document - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - - watermark.close(); - doc.close(); - // ExEnd:AddImageWatermark - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addImageWatermarkUsingStream() { - try { - // ExStart:AddImageWatermarkUsingStream - Document doc = Document.load(Common.mapSourceFilePath(PPT_FILE_PATH)); - FileInputStream watermarkInputStream = new FileInputStream(Common.WATERMARK_IMAGE_PATH); - - // Use stream containing an image as constructor parameter - ImageWatermark watermark = new ImageWatermark(watermarkInputStream); - - // Add watermark to the document - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(PPT_FILE_PATH)); - - watermark.close(); - watermarkInputStream.close(); - doc.close(); - // ExEnd:AddImageWatermarkUsingStream - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addWatermarkToAbsolutePosition() { - try { - // ExStart:AddWatermarkToAbsolutePosition - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - Font font = new Font("Times New Roman", 8); - TextWatermark watermark = new TextWatermark("Test watermark", font); - - // Set watermark coordinates - watermark.setX(30); - watermark.setY(40); - - // Set watermark size - watermark.setWidth(100); - watermark.setHeight(40); - - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToAbsolutePosition - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addWatermarkToRelativePosition() { - try { - // ExStart:AddWatermarkToRelativePosition - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - Font font = new Font("Calibri", 42); - TextWatermark watermark = new TextWatermark("Test watermark", font); - watermark.setHorizontalAlignment(HorizontalAlignment.Right); - watermark.setVerticalAlignment(VerticalAlignment.Bottom); - - watermark.getMargins().setRight(0.1); - watermark.getMargins().setBottom(0.2); - - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkToRelativePosition - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addWatermarkWithAbsoluteMargin() { - try { - // ExStart:AddWatermarkWithMarginType - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - Font font = new Font("Calibri", 12); - TextWatermark watermark = new TextWatermark("Test watermark", font); - watermark.setHorizontalAlignment(HorizontalAlignment.Right); - watermark.setVerticalAlignment(VerticalAlignment.Bottom); - - // Set absolute margins. Values are measured in document units. - watermark.getMargins().setRight(10); - watermark.getMargins().setBottom(5); - - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithMarginType - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addWatermarkWithRelativeMargin() { - try { - // ExStart:AddWatermarkWithMarginType - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - Font font = new Font("Calibri", 12); - TextWatermark watermark = new TextWatermark("Test watermark", font); - watermark.setHorizontalAlignment(HorizontalAlignment.Right); - watermark.setVerticalAlignment(VerticalAlignment.Bottom); - - // Set relative margins. Margin value will be interpreted as a - // portion of appropriate parent dimension. - // If this type is chosen, margin value must be between 0.0 and 1.0. - watermark.getMargins().setMarginType(MarginType.RelativeToParentDimensions); - watermark.getMargins().setRight(0.1); - watermark.getMargins().setBottom(0.2); - - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithMarginType - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addWatermarkWithSizeType() { - try { - // ExStart:AddWatermarkWithSizeType - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - Font font = new Font("Times New Roman", 12); - TextWatermark watermark = new TextWatermark("Test watermark", font); - - // Set sizing type - watermark.setSizingType(SizingType.ScaleToParentDimensions); - - // Set watermark scale - watermark.setScaleFactor(0.5); - - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithSizeType - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addWatermarkWithParentMargin() { - try { - // ExStart:AddWatermarkWithParentMargin - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - - TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 42)); - watermark.setHorizontalAlignment(HorizontalAlignment.Right); - watermark.setVerticalAlignment(VerticalAlignment.Top); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(1); - watermark.setRotateAngle(45); - watermark.setForegroundColor(Color.getRed()); - watermark.setBackgroundColor(Color.getAqua()); - - // Add watermark considering parent margins - watermark.setConsiderParentMargins(true); - - doc.addWatermark(watermark); - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - doc.close(); - // ExEnd:AddWatermarkWithParentMargin - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addTextWatermark(int RotationAngle) { - try { - // ExStart:AddTextWatermarkWithRotationAngle - Document doc = Document.load(Common.mapSourceFilePath(XLS_FILE_PATH)); - - Font font = new Font("Calibri", 8); - TextWatermark watermark = new TextWatermark("Test watermark", font); - watermark.setHorizontalAlignment(HorizontalAlignment.Right); - watermark.setVerticalAlignment(VerticalAlignment.Top); - watermark.setSizingType(SizingType.ScaleToParentDimensions); - watermark.setScaleFactor(0.5); - - // Set rotation angle - watermark.setRotateAngle(RotationAngle); - - doc.addWatermark(watermark); - - doc.save(Common.mapOutputFilePath(XLS_FILE_PATH)); - doc.close(); - // ExEnd:AddTextWatermarkWithRotationAngle - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void addWatermarkToImagesInsideDocument() { - try { - // ExStart:AddWatermarkToImagesInsideDocument - Document doc = Document.load(Common.mapSourceFilePath(PPT_FILE_PATH)); - // Initialize text watermark - TextWatermark textWatermark = new TextWatermark("Protected image", new Font("Arial", 8)); - textWatermark.setHorizontalAlignment(HorizontalAlignment.Center); - textWatermark.setVerticalAlignment(VerticalAlignment.Center); - textWatermark.setRotateAngle(45); - textWatermark.setSizingType(SizingType.ScaleToParentDimensions); - textWatermark.setScaleFactor(1); - - // Initialize image watermark - ImageWatermark imageWatermark = new ImageWatermark(Common.WATERMARK_IMAGE_PATH); - imageWatermark.setHorizontalAlignment(HorizontalAlignment.Center); - imageWatermark.setVerticalAlignment(VerticalAlignment.Center); - imageWatermark.setRotateAngle(-45); - imageWatermark.setSizingType(SizingType.ScaleToParentDimensions); - imageWatermark.setScaleFactor(1); - - // Find all images in a document - WatermarkableImageCollection images = doc.findImages(); - - for (int i = 0; i < images.getCount(); i++) { - if (images.get_Item(i).getWidth() > 100 && images.get_Item(i).getHeight() > 100) { - if (i % 2 == 0) { - images.get_Item(i).addWatermark(textWatermark); - } else { - images.get_Item(i).addWatermark(imageWatermark); - } - } - } - doc.save(Common.mapOutputFilePath(PPT_FILE_PATH)); - - imageWatermark.close(); - doc.close(); - // ExEnd:AddWatermarkToImagesInsideDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - public static void searchWatermark() { - try { - // ExStart:SearchWatermark - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(); - for (PossibleWatermark possibleWatermark : possibleWatermarks) { - if (possibleWatermark.getImageData() != null) { - System.out.println(possibleWatermark.getImageData().length); - } - System.out.println(possibleWatermark.getText()); - System.out.println(possibleWatermark.getX()); - System.out.println(possibleWatermark.getY()); - System.out.println(possibleWatermark.getRotateAngle()); - System.out.println(possibleWatermark.getWidth()); - System.out.println(possibleWatermark.getHeight()); - } - - doc.close(); - // ExEnd:SearchWatermark - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for watermark with a particular text - */ - public static void searchWatermark(String searchString) { - try { - // ExStart:SearchWatermarkWithSearchString - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - // Search by exact string - TextSearchCriteria textSearchCriteria = new TextSearchCriteria(searchString); - - // Find all possible watermarks containing some specific text - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(textSearchCriteria); - - // ... - - doc.close(); - // ExEnd:SearchWatermarkWithSearchString - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for watermark with a regular expression - */ - public static void searchWatermarkWithRegularExpression() { - try { - // ExStart:SearchWatermarkWithRegularExpression - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - Pattern pattern = Pattern.compile(" \\d{4}"); - - // Search by regular expression - TextSearchCriteria textSearchCriteria = new TextSearchCriteria(pattern); - - // Find possible watermarks using regular expression - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(textSearchCriteria); - - // ... - - doc.close(); - // ExEnd:SearchWatermarkWithRegularExpression - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for image watermark - */ - public static void searchImageWatermark() { - try { - // ExStart:SearchImageWatermark - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - // Initialize criteria with the image - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - - // Set maximum allowed difference between images - imageSearchCriteria.setMaxDifference(0.1); - - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(imageSearchCriteria); - - System.out.println(possibleWatermarks.get_Item(0).getHeight()); - // ... - - doc.close(); - // ExEnd:SearchImageWatermark - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for watermark with combination of different search criteria - */ - public static void searchWatermarkWithCombinedSearch() { - try { - // ExStart:SearchWatermarkWithCombinedSearch - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Common.WATERMARK_IMAGE_PATH); - imageSearchCriteria.setMaxDifference(0.9); - - TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Test watermark"); - - RotateAngleSearchCriteria rotateAngleSearchCriteria = new RotateAngleSearchCriteria(30, 60); - - SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria) - .and(rotateAngleSearchCriteria); - - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(combinedSearchCriteria); - - System.out.println(possibleWatermarks.getCount()); - // ... - - doc.close(); - // ExEnd:SearchWatermarkWithCombinedSearch - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches watermark with a prticular text formatting - */ - public static void searchWatermarkWithParticularTextFormatting() { - try { - // ExStart:SearchWatermarkWithParticularTextFormatting - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria(); - criteria.setForegroundColorRange(new ColorRange()); - criteria.getForegroundColorRange().setMinHue(-5); - criteria.getForegroundColorRange().setMaxHue(10); - criteria.getForegroundColorRange().setMinBrightness(0.01f); - criteria.getForegroundColorRange().setMaxBrightness(0.99f); - criteria.setBackgroundColorRange(new ColorRange()); - criteria.getBackgroundColorRange().setEmpty(true); - criteria.setFontName("Arial"); - criteria.setMinFontSize(19); - criteria.setMaxFontSize(42); - criteria.setFontBold(false); - - PossibleWatermarkCollection watermarks = doc.findWatermarks(criteria); - - // ... - - doc.close(); - // ExEnd:SearchWatermarkWithParticularTextFormatting - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Removes watermark - */ - public static void removeWatermark() { - try { - // ExStart:RemoveWatermark - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(); - - // Remove possible watermark at the specified index from the - // document. - possibleWatermarks.removeAt(0); - - // Remove specified possible watermark from the document. - // possibleWatermarks.remove(possibleWatermarks.get_Item(0)); - - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - - doc.close(); - // ExEnd:RemoveWatermark - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for watermark specifying which objects should be included in the - * search for all document instances - */ - public static void searchWatermarkInParticularObjects() { - try { - // ExStart:SearchWatermarkInParticularObjectsAllInstances - SearchableObjects searchableObjects = new SearchableObjects(); - searchableObjects.setWordsSearchableObjects( - WordsSearchableObjects.Hyperlinks | WordsSearchableObjects.Shapes | WordsSearchableObjects.Text); - searchableObjects.setCellsSearchableObjects(CellsSearchableObjects.HeadersFooters); - searchableObjects.setSlidesSearchableObjects( - SlidesSearchableObjects.SlidesBackgrounds | SlidesSearchableObjects.Shapes); - searchableObjects.setDiagramSearchableObjects(DiagramSearchableObjects.None); - searchableObjects.setPdfSearchableObjects(PdfSearchableObjects.All); - - Document.setDefaultSearchableObjects(searchableObjects); - - File folder = new File(Common.STORAGE_PATH.toString()); - File[] listOfFiles = folder.listFiles(); - for (File file : listOfFiles) { - if (file.isFile()) { - Document doc = Document.load(file.getAbsolutePath()); - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(); - - System.out.println(possibleWatermarks.getCount()); - // The code for working with found watermarks goes here. - - doc.close(); - } - } - // ExEnd:SearchWatermarkInParticularObjectsAllInstances - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for watermark specifying which objects should be included in the - * search for particular document instance - */ - public static void searchWatermarkInParticularObjectsForParticularDocument() { - try { - // ExStart:SearchWatermarkInParticularObjectsForParticularDocument - Document doc = Document.load(Common.mapSourceFilePath(PDF_FILE_PATH)); - - // Search for hyperlinks only. - doc.getSearchableObjects().setPdfSearchableObjects(PdfSearchableObjects.Hyperlinks); - PossibleWatermarkCollection possibleWatermarks = doc.findWatermarks(); - - System.out.println(possibleWatermarks.getCount()); - // The code for working with found watermarks goes here. - - doc.close(); - // ExEnd:SearchWatermarkInParticularObjectsForParticularDocument - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches and removes hyperlinks - */ - public static void removeHyperlinksWithParticularURL() { - try { - // ExStart:RemoveHyperlinksWithParticularURL_1 - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - - // Find watermark with particular text search criteria - PossibleWatermarkCollection watermarks = doc - .findWatermarks(new TextSearchCriteria(Pattern.compile("someurl\\.com"))); - for (int i = watermarks.getCount() - 1; i >= 0; i--) { - // Ensure that only hyperlinks will be removed - if (HyperlinkPossibleWatermark.class.isInstance(watermarks.get_Item(i))) { - // Output the full url of the hyperlink - System.out.println(watermarks.get_Item(i).getText()); - - // Remove hyperlink from the document - watermarks.removeAt(i); - } - } - - // Save document - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - - doc.close(); - // ExEnd:RemoveHyperlinksWithParticularURL_1 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Updates text in the found watermarks - */ - public static void editTextInFoundWatermarks() { - try { - // ExStart:EditTextInFoundWatermarks_18.3 - Document doc = Document.load(Common.mapSourceFilePath(PPT_FILE_PATH)); - - TextSearchCriteria searchCriteria = new TextSearchCriteria("test", false); - PossibleWatermarkCollection watermarks = doc.findWatermarks(searchCriteria); - for (PossibleWatermark watermark : watermarks) { - try { - watermark.setText("passed"); - } catch (Exception e) { - // Found entity may not support text editing - // Passed argument can have inappropriate value - // Process such cases here - } - } - - doc.save(Common.mapOutputFilePath(PPT_FILE_PATH)); - doc.close(); - // ExEnd:EditTextInFoundWatermarks_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Updates text with formatting in the found watermarks - */ - public static void editTextWithFormattingInFoundWatermarks() { - try { - // ExStart:EditTextWithFormattingInFoundWatermarks_18.3 - Document doc = Document.load(Common.mapSourceFilePath(DOC_FILE_PATH)); - - TextSearchCriteria searchCriteria = new TextSearchCriteria("test", false); - PossibleWatermarkCollection watermarks = doc.findWatermarks(searchCriteria); - for (PossibleWatermark watermark : watermarks) { - try { - watermark.getFormattedTextFragments().clear(); - watermark.getFormattedTextFragments().add("passed", new Font("Calibri", 19, FontStyle.Bold), - Color.getRed(), Color.getAqua()); - } catch (Exception e) { - // Found entity may not support text editing - // Passed argument can have inappropriate value - // Process such cases here - } - } - - doc.save(Common.mapOutputFilePath(DOC_FILE_PATH)); - doc.close(); - // ExEnd:EditTextWithFormattingInFoundWatermarks_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Replaces image in the found watermarks - */ - public static void replacesImageInFoundWatermarks() { - try { - // ExStart:ReplacesImageInFoundWatermarks_18.3 - String imagePath = Common.mapSourceFilePath(Common.WATERMARK_IMAGE_PATH); - File imageFile = new File(imagePath); - byte[] imageBytes = new byte[(int) imageFile.length()]; - InputStream imageInputStream = new FileInputStream(imageFile); - imageInputStream.read(imageBytes); - imageInputStream.close(); - - Document doc = Document.load(Common.mapSourceFilePath(PDF_FILE_PATH)); - - SearchCriteria searchCriteria = new ImageDctHashSearchCriteria("D:\\logo.bmp"); - PossibleWatermarkCollection watermarks = doc.findWatermarks(searchCriteria); - for (PossibleWatermark watermark : watermarks) { - try { - watermark.setImageData(imageBytes); - } catch (Exception e) { - // Found entity may not support image replacing - // Passed image can have inappropriate format - // Process such cases here - } - } - - doc.save(Common.mapOutputFilePath(PDF_FILE_PATH)); - doc.close(); - // ExEnd:ReplacesImageInFoundWatermarks_18.3 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } - - /** - * Searches for text watermark skipping unreadable characters - */ - public static void SearchTextWatermarkSkippingUnreadableCharacters() { - try { - // ExStart:SearchTextWatermarkSkippingUnreadableCharacters_18.8 - SlidesDocument doc = Document.load(SlidesDocument.class, Common.mapSourceFilePath(PPT_FILE_PATH)); - String watermarkText = "Company name"; - TextSearchCriteria criterion = new TextSearchCriteria(watermarkText); - - // Enabling skipping of unreadable characters - criterion.setSkipUnreadableCharacters(true); - - PossibleWatermarkCollection result = doc.findWatermarks(criterion); - - doc.close(); - // ExEnd:SearchTextWatermarkSkippingUnreadableCharacters_18.8 - } catch (Exception exp) { - System.out.println("Exception: " + exp.getMessage()); - exp.printStackTrace(); - } - } -} diff --git a/Examples/README.md b/Examples/README.md index ffca78c..fb8e7ec 100644 --- a/Examples/README.md +++ b/Examples/README.md @@ -5,7 +5,7 @@ This package contains the code examples of the features offered by [GroupDocs.Watermark for Java](https://products.groupdocs.com/watermark/java) as well as the sample input files used in the examples.

- +

@@ -25,6 +25,6 @@ You may find following resources helpful: Follow below steps if you have product license: -1. Open "Common.java" -2. Set "LICENSE_PATH" variable to your license file path -3. Call "applyLicenseFromFile" or "applyLicenseFromStream" method from "MainClass.java" to apply license +1. Open "Constants.java" +2. Set "LicenseFilePath" variable to your license file path +3. Call "run" method from "SetLicenseFromFile.java" or "SetLicenseFromStream.java" to apply license diff --git a/Examples/Resources/SampleFiles/Documents/diagram.vsdx b/Examples/Resources/SampleFiles/Documents/diagram.vsdx new file mode 100644 index 0000000..c5bf9ad Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/diagram.vsdx differ diff --git a/Examples/Resources/SampleFiles/Documents/document.docx b/Examples/Resources/SampleFiles/Documents/document.docx new file mode 100644 index 0000000..0b2e892 Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/document.docx differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/Sample_with_Annotation_watermark.pdf b/Examples/Resources/SampleFiles/Documents/document.pdf similarity index 92% rename from Examples/GroupDocs.Watermark-for-Java/Data/Source/Sample_with_Annotation_watermark.pdf rename to Examples/Resources/SampleFiles/Documents/document.pdf index 238ad41..e8ceac4 100644 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/Sample_with_Annotation_watermark.pdf and b/Examples/Resources/SampleFiles/Documents/document.pdf differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/samplewithattachments.msg b/Examples/Resources/SampleFiles/Documents/document.xlsx similarity index 51% rename from Examples/GroupDocs.Watermark-for-Java/Data/Source/samplewithattachments.msg rename to Examples/Resources/SampleFiles/Documents/document.xlsx index bc72cb7..6711e3a 100644 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/samplewithattachments.msg and b/Examples/Resources/SampleFiles/Documents/document.xlsx differ diff --git a/Examples/Resources/SampleFiles/Documents/image.png b/Examples/Resources/SampleFiles/Documents/image.png new file mode 100644 index 0000000..69e97e6 Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/image.png differ diff --git a/Examples/Resources/SampleFiles/Documents/image.tiff b/Examples/Resources/SampleFiles/Documents/image.tiff new file mode 100644 index 0000000..ea36525 Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/image.tiff differ diff --git a/Examples/Resources/SampleFiles/Documents/input.vsdx b/Examples/Resources/SampleFiles/Documents/input.vsdx new file mode 100644 index 0000000..a1f0964 Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/input.vsdx differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Attachments/sample.msg b/Examples/Resources/SampleFiles/Documents/message.msg similarity index 100% rename from Examples/GroupDocs.Watermark-for-Java/Data/Attachments/sample.msg rename to Examples/Resources/SampleFiles/Documents/message.msg diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.pptx b/Examples/Resources/SampleFiles/Documents/presentation.pptx similarity index 78% rename from Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.pptx rename to Examples/Resources/SampleFiles/Documents/presentation.pptx index abb766a..2f42e76 100644 Binary files a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.pptx and b/Examples/Resources/SampleFiles/Documents/presentation.pptx differ diff --git a/Examples/Resources/SampleFiles/Documents/protected-document.docx b/Examples/Resources/SampleFiles/Documents/protected-document.docx new file mode 100644 index 0000000..02fc44a Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/protected-document.docx differ diff --git a/Examples/Resources/SampleFiles/Documents/protected-spreadsheet.xlsx b/Examples/Resources/SampleFiles/Documents/protected-spreadsheet.xlsx new file mode 100644 index 0000000..dee910e Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/protected-spreadsheet.xlsx differ diff --git a/Examples/Resources/SampleFiles/Documents/sample.docx b/Examples/Resources/SampleFiles/Documents/sample.docx new file mode 100644 index 0000000..d27c9ab Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/sample.docx differ diff --git a/Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.msg b/Examples/Resources/SampleFiles/Documents/sample.msg similarity index 100% rename from Examples/GroupDocs.Watermark-for-Java/Data/Source/sample.msg rename to Examples/Resources/SampleFiles/Documents/sample.msg diff --git a/Examples/Resources/SampleFiles/Documents/source.docx b/Examples/Resources/SampleFiles/Documents/source.docx new file mode 100644 index 0000000..1a99474 Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/source.docx differ diff --git a/Examples/Resources/SampleFiles/Documents/spreadsheet.xlsx b/Examples/Resources/SampleFiles/Documents/spreadsheet.xlsx new file mode 100644 index 0000000..6ff4b8c Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/spreadsheet.xlsx differ diff --git a/Examples/Resources/SampleFiles/Documents/test.doc b/Examples/Resources/SampleFiles/Documents/test.doc new file mode 100644 index 0000000..c15ab7a Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/test.doc differ diff --git a/Examples/Resources/SampleFiles/Documents/test.docx b/Examples/Resources/SampleFiles/Documents/test.docx new file mode 100644 index 0000000..d27c9ab Binary files /dev/null and b/Examples/Resources/SampleFiles/Documents/test.docx differ diff --git a/Examples/Resources/SampleFiles/Images/attachment.png b/Examples/Resources/SampleFiles/Images/attachment.png new file mode 100644 index 0000000..e354d46 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/attachment.png differ diff --git a/Examples/Resources/SampleFiles/Images/background.png b/Examples/Resources/SampleFiles/Images/background.png new file mode 100644 index 0000000..e354d46 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/background.png differ diff --git a/Examples/Resources/SampleFiles/Images/document_preview.png b/Examples/Resources/SampleFiles/Images/document_preview.png new file mode 100644 index 0000000..60e10c8 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/document_preview.png differ diff --git a/Examples/Resources/SampleFiles/Images/image.png b/Examples/Resources/SampleFiles/Images/image.png new file mode 100644 index 0000000..e354d46 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/image.png differ diff --git a/Examples/Resources/SampleFiles/Images/large.png b/Examples/Resources/SampleFiles/Images/large.png new file mode 100644 index 0000000..e354d46 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/large.png differ diff --git a/Examples/Resources/SampleFiles/Images/logo.bmp b/Examples/Resources/SampleFiles/Images/logo.bmp new file mode 100644 index 0000000..bbb2c98 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/logo.bmp differ diff --git a/Examples/Resources/SampleFiles/Images/logo.gif b/Examples/Resources/SampleFiles/Images/logo.gif new file mode 100644 index 0000000..78c84cb Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/logo.gif differ diff --git a/Examples/Resources/SampleFiles/Images/logo.jpg b/Examples/Resources/SampleFiles/Images/logo.jpg new file mode 100644 index 0000000..09e69c0 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/logo.jpg differ diff --git a/Examples/Resources/SampleFiles/Images/logo.png b/Examples/Resources/SampleFiles/Images/logo.png new file mode 100644 index 0000000..e354d46 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/logo.png differ diff --git a/Examples/Resources/SampleFiles/Images/protect.jpg b/Examples/Resources/SampleFiles/Images/protect.jpg new file mode 100644 index 0000000..a49b862 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/protect.jpg differ diff --git a/Examples/Resources/SampleFiles/Images/sample.jpg b/Examples/Resources/SampleFiles/Images/sample.jpg new file mode 100644 index 0000000..c5491e8 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/sample.jpg differ diff --git a/Examples/Resources/SampleFiles/Images/test.png b/Examples/Resources/SampleFiles/Images/test.png new file mode 100644 index 0000000..e354d46 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/test.png differ diff --git a/Examples/Resources/SampleFiles/Images/watermark.jpg b/Examples/Resources/SampleFiles/Images/watermark.jpg new file mode 100644 index 0000000..1690090 Binary files /dev/null and b/Examples/Resources/SampleFiles/Images/watermark.jpg differ diff --git a/Examples/Resources/SampleFiles/Output/.gitkeep b/Examples/Resources/SampleFiles/Output/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Examples/GroupDocs.Watermark-for-Java/pom.xml b/Examples/pom.xml similarity index 78% rename from Examples/GroupDocs.Watermark-for-Java/pom.xml rename to Examples/pom.xml index 2c10e8f..0d7a64f 100644 --- a/Examples/GroupDocs.Watermark-for-Java/pom.xml +++ b/Examples/pom.xml @@ -26,23 +26,27 @@ azure-storage 4.3.0 - org.apache.commons commons-io 1.3.2 - - com.groupdocs - groupdocs-watermark - 18.8 - + + com.groupdocs + groupdocs-watermark + 24.11 + GroupDocsJavaAPI GroupDocs Java API - http://artifact.groupdocs.com/repo/ + https://releases.groupdocs.com/java/repo/ + + + maven-central + maven-central + https://repo1.maven.org/maven2 @@ -51,8 +55,8 @@ maven-compiler-plugin 3.5.1 - 1.8 - 1.8 + 1.7 + 1.7 diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/Constants.java b/Examples/src/main/java/com/groupdocs/watermark/examples/Constants.java new file mode 100644 index 0000000..0524e41 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/Constants.java @@ -0,0 +1,56 @@ +package com.groupdocs.watermark.examples; + +import java.io.File; + +public class Constants { + public static final String ResourcesPath = "Resources/"; + + public static final String LicenseFilePath = new File(ResourcesPath, "GroupDocs.Watermark.Java.lic").getPath(); + + public static final String DocumentsPath = new File(ResourcesPath, "SampleFiles/Documents").getPath(); + public static final String ImagesPath = new File(ResourcesPath, "SampleFiles/Images").getPath(); + public static final String OutputPath = new File(ResourcesPath, "SampleFiles/Output").getPath(); + public static final String InDiagramVsdx = new File(DocumentsPath, "diagram.vsdx").getPath(); + public static final String OutDiagramVsdx = new File(OutputPath, "diagram.vsdx").getPath(); + public static final String InDocumentDocx = new File(DocumentsPath, "document.docx").getPath(); + public static final String OutDocumentDocx = new File(OutputPath, "document.docx").getPath(); + public static final String InDocumentPdf = new File(DocumentsPath, "document.pdf").getPath(); + public static final String OutDocumentPdf = new File(OutputPath, "document.pdf").getPath(); + public static final String InDocumentXlsx = new File(DocumentsPath, "document.xlsx").getPath(); + public static final String OutDocumentXlsx = new File(OutputPath, "document.xlsx").getPath(); + public static final String InImagePng = new File(DocumentsPath, "image.png").getPath(); + public static final String OutImagePng = new File(OutputPath, "image.png").getPath(); + public static final String InImageTiff = new File(DocumentsPath, "image.tiff").getPath(); + public static final String OutImageTiff = new File(OutputPath, "image.tiff").getPath(); + public static final String InInputVsdx = new File(DocumentsPath, "input.vsdx").getPath(); + public static final String OutInputVsdx = new File(OutputPath, "input.vsdx").getPath(); + public static final String InMessageMsg = new File(DocumentsPath, "message.msg").getPath(); + public static final String OutMessageMsg = new File(OutputPath, "message.msg").getPath(); + public static final String InPresentationPptx = new File(DocumentsPath, "presentation.pptx").getPath(); + public static final String OutPresentationPptx = new File(OutputPath, "presentation.pptx").getPath(); + public static final String InProtectedDocumentDocx = new File(DocumentsPath, "protected-document.docx").getPath(); + public static final String OutProtectedDocumentDocx = new File(OutputPath, "protected-document.docx").getPath(); + public static final String InSampleDocx = new File(DocumentsPath, "sample.docx").getPath(); + public static final String InSampleMsg = new File(DocumentsPath, "sample.msg").getPath(); + public static final String InSourceDocx = new File(DocumentsPath, "source.docx").getPath(); + public static final String InSpreadsheetXlsx = new File(DocumentsPath, "spreadsheet.xlsx").getPath(); + public static final String OutSpreadsheetXlsx = new File(OutputPath, "spreadsheet.xlsx").getPath(); + public static final String InTestDoc = new File(DocumentsPath, "test.doc").getPath(); + public static final String OutTestDoc = new File(OutputPath, "test.doc").getPath(); + public static final String InTestDocx = new File(DocumentsPath, "test.docx").getPath(); + public static final String OutTestDocx = new File(OutputPath, "test.docx").getPath(); + + public static final String AttachmentPng = new File(ImagesPath, "attachment.png").getPath(); + public static final String BackgroundPng = new File(ImagesPath, "background.png").getPath(); + public static final String DocumentPreviewPng = new File(ImagesPath, "document_preview.png").getPath(); + public static final String ImagePng = new File(ImagesPath, "image.png").getPath(); + public static final String LargePng = new File(ImagesPath, "large.png").getPath(); + public static final String LogoBmp = new File(ImagesPath, "logo.bmp").getPath(); + public static final String LogoGif = new File(ImagesPath, "logo.gif").getPath(); + public static final String LogoJpg = new File(ImagesPath, "logo.jpg").getPath(); + public static final String LogoPng = new File(ImagesPath, "logo.png").getPath(); + public static final String ProtectJpg = new File(ImagesPath, "protect.jpg").getPath(); + public static final String SampleJpg = new File(ImagesPath, "sample.jpg").getPath(); + public static final String TestPng = new File(ImagesPath, "test.png").getPath(); + public static final String WatermarkJpg = new File(ImagesPath, "watermark.jpg").getPath(); +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/MainClass.java b/Examples/src/main/java/com/groupdocs/watermark/examples/MainClass.java new file mode 100644 index 0000000..b9fdf5f --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/MainClass.java @@ -0,0 +1,302 @@ +package com.groupdocs.watermark.examples; + +import com.groupdocs.watermark.examples.quick_start.*; +import com.groupdocs.watermark.examples.basic_usage.*; +import com.groupdocs.watermark.examples.advanced_usage.loading_documents.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_images.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_image_watermarks.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks.*; +import com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams.*; +import com.groupdocs.watermark.examples.advanced_usage.saving_documents.*; +import com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks.*; +import org.bouncycastle.util.test.Test; + +public class MainClass { + public static void main(String[] args) throws Throwable { + + System.out.println("Open MainClass.java.\n"); + System.out.println("In main() method uncomment the example that you want to run."); + System.out.println("====================================================="); + + // NOTE: Please uncomment the example you want to try out + + //region Quick Start + + //SetLicenseFromFile.run(); +// SetLicenseFromStream.run(); +// SetMeteredLicense.run(); + HelloWorld.run(); + + //endregion + + //region Basic Usage + +// GetSupportedFileFormats.run(); +// GetDocumentInfoForTheFileFromLocalDisk.run(); +// GetDocumentInfoForTheFileFromStream.run(); + +// AddATextWatermark.run(); +// AddAnImageWatermark.run(); + +// GenerateDocumentPreview.run(); + + //endregion + + //region Advanced Usage + + //region Loading Documents + +// LoadFromLocalDisk.run(); +// LoadFromStream.run(); +// LoadingDocumentOfSpecificFormat.run(); +// LoadPasswordProtectedDocument.run(); +// LoadPasswordProtectedWordProcessingDocument.run(); + + //endregion + + //region AddingTextWatermarks + +// AddTextWatermark.run(); +// AddWatermarkToAbsolutePosition.run(); +// AddWatermarkToRelativePosition.run(); +// AddWatermarkWithMarginType.run(); +// AddWatermarkWithSizeType.run(); +// AddTextWatermarkWithRotationAngle.run(); +// AddWatermarkWithParentMargin.run(); + + //endregion + + //region AddingImageWatermarks + +// AddImageWatermark.run(); +// AddImageWatermarkUsingStream.run(); + + //endregion + + //region AddWatermarksToDiagrams + +// DiagramAddWatermarkToAllPagesOfParticularType.run(); +// DiagramAddWatermarkToSeparateBackgroundPage.run(); +// DiagramAddWatermarkToParticularPage.run(); +// DiagramLockWatermarkShape.run(); + +// DiagramRemoveWatermark.run(); +// DiagramGetShapesInformation.run(); +// DiagramRemoveShape.run(); +// DiagramRemoveTextShapesWithParticularTextFormatting.run(); +// DiagramRemoveHyperlinks.run(); +// DiagramReplaceTextForParticularShapes.run(); +// DiagramReplaceTextWithFormatting.run(); +// DiagramReplaceShapeImage.run(); +// DiagramGetHeaderFooterInformation.run(); +// DiagramRemoveOrReplaceHeaderFooter.run(); + + //endregion + + //region AddWatermarksToEmailAttachments + +// EmailAddWatermarkToAllAttachments.run(); + +// EmailExtractAllAttachments.run(); +// EmailRemoveAttachment.run(); +// EmailAddAttachment.run(); + +// EmailUpdateBody.run(); +// EmailAddEmbeddedImage.run(); +// EmailRemoveEmbeddedImages.run(); +// EmailSearchTextInBody.run(); +// EmailListRecipients.run(); + + //endregion + + //region AddWatermarksToImages + +// AddWatermarkToImage.run(); +// AddWatermarkToImagesInsideDocument.run(); + + //endregion + + //region AddWatermarksToPdf + +// PdfAddWatermarks.run(); +// PdfAddWatermarkToImages.run(); +// PdfGetDimensions.run(); +// PdfAddWatermarkWithPageMarginType.run(); +// PdfAddWatermarkToAllAttachments.run(); + +// PdfAddArtifactWatermark.run(); +// PdfAddAnnotationWatermark.run(); +// PdfAddPrintOnlyAnnotationWatermark.run(); + +// PdfRasterizeDocument.run(); +// PdfRasterizePage.run(); + +// PdfRemoveWatermark.run(); +// PdfExtractXObjectInformation.run(); +// PdfRemoveXObject.run(); +// PdfRemoveXObjectWithParticularTextFormatting.run(); +// PdfAddWatermarkToXObjects.run(); +// PdfReplaceTextForParticularXObject.run(); +// PdfReplaceTextForParticularXObjectWithFormatting.run(); +// PdfReplaceImageForParticularXObject.run(); +// PdfExtractArtifactInformation.run(); +// PdfRemoveArtifact.run(); +// PdfRemoveArtifactsWithParticularTextFormatting.run(); +// PdfAddWatermarkToImageArtifacts.run(); +// PdfReplaceTextForParticularArtifact.run(); +// PdfReplaceTextForParticularArtifactWithFormatting.run(); +// PdfReplaceImageForParticularArtifact.run(); +// PdfExtractAnnotationInformation.run(); +// PdfRemoveAnnotation.run(); +// PdfRemoveAnnotationsWithParticularTextFormatting.run(); +// PdfAddWatermarkToAnnotationImages.run(); +// PdfReplaceTextForParticularAnnotation.run(); +// PdfReplaceTextForParticularAnnotationWithFormatting.run(); +// PdfReplaceImageForParticularAnnotation.run(); + +// PdfExtractAllAttachments.run(); +// PdfAddAttachment.run(); +// PdfRemoveAttachment.run(); +// PdfSearchImageInAttachment.run(); + + //endregion + + //region AddWatermarksToPresentations + +// PresentationAddWatermarkToSlide.run(); +// PresentationProtectWatermarkUsingUnreadableCharacters.run(); +// PresentationGetSlideDimensions.run(); +// PresentationAddWatermarkToSlideImages.run(); +// PresentationAddWatermarkToAllSlideTypes.run(); +// PresentationAddWatermarkWithSlidesShapeSettings.run(); +// PresentationAddWatermarkWithTextEffects.run(); +// PresentationAddWatermarkWithImageEffects.run(); + +// PresentationGetSlideBackgroundsInformation.run(); +// PresentationRemoveSlideBackground.run(); +// PresentationAddWatermarkToSlideBackgroundImages.run(); +// PresentationSetTiledSemitransparentBackground.run(); +// PresentationSetBackgroundImageForChart.run(); + + //endregion + + //region AddWatermarksToSpreadsheets + +// SpreadsheetAddWatermarkToWorksheet.run(); +// SpreadsheetGetContentAreaDimensions.run(); +// SpreadsheetAddWatermarkToWorksheetImages.run(); +// SpreadsheetAddModernWordArtWatermark.run(); +// SpreadsheetAddWatermarkUsingShapeSettings.run(); +// SpreadsheetAddWatermarkWithTextEffects.run(); +// SpreadsheetAddWatermarkWithImageEffects.run(); +// SpreadsheetAddWatermarkAsBackground.run(); +// SpreadsheetAddWatermarkAsBackgroundWithRelativeSizeAndPosition.run(); +// SpreadsheetAddTextWatermarkAsBackground.run(); +// SpreadsheetAddImageWatermarkIntoHeaderFooter.run(); +// SpreadsheetAddTextWatermarkIntoHeaderFooter.run(); + +// SpreadsheetGetInformationOfWorksheetBackgrounds.run(); +// SpreadsheetRemoveWorksheetBackground.run(); +// SpreadsheetAddWatermarkToBackgroundImages.run(); +// SpreadsheetSetBackgroundImageForChart.run(); + +// SpreadsheetGetHeaderFooterInformation.run(); +// SpreadsheetClearHeaderFooter.run(); +// SpreadsheetClearSectionOfHeaderFooter.run(); +// SpreadsheetAddWatermarkToImagesInHeaderFooter.run(); + +// SpreadsheetExtractAllAttachments.run(); +// SpreadsheetAddAttachment.run(); +// SpreadsheetAddLinkedAttachment.run(); +// SpreadsheetRemoveAttachment.run(); +// SpreadsheetAddWatermarkToAttachment.run(); +// SpreadsheetSearchImageInAttachment.run(); + +// SpreadsheetGetShapesInformation.run(); +// SpreadsheetRemoveShape.run(); +// SpreadsheetRemoveTextShapesWithParticularTextFormatting.run(); +// SpreadsheetRemoveHyperlinks.run(); +// SpreadsheetReplaceTextForParticularShapes.run(); +// SpreadsheetReplaceTextWithFormattingForParticularShapes.run(); +// SpreadsheetReplaceImageOfParticularShapes.run(); +// SpreadsheetSetBackgroundImageForParticularShapes.run(); +// SpreadsheetUpdateShapeProperties.run(); + + //endregion + + //region AddWatermarksToWordProcessing + +// WordProcessingAddWatermarkToSection.run(); +// WordProcessingGetSectionProperties.run(); +// WordProcessingAddWatermarkToSectionImages.run(); +// WordProcessingAddWatermarkToShapeImages.run(); +// WordProcessingAddWatermarkToParticularPage.run(); +// WordProcessingLinkHeaderFooterInSection.run(); +// WordProcessingLinkAllHeaderFooterInSection.run(); +// WordProcessingAddImageWatermarkToAllHeaders.run(); +// WordProcessingSetDifferentFirstPageHeaderFooter.run(); + +// WordProcessingAddLockedWatermarkToAllPages.run(); +// WordProcessingAddLockedWatermarkToParticularPages.run(); +// WordProcessingAddLockedWatermarkToSection.run(); + +// WordProcessingAddWatermarkWithShapeSettings.run(); +// WordProcessingAddWatermarkWithTextEffects.run(); +// WordProcessingAddWatermarkWithImageEffects.run(); + +// WordProcessingRemoveWatermarkFromSection.run(); +// WordProcessingFindWatermarkInHeaderFooter.run(); +// WordProcessingGetShapesInformation.run(); +// WordProcessingShapeTypeUsage.run(); +// WordProcessingRemoveShape.run(); +// WordProcessingRemoveShapesWithParticularTextFormatting.run(); +// WordProcessingRemoveHyperlinks.run(); +// WordProcessingReplaceTextForParticularShape.run(); +// WordProcessingReplaceShapeTextWithFormattedText.run(); +// WordProcessingReplaceShapeImage.run(); +// WordProcessingModifyShapeProperties.run(); + +// WordProcessingProtectDocument.run(); +// WordProcessingUnProtectDocument.run(); + + //endregion + + //region SavingDocuments + +// SaveDocumentToTheSpecifiedLocation.run(); +// SaveDocumentToTheSpecifiedStream.run(); + + //endregion + + //region SearchAndRemoveWatermarks + +// SearchWatermark.run(); +// SearchWatermarkWithSearchString.run(); +// SearchWatermarkWithRegularExpression.run(); +// SearchImageWatermark.run(); +// SearchWatermarkWithCombinedSearch.run(); +// SearchWatermarkWithParticularTextFormatting.run(); +// SearchWatermarkInParticularObjectsAllInstances.run(); +// SearchWatermarkInParticularObjectsForParticularDocument.run(); +// SearchTextWatermarkSkippingUnreadableCharacters.run(); + +// RemoveWatermark.run(); +// RemoveWatermarkWithParticularTextFormatting.run(); +// RemoveHyperlinksWithParticularUrl.run(); + +// ModifyTextInFoundWatermarks.run(); +// ModifyTextWithFormattingInFoundWatermarks.run(); +// ModifyImageInFoundWatermarks.run(); + + //endregion + + //endregion + + System.out.println("\nAll done."); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToAllPagesOfParticularType.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToAllPagesOfParticularType.java new file mode 100644 index 0000000..8eb3d5a --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToAllPagesOfParticularType.java @@ -0,0 +1,43 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramWatermarkPlacementType; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.options.DiagramShapeWatermarkOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class DiagramAddWatermarkToAllPagesOfParticularType { + /** + * This example shows how to add watermark to a particular type of the pages. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + // Initialize text watermark + TextWatermark textWatermark = new TextWatermark("Test watermark 1", new Font("Calibri", 19)); + + DiagramShapeWatermarkOptions textWatermarkOptions = new DiagramShapeWatermarkOptions(); + textWatermarkOptions.setPlacementType(DiagramWatermarkPlacementType.BackgroundPages); + + // Add text watermark to all background pages + watermarker.add(textWatermark, textWatermarkOptions); + + // Initialize image watermark + ImageWatermark imageWatermark = new ImageWatermark(Constants.LogoJpg); + + DiagramShapeWatermarkOptions imageWatermarkOptions = new DiagramShapeWatermarkOptions(); + imageWatermarkOptions.setPlacementType(DiagramWatermarkPlacementType.ForegroundPages); + + // Add image watermark to all foreground pages + watermarker.add(imageWatermark, imageWatermarkOptions); + + watermarker.save(Constants.OutDiagramVsdx); + imageWatermark.close(); + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToParticularPage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToParticularPage.java new file mode 100644 index 0000000..7fc73ca --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToParticularPage.java @@ -0,0 +1,41 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.options.DiagramPageWatermarkOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class DiagramAddWatermarkToParticularPage { + /** + * This example shows how to add watermark to a particular page of the document. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Calibri", 19)); + + DiagramPageWatermarkOptions textWatermarkOptions = new DiagramPageWatermarkOptions(); + textWatermarkOptions.setPageIndex(0); + + // Add text watermark to the first page + watermarker.add(textWatermark, textWatermarkOptions); + + ImageWatermark imageWatermark = new ImageWatermark(Constants.LogoJpg); + + DiagramPageWatermarkOptions imageWatermarkOptions = new DiagramPageWatermarkOptions(); + imageWatermarkOptions.setPageIndex(1); + + // Add image watermark to the second page + watermarker.add(imageWatermark, imageWatermarkOptions); + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + imageWatermark.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToSeparateBackgroundPage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToSeparateBackgroundPage.java new file mode 100644 index 0000000..24de8a6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramAddWatermarkToSeparateBackgroundPage.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramWatermarkPlacementType; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.options.DiagramShapeWatermarkOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class DiagramAddWatermarkToSeparateBackgroundPage { + /** + * This example shows how to place the watermark on separate newly created background pages. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + // Initialize watermark of any supported type + TextWatermark textWatermark = new TextWatermark("Test watermark 1", new Font("Calibri", 19)); + + DiagramShapeWatermarkOptions options = new DiagramShapeWatermarkOptions(); + options.setPlacementType(DiagramWatermarkPlacementType.SeparateBackgrounds); + + // Create separate background for each page where it is not set. Add watermark to it. + watermarker.add(textWatermark, options); + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramGetHeaderFooterInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramGetHeaderFooterInformation.java new file mode 100644 index 0000000..0948d85 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramGetHeaderFooterInformation.java @@ -0,0 +1,44 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; + +public class DiagramGetHeaderFooterInformation { + /** + * This example shows how to extract information about all the headers and footers in a Diagram document. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + + // Get header&footer font settings + System.out.println(content.getHeaderFooter().getFont().getFamilyName()); + System.out.println(content.getHeaderFooter().getFont().getSize()); + System.out.println(content.getHeaderFooter().getFont().getBold()); + System.out.println(content.getHeaderFooter().getFont().getItalic()); + System.out.println(content.getHeaderFooter().getFont().getUnderline()); + System.out.println(content.getHeaderFooter().getFont().getStrikeout()); + + // Get text contained in headers&footers + System.out.println(content.getHeaderFooter().getHeaderLeft()); + System.out.println(content.getHeaderFooter().getHeaderCenter()); + System.out.println(content.getHeaderFooter().getHeaderRight()); + System.out.println(content.getHeaderFooter().getFooterLeft()); + System.out.println(content.getHeaderFooter().getFooterCenter()); + System.out.println(content.getHeaderFooter().getFooterRight()); + + // Get text color + System.out.println(content.getHeaderFooter().getTextColor().toArgb()); + + // Get header&footer margins + System.out.println(content.getHeaderFooter().getFooterMargin()); + System.out.println(content.getHeaderFooter().getHeaderMargin()); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramGetShapesInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramGetShapesInformation.java new file mode 100644 index 0000000..004852a --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramGetShapesInformation.java @@ -0,0 +1,44 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.contents.DiagramPage; +import com.groupdocs.watermark.contents.DiagramShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; + +public class DiagramGetShapesInformation { + /** + * This example shows how to get information about all the shapes in a Diagram document. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + for (DiagramPage page : content.getPages()) + { + for (DiagramShape shape : page.getShapes()) + { + if (shape.getImage() != null) + { + System.out.println(shape.getImage().getWidth()); + System.out.println(shape.getImage().getHeight()); + System.out.println(shape.getImage().getBytes().length); + } + + System.out.println(shape.getName()); + System.out.println(shape.getX()); + System.out.println(shape.getY()); + System.out.println(shape.getWidth()); + System.out.println(shape.getHeight()); + System.out.println(shape.getRotateAngle()); + System.out.println(shape.getText()); + System.out.println(shape.getId()); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramLockWatermarkShape.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramLockWatermarkShape.java new file mode 100644 index 0000000..eeafa7e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramLockWatermarkShape.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.options.DiagramShapeWatermarkOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class DiagramLockWatermarkShape { + /** + * This example shows how to protect watermark from editing. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + + DiagramShapeWatermarkOptions options = new DiagramShapeWatermarkOptions(); + options.setLocked(true); + + // Editing of the shape in Visio is forbidden + watermarker.add(watermark, options); + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveHyperlinks.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveHyperlinks.java new file mode 100644 index 0000000..5a10f48 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveHyperlinks.java @@ -0,0 +1,32 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.contents.DiagramShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; + +public class DiagramRemoveHyperlinks { + /** + * This example shows how to remove hyperlink associated with a particular shape. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + DiagramShape shape = content.getPages().get_Item(0).getShapes().get_Item(0); + for (int i = shape.getHyperlinks().getCount() - 1; i >= 0; i--) + { + if (shape.getHyperlinks().get_Item(i).getAddress().contains("http://someurl.com")) + { + shape.getHyperlinks().removeAt(i); + } + } + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveOrReplaceHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveOrReplaceHeaderFooter.java new file mode 100644 index 0000000..43864d7 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveOrReplaceHeaderFooter.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.watermarks.Color; + +public class DiagramRemoveOrReplaceHeaderFooter { + /** + * This example shows how to remove and replace a particular header and footer in a Diagram document. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + + // Remove header + content.getHeaderFooter().setHeaderCenter(null); + + // Replace footer + content.getHeaderFooter().setFooterCenter("Footer center"); + content.getHeaderFooter().getFont().setSize(19); + content.getHeaderFooter().getFont().setFamilyName("Calibri"); + content.getHeaderFooter().setTextColor(Color.getRed()); + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveShape.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveShape.java new file mode 100644 index 0000000..b1751e6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveShape.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; + +public class DiagramRemoveShape { + /** + * This example shows how to remove a particular shape from a page. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: @"C:\Docs\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + + // Remove shape by index + content.getPages().get_Item(0).getShapes().removeAt(0); + + // Remove shape by reference + content.getPages().get_Item(0).getShapes().remove(content.getPages().get_Item(0).getShapes().get_Item(0)); + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveTextShapesWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveTextShapesWithParticularTextFormatting.java new file mode 100644 index 0000000..521091a --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveTextShapesWithParticularTextFormatting.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.contents.DiagramPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.search.FormattedTextFragment; +import com.groupdocs.watermark.watermarks.Color; + +public class DiagramRemoveTextShapesWithParticularTextFormatting { + /** + * This example shows how to find and remove the shapes with a particular text formatting. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + for (DiagramPage page : content.getPages()) + { + for (int i = page.getShapes().getCount() - 1; i >= 0; i--) + { + for (FormattedTextFragment fragment : page.getShapes().get_Item(i).getFormattedTextFragments()) + { + if (fragment.getForegroundColor().equals(Color.getRed()) && fragment.getFont().getFamilyName() == "Arial") + { + page.getShapes().removeAt(i); + break; + } + } + } + } + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveWatermark.java new file mode 100644 index 0000000..69b17b9 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramRemoveWatermark.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.ImageSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class DiagramRemoveWatermark { + /** + * This example shows how to remove watermark from a particular page. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + + // Initialize search criteria + ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.LogoPng); + TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name"); + + // Call FindWatermarks method for the first page + PossibleWatermarkCollection possibleWatermarks = content.getPages().get_Item(0).search(textSearchCriteria.or(imageSearchCriteria)); + + // Remove all found watermarks + possibleWatermarks.clear(); + + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceShapeImage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceShapeImage.java new file mode 100644 index 0000000..3ec28fe --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceShapeImage.java @@ -0,0 +1,43 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.contents.DiagramShape; +import com.groupdocs.watermark.contents.DiagramWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; + +public class DiagramReplaceShapeImage { + /** + * This example shows how to replace the image of particular shapes. + */ + public static void run() throws Exception { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + for (DiagramShape shape : content.getPages().get_Item(0).getShapes()) + { + if (shape.getImage() != null) + { + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageBytes); + imageInputStream.close(); + + shape.setImage(new DiagramWatermarkableImage(imageBytes)); + } + } + + // Save changes + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceTextForParticularShapes.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceTextForParticularShapes.java new file mode 100644 index 0000000..a22e924 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceTextForParticularShapes.java @@ -0,0 +1,32 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.contents.DiagramShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; + +public class DiagramReplaceTextForParticularShapes { + /** + * This example shows how to replace shapes' text. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: @"C:\Docs\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + for (DiagramShape shape : content.getPages().get_Item(0).getShapes()) + { + if (shape.getText() != null && shape.getText().contains(" Aspose 2016")) + { + shape.setText(" GroupDocs 2017"); + } + } + + // Save changes + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceTextWithFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceTextWithFormatting.java new file mode 100644 index 0000000..644866b --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_diagrams/DiagramReplaceTextWithFormatting.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_diagrams; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.DiagramContent; +import com.groupdocs.watermark.contents.DiagramShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.DiagramLoadOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class DiagramReplaceTextWithFormatting { + /** + * This example shows how to replace the text with a formatted text. + */ + public static void run() { + DiagramLoadOptions loadOptions = new DiagramLoadOptions(); + // Constants.InDiagramVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vsdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx, loadOptions); + + DiagramContent content = watermarker.getContent(DiagramContent.class); + for (DiagramShape shape : content.getPages().get_Item(0).getShapes()) + { + if (shape.getText() != null && shape.getText().contains(" Aspose 2016")) + { + shape.getFormattedTextFragments().clear(); + shape.getFormattedTextFragments().add(" GroupDocs 2017", new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + } + + // Save changes + watermarker.save(Constants.OutDiagramVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddAttachment.java new file mode 100644 index 0000000..55abc68 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddAttachment.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; + +public class EmailAddAttachment { + /** + * This example shows how to add attachments to the email messages. + */ + public static void run() throws Exception { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + + File attachmentFile = new File(Constants.InSampleMsg); + byte[] attachmentBytes = new byte[(int) attachmentFile.length()]; + InputStream attachmentInputStream = new FileInputStream(attachmentFile); + attachmentInputStream.read(attachmentBytes); + attachmentInputStream.close(); + + content.getAttachments().add(attachmentBytes, "sample.msg"); + + // Save changes + watermarker.save(Constants.OutMessageMsg); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddEmbeddedImage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddEmbeddedImage.java new file mode 100644 index 0000000..9e4be39 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddEmbeddedImage.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.contents.EmailEmbeddedObject; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; + +public class EmailAddEmbeddedImage { + /** + * This example shows how to embed images in the body of the email message. + */ + public static void run() throws Exception { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + + File imageFile = new File(Constants.SampleJpg); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageBytes); + imageInputStream.close(); + + content.getEmbeddedObjects().add(imageBytes, "sample.jpg"); + EmailEmbeddedObject embeddedObject = content.getEmbeddedObjects().get_Item(content.getEmbeddedObjects().getCount() - 1); + content.setHtmlBody("This is an embedded image: "); + watermarker.save(Constants.OutMessageMsg); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddWatermarkToAllAttachments.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddWatermarkToAllAttachments.java new file mode 100644 index 0000000..34cef2b --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailAddWatermarkToAllAttachments.java @@ -0,0 +1,48 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.FileType; +import com.groupdocs.watermark.common.IDocumentInfo; +import com.groupdocs.watermark.contents.EmailAttachment; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class EmailAddWatermarkToAllAttachments { + /** + * This example shows how to add watermark to all the attachments of supported types in an email message. + */ + public static void run() { + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + for (EmailAttachment attachment : content.getAttachments()) + { + // Check if the attached file is supported by GroupDocs.Watermark + IDocumentInfo info = attachment.getDocumentInfo(); + if (info.getFileType() != FileType.Unknown && !info.isEncrypted()) + { + // Load the attached document + Watermarker attachedWatermarker = attachment.createWatermarker(); + + // Add watermark + attachedWatermarker.add(watermark); + + // Save changes in the attached file + attachment.updateContent(attachedWatermarker); + + attachedWatermarker.close(); + } + } + + // Save changes + watermarker.save(Constants.OutMessageMsg); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailExtractAllAttachments.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailExtractAllAttachments.java new file mode 100644 index 0000000..0923611 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailExtractAllAttachments.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import java.io.FileOutputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.EmailAttachment; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; + +public class EmailExtractAllAttachments { + /** + * This example shows how to get the information about the attachments in an email message. + */ + public static void run() throws Exception { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + for (EmailAttachment attachment : content.getAttachments()) + { + System.out.println("Name: " + attachment.getName()); + System.out.println("File format: " + attachment.getDocumentInfo().getFileType()); + + FileOutputStream outputStream = new FileOutputStream(Constants.OutputPath + "\\" + attachment.getName()); + outputStream.write(attachment.getContent()); + outputStream.close(); + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailListRecipients.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailListRecipients.java new file mode 100644 index 0000000..4268c34 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailListRecipients.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.EmailAddress; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; + +public class EmailListRecipients { + /** + * This example shows how to list all the message recipients. + */ + public static void run() { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + + // List all direct recipients + for (EmailAddress address : content.getTo()) + { + System.out.println(address.getAddress()); + } + + // List all CC recipients + for (EmailAddress address : content.getCc()) + { + System.out.println(address.getAddress()); + } + + // List all BCC recipients + for (EmailAddress address : content.getBcc()) + { + System.out.println(address.getAddress()); + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailRemoveAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailRemoveAttachment.java new file mode 100644 index 0000000..3737cab --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailRemoveAttachment.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.FileType; +import com.groupdocs.watermark.contents.EmailAttachment; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; + +public class EmailRemoveAttachment { + /** + * This example shows how to remove any particular attachment from an email message. + */ + public static void run() { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + for (int i = content.getAttachments().getCount() - 1; i >= 0; i--) + { + EmailAttachment attachment = content.getAttachments().get_Item(i); + + // Remove all attached files with a particular name and format + if (attachment.getName().contains("sample") && attachment.getDocumentInfo().getFileType() == FileType.DOCX) + { + content.getAttachments().removeAt(i); + } + } + + // Save changes + watermarker.save(Constants.OutMessageMsg); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailRemoveEmbeddedImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailRemoveEmbeddedImages.java new file mode 100644 index 0000000..ad6ea81 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailRemoveEmbeddedImages.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.FileType; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; + +public class EmailRemoveEmbeddedImages { + /** + * This example shows how to remove the embedded images from the body of the email message. + */ + public static void run() { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + for (int i = content.getEmbeddedObjects().getCount() - 1; i >= 0; i--) + { + if (content.getEmbeddedObjects().get_Item(i).getDocumentInfo().getFileType() == FileType.JPEG) + { + // Remove reference to the image from html body + String pattern = "]*src=\"cid:" + content.getEmbeddedObjects().get_Item(i).getContentId() + "\"[^>]*>"; + content.setHtmlBody(content.getHtmlBody().replaceAll(pattern, "")); + + // Remove the image + content.getEmbeddedObjects().removeAt(i); + } + } + + watermarker.save(Constants.OutMessageMsg); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailSearchTextInBody.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailSearchTextInBody.java new file mode 100644 index 0000000..16fd097 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailSearchTextInBody.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; +import com.groupdocs.watermark.search.EmailSearchableObjects; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.SearchCriteria; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class EmailSearchTextInBody { + /** + * This example shows how to search for a text in the subject as well as in the body of the email message. + */ + public static void run() { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + SearchCriteria criteria = new TextSearchCriteria("test", false); + + // Specify search locations + watermarker.getSearchableObjects().setEmailSearchableObjects(EmailSearchableObjects.Subject | EmailSearchableObjects.HtmlBody | EmailSearchableObjects.PlainTextBody); + + // Note, search is performed only if you pass TextSearchCriteria instance to FindWatermarks method + PossibleWatermarkCollection watermarks = watermarker.search(criteria); + + // Remove found text fragments + watermarks.clear(); + + // Save changes + watermarker.save(Constants.OutMessageMsg); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailUpdateBody.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailUpdateBody.java new file mode 100644 index 0000000..128d983 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_email_attachments/EmailUpdateBody.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_email_attachments; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.EmailContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.EmailLoadOptions; + +public class EmailUpdateBody { + /** + * This example shows how to modify the body and subject of an email message. + */ + public static void run() { + EmailLoadOptions loadOptions = new EmailLoadOptions(); + // Constants.InMessageMsg is an absolute or relative path to your document. Ex: "C:\\Docs\\message.msg" + Watermarker watermarker = new Watermarker(Constants.InMessageMsg, loadOptions); + + EmailContent content = watermarker.getContent(EmailContent.class); + + // Set the plain text body + content.setBody("Test plain text body"); + + // Set the html body + content.setHtmlBody("Test html body"); + + // Set the email subject + content.setSubject("Test subject"); + + // Save changes + watermarker.save(Constants.OutMessageMsg); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_images/AddWatermarkToImage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_images/AddWatermarkToImage.java new file mode 100644 index 0000000..86ce198 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_images/AddWatermarkToImage.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_images; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.TiffImageLoadOptions; +import com.groupdocs.watermark.options.TiffImageWatermarkOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddWatermarkToImage { + /** + * This example shows how to add watermark to some particular frame(s). + */ + public static void run() { + // Constants.InImageTiff is an absolute or relative path to your document. Ex: "C:\\Docs\\image.tiff" + TiffImageLoadOptions loadOptions = new TiffImageLoadOptions(); + Watermarker watermarker = new Watermarker(Constants.InImageTiff, loadOptions); + + // Initialize text or image watermark + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + + // Add watermark to the first frame + TiffImageWatermarkOptions options = new TiffImageWatermarkOptions(); + options.setFrameIndex(0); + + watermarker.add(watermark, options); + watermarker.save(Constants.OutImageTiff); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_images/AddWatermarkToImagesInsideDocument.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_images/AddWatermarkToImagesInsideDocument.java new file mode 100644 index 0000000..af89dfa --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_images/AddWatermarkToImagesInsideDocument.java @@ -0,0 +1,62 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_images; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.WatermarkableImageCollection; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddWatermarkToImagesInsideDocument { + /** + * This example shows how to add watermark to images inside a document. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + // Initialize text watermark + TextWatermark textWatermark = new TextWatermark("Protected image", new Font("Arial", 8)); + textWatermark.setHorizontalAlignment(HorizontalAlignment.Center); + textWatermark.setVerticalAlignment(VerticalAlignment.Center); + textWatermark.setRotateAngle(45); + textWatermark.setSizingType(SizingType.ScaleToParentDimensions); + textWatermark.setScaleFactor(1); + + // Initialize image watermark + ImageWatermark imageWatermark = new ImageWatermark(Constants.ProtectJpg); + + imageWatermark.setHorizontalAlignment(HorizontalAlignment.Center); + imageWatermark.setVerticalAlignment(VerticalAlignment.Center); + imageWatermark.setRotateAngle(-45); + imageWatermark.setSizingType(SizingType.ScaleToParentDimensions); + imageWatermark.setScaleFactor(1); + + // Find all images in a document + WatermarkableImageCollection images = watermarker.getImages(); + + for (int i = 0; i < images.getCount(); i++) + { + if (images.get_Item(i).getWidth() > 100 && images.get_Item(i).getHeight() > 100) + { + if (i % 2 == 0) + { + images.get_Item(i).add(textWatermark); + } + else + { + images.get_Item(i).add(imageWatermark); + } + } + } + + imageWatermark.close(); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddAnnotationWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddAnnotationWatermark.java new file mode 100644 index 0000000..690c707 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddAnnotationWatermark.java @@ -0,0 +1,42 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfAnnotationWatermarkOptions; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddAnnotationWatermark { + /** + * This example shows how to add watermark annotation to a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfAnnotationWatermarkOptions options = new PdfAnnotationWatermarkOptions(); + + // Add text watermark + TextWatermark textWatermark = new TextWatermark("This is a annotation watermark", new Font("Arial", 8)); + textWatermark.setHorizontalAlignment(HorizontalAlignment.Left); + textWatermark.setVerticalAlignment(VerticalAlignment.Top); + watermarker.add(textWatermark, options); + + // Add image watermark + ImageWatermark imageWatermark = new ImageWatermark(Constants.ProtectJpg); + + imageWatermark.setHorizontalAlignment(HorizontalAlignment.Right); + imageWatermark.setVerticalAlignment(VerticalAlignment.Top); + watermarker.add(imageWatermark, options); + + watermarker.save(Constants.OutDocumentPdf); + + imageWatermark.close(); + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddArtifactWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddArtifactWatermark.java new file mode 100644 index 0000000..e6eb1ce --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddArtifactWatermark.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfArtifactWatermarkOptions; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddArtifactWatermark { + /** + * This example shows how to add an artifact watermark to a document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfArtifactWatermarkOptions options = new PdfArtifactWatermarkOptions(); + + // Add text watermark + TextWatermark textWatermark = new TextWatermark("This is an artifact watermark", new Font("Arial", 8)); + textWatermark.setHorizontalAlignment(HorizontalAlignment.Right); + watermarker.add(textWatermark, options); + + // Add image watermark + ImageWatermark imageWatermark = new ImageWatermark(Constants.LogoBmp); + + watermarker.add(imageWatermark, options); + + imageWatermark.close(); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddAttachment.java new file mode 100644 index 0000000..48c4117 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddAttachment.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfAddAttachment { + /** + * This example shows how to add attachments to the PDF document. + */ + public static void run() throws Exception { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + File file = new File(Constants.InSampleDocx); + byte[] attachmentBytes = new byte[(int) file.length()]; + InputStream inputStream = new FileInputStream(file); + inputStream.read(attachmentBytes); + inputStream.close(); + + // Add the attachment + pdfContent.getAttachments().add(attachmentBytes, "sample doc", "sample doc as attachment"); + + // Save changes + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddPrintOnlyAnnotationWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddPrintOnlyAnnotationWatermark.java new file mode 100644 index 0000000..9894604 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddPrintOnlyAnnotationWatermark.java @@ -0,0 +1,32 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfAnnotationWatermarkOptions; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddPrintOnlyAnnotationWatermark { + /** + * This example shows how to add print only annotation watermark to the document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + TextWatermark textWatermark = new TextWatermark("This is a print only test watermark. It won't appear in view mode.", new Font("Arial", 8)); + Boolean isPrintOnly = true; + + // Annotation will be printed, but not displayed in pdf viewing application + PdfAnnotationWatermarkOptions options = new PdfAnnotationWatermarkOptions(); + options.setPageIndex(0); + options.setPrintOnly(isPrintOnly); + watermarker.add(textWatermark, options); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToAllAttachments.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToAllAttachments.java new file mode 100644 index 0000000..b46c94d --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToAllAttachments.java @@ -0,0 +1,47 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.FileType; +import com.groupdocs.watermark.common.IDocumentInfo; +import com.groupdocs.watermark.contents.PdfAttachment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddWatermarkToAllAttachments { + /** + * This example shows how to add watermark to supported files in all attachments in a PDF document. + */ + public static void run() { + TextWatermark watermark = new TextWatermark("This is WaterMark on Attachment", new Font("Arial", 19)); + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfAttachment attachment : pdfContent.getAttachments()) + { + // Check if the attached file is supported by GroupDocs.Watermark + IDocumentInfo info = attachment.getDocumentInfo(); + if (info.getFileType() != FileType.Unknown && !info.isEncrypted()) + { + // Load the attached document + Watermarker attachedWatermarker = attachment.createWatermarker(); + + // Add watermark + attachedWatermarker.add(watermark); + + // Save changes in the attached file + attachment.updateContent(attachedWatermarker); + + attachedWatermarker.close(); + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToAnnotationImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToAnnotationImages.java new file mode 100644 index 0000000..8dac920 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToAnnotationImages.java @@ -0,0 +1,50 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PdfAnnotation; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddWatermarkToAnnotationImages { + /** + * This example shows how to add a watermark to image annotations in PDF documents. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + for (PdfPage page : pdfContent.getPages()) + { + for (PdfAnnotation annotation : page.getAnnotations()) + { + if (annotation.getImage() != null) + { + // Add watermark to the image + annotation.getImage().add(watermark); + } + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToImageArtifacts.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToImageArtifacts.java new file mode 100644 index 0000000..bca1310 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToImageArtifacts.java @@ -0,0 +1,50 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PdfArtifact; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddWatermarkToImageArtifacts { + /** + * This example shows how to add watermark to all image artifacts. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + for (PdfPage page : pdfContent.getPages()) + { + for (PdfArtifact artifact : page.getArtifacts()) + { + if (artifact.getImage() != null) + { + // Add watermark to the image + artifact.getImage().add(watermark); + } + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToImages.java new file mode 100644 index 0000000..4890956 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToImages.java @@ -0,0 +1,47 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.WatermarkableImage; +import com.groupdocs.watermark.contents.WatermarkableImageCollection; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddWatermarkToImages { + /** + * This example shows how to add watermark to the images inside a particular page of the PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Get all images from the first page + WatermarkableImageCollection images = pdfContent.getPages().get_Item(0).findImages(); + + // Add watermark to all found images + for (WatermarkableImage image : images) + { + image.add(watermark); + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToXObjects.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToXObjects.java new file mode 100644 index 0000000..2341501 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkToXObjects.java @@ -0,0 +1,50 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.contents.PdfXObject; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddWatermarkToXObjects { + /** + * This example shows how to add watermark to all image XObjects in a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + for (PdfPage page : pdfContent.getPages()) + { + for (PdfXObject xObject : page.getXObjects()) + { + if (xObject.getImage() != null) + { + // Add watermark to the image + xObject.getImage().add(watermark); + } + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkWithPageMarginType.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkWithPageMarginType.java new file mode 100644 index 0000000..bf188be --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarkWithPageMarginType.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPageMarginType; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddWatermarkWithPageMarginType { + /** + * This example shows how to get watermark aligned to bleed box. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 42)); + watermark.setHorizontalAlignment(HorizontalAlignment.Right); + watermark.setVerticalAlignment(VerticalAlignment.Top); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + pdfContent.setPageMarginType(PdfPageMarginType.BleedBox); + watermark.setConsiderParentMargins(true); + + watermarker.add(watermark); + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarks.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarks.java new file mode 100644 index 0000000..4834d72 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfAddWatermarks.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfArtifactWatermarkOptions; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfAddWatermarks { + /** + * This example shows how to add watermark to a particular page of a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + // Add text watermark to the first page + TextWatermark textWatermark = new TextWatermark("This is a test watermark", new Font("Arial", 8)); + PdfArtifactWatermarkOptions textWatermarkOptions = new PdfArtifactWatermarkOptions(); + textWatermarkOptions.setPageIndex(0); + + watermarker.add(textWatermark, textWatermarkOptions); + + // Add image watermark to the second page + ImageWatermark imageWatermark = new ImageWatermark(Constants.ProtectJpg); + + PdfArtifactWatermarkOptions imageWatermarkOptions = new PdfArtifactWatermarkOptions(); + imageWatermarkOptions.setPageIndex(1); + watermarker.add(imageWatermark, imageWatermarkOptions); + + imageWatermark.close(); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractAllAttachments.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractAllAttachments.java new file mode 100644 index 0000000..f00536c --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractAllAttachments.java @@ -0,0 +1,35 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import java.io.FileOutputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfAttachment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfExtractAllAttachments { + /** + * This example shows how to extract attachments in PDF document. + */ + public static void run() throws Exception { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfAttachment attachment : pdfContent.getAttachments()) + { + System.out.println("Name: " + attachment.getName()); + System.out.println("Description: " + attachment.getDescription()); + System.out.println("File type: " + attachment.getDocumentInfo().getFileType()); + + // Save the attached file on disk + FileOutputStream outputStream = new FileOutputStream(Constants.OutputPath + "\\" + attachment.getName()); + outputStream.write(attachment.getContent()); + outputStream.close(); + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractAnnotationInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractAnnotationInformation.java new file mode 100644 index 0000000..3f3554d --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractAnnotationInformation.java @@ -0,0 +1,43 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfAnnotation; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfExtractAnnotationInformation { + /** + * This example shows how to extract information about all the annotations in a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfPage page : pdfContent.getPages()) + { + for (PdfAnnotation annotation : page.getAnnotations()) + { + System.out.println(annotation.getAnnotationType()); + if (annotation.getImage() != null) + { + System.out.println(annotation.getImage().getWidth()); + System.out.println(annotation.getImage().getHeight()); + System.out.println(annotation.getImage().getBytes().length); + } + + System.out.println(annotation.getText()); + System.out.println(annotation.getX()); + System.out.println(annotation.getY()); + System.out.println(annotation.getWidth()); + System.out.println(annotation.getHeight()); + System.out.println(annotation.getRotateAngle()); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractArtifactInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractArtifactInformation.java new file mode 100644 index 0000000..656f7b8 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractArtifactInformation.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfArtifact; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfExtractArtifactInformation { + /** + * This example shows how to extract the information about the artifacts in a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfPage page : pdfContent.getPages()) + { + for (PdfArtifact artifact : page.getArtifacts()) + { + System.out.println(artifact.getArtifactType()); + System.out.println(artifact.getArtifactSubtype()); + if (artifact.getImage() != null) + { + System.out.println(artifact.getImage().getWidth()); + System.out.println(artifact.getImage().getHeight()); + System.out.println(artifact.getImage().getBytes().length); + } + + System.out.println(artifact.getText()); + System.out.println(artifact.getOpacity()); + System.out.println(artifact.getX()); + System.out.println(artifact.getY()); + System.out.println(artifact.getWidth()); + System.out.println(artifact.getHeight()); + System.out.println(artifact.getRotateAngle()); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractXObjectInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractXObjectInformation.java new file mode 100644 index 0000000..bd055b8 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfExtractXObjectInformation.java @@ -0,0 +1,42 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.contents.PdfXObject; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfExtractXObjectInformation { + /** + * This example shows how to extract information about all the XObjects in a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfPage page : pdfContent.getPages()) + { + for (PdfXObject xObject : page.getXObjects()) + { + if (xObject.getImage() != null) + { + System.out.println(xObject.getImage().getWidth()); + System.out.println(xObject.getImage().getHeight()); + System.out.println(xObject.getImage().getBytes().length); + } + + System.out.println(xObject.getText()); + System.out.println(xObject.getX()); + System.out.println(xObject.getY()); + System.out.println(xObject.getWidth()); + System.out.println(xObject.getHeight()); + System.out.println(xObject.getRotateAngle()); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfGetDimensions.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfGetDimensions.java new file mode 100644 index 0000000..99516c2 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfGetDimensions.java @@ -0,0 +1,24 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfGetDimensions { + /** + * This example shows how to get the dimensions of the page in a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + System.out.println(pdfContent.getPages().get_Item(0).getWidth()); + System.out.println(pdfContent.getPages().get_Item(0).getHeight()); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRasterizeDocument.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRasterizeDocument.java new file mode 100644 index 0000000..2b151db --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRasterizeDocument.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfImageConversionFormat; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfRasterizeDocument { + /** + * This example shows how to rasterize the PDF document to protect added watermarks. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Do not copy", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + watermark.setOpacity(0.5); + + // Add watermark of any type first + watermarker.add(watermark); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Rasterize all pages + pdfContent.rasterize(100, 100, PdfImageConversionFormat.Png); + + // Content of all pages is replaced with raster images + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRasterizePage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRasterizePage.java new file mode 100644 index 0000000..7a85613 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRasterizePage.java @@ -0,0 +1,47 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfImageConversionFormat; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfArtifactWatermarkOptions; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PdfRasterizePage { + /** + * This example shows how to rasterize any particular page of the PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Do not copy", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + watermark.setOpacity(0.5); + + // Add watermark of any type first + PdfArtifactWatermarkOptions options = new PdfArtifactWatermarkOptions(); + options.setPageIndex(0); + watermarker.add(watermark, options); + + // Rasterize the first page + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + pdfContent.getPages().get_Item(0).rasterize(100, 100, PdfImageConversionFormat.Png); + + // Content of the first page is replaced with raster image + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAnnotation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAnnotation.java new file mode 100644 index 0000000..1258507 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAnnotation.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfRemoveAnnotation { + /** + * This example shows how to remove a particular annotation from a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Remove Annotation by index + pdfContent.getPages().get_Item(0).getAnnotations().removeAt(0); + + // Remove Annotation by reference + pdfContent.getPages().get_Item(0).getAnnotations().remove(pdfContent.getPages().get_Item(0).getAnnotations().get_Item(0)); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAnnotationsWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAnnotationsWithParticularTextFormatting.java new file mode 100644 index 0000000..67bcb86 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAnnotationsWithParticularTextFormatting.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.search.FormattedTextFragment; + +public class PdfRemoveAnnotationsWithParticularTextFormatting { + /** + * This example shows how to find and remove all annotations containing text with a particular formatting from a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfPage page : pdfContent.getPages()) + { + for (int i = page.getAnnotations().getCount() - 1; i >= 0; i--) + { + for (FormattedTextFragment fragment : page.getAnnotations().get_Item(i).getFormattedTextFragments()) + { + if (fragment.getFont().getFamilyName() == "Verdana") + { + page.getAnnotations().removeAt(i); + break; + } + } + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveArtifact.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveArtifact.java new file mode 100644 index 0000000..5712867 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveArtifact.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfRemoveArtifact { + /** + * This example shows how to remove an artifact from a particular page of the PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Remove Artifact by index + pdfContent.getPages().get_Item(0).getArtifacts().removeAt(0); + + // Remove Artifact by reference + pdfContent.getPages().get_Item(0).getArtifacts().remove(pdfContent.getPages().get_Item(0).getArtifacts().get_Item(0)); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveArtifactsWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveArtifactsWithParticularTextFormatting.java new file mode 100644 index 0000000..4a8f2d5 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveArtifactsWithParticularTextFormatting.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.search.FormattedTextFragment; + +public class PdfRemoveArtifactsWithParticularTextFormatting { + /** + * This example shows how to find and remove all artifacts containing text with a particular formatting from a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfPage page : pdfContent.getPages()) + { + for (int i = page.getArtifacts().getCount() - 1; i >= 0; i--) + { + for (FormattedTextFragment fragment : page.getArtifacts().get_Item(i).getFormattedTextFragments()) + { + if (fragment.getFont().getSize() > 42) + { + page.getArtifacts().removeAt(i); + break; + } + } + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAttachment.java new file mode 100644 index 0000000..64e2bd3 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveAttachment.java @@ -0,0 +1,35 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.FileType; +import com.groupdocs.watermark.contents.PdfAttachment; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfRemoveAttachment { + /** + * This example shows how to remove attachments from the PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (int i = pdfContent.getAttachments().getCount() - 1; i >= 0; i--) + { + PdfAttachment attachment = pdfContent.getAttachments().get_Item(i); + + // Remove all attached pdf files with a particular name + if (attachment.getName().contains("sample") && attachment.getDocumentInfo().getFileType() == FileType.DOCX) + { + pdfContent.getAttachments().removeAt(i); + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveWatermark.java new file mode 100644 index 0000000..ebf5989 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveWatermark.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.ImageSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class PdfRemoveWatermark { + /** + * This example shows how to remove watermarks from a particular page. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + // Initialize search criteria + ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.LogoPng); + TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name"); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + PossibleWatermarkCollection possibleWatermarks = pdfContent.getPages().get_Item(0).search(imageSearchCriteria.or(textSearchCriteria)); + + // Remove all found watermarks + for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--) + { + possibleWatermarks.removeAt(i); + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveXObject.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveXObject.java new file mode 100644 index 0000000..4ecb258 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveXObject.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfRemoveXObject { + /** + * This example shows how to remove an XObject from a particular page. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + // Remove XObject by index + pdfContent.getPages().get_Item(0).getXObjects().removeAt(0); + + // Remove XObject by reference + pdfContent.getPages().get_Item(0).getXObjects().remove(pdfContent.getPages().get_Item(0).getXObjects().get_Item(0)); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveXObjectWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveXObjectWithParticularTextFormatting.java new file mode 100644 index 0000000..2470e09 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfRemoveXObjectWithParticularTextFormatting.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfPage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.search.FormattedTextFragment; +import com.groupdocs.watermark.watermarks.Color; + +public class PdfRemoveXObjectWithParticularTextFormatting { + /** + * This example shows how to find and remove all XObjects containing text with a particular formatting from a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfPage page : pdfContent.getPages()) + { + for (int i = page.getXObjects().getCount() - 1; i >= 0; i--) + { + for (FormattedTextFragment fragment : page.getXObjects().get_Item(i).getFormattedTextFragments()) + { + if (fragment.getForegroundColor().equals(Color.getRed())) + { + page.getXObjects().removeAt(i); + break; + } + } + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularAnnotation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularAnnotation.java new file mode 100644 index 0000000..1e34bf6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularAnnotation.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfAnnotation; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfReplaceImageForParticularAnnotation { + /** + * This example shows how to replace the image of a particular annotation. + */ + public static void run() throws Exception { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageStream = new FileInputStream(imageFile); + imageStream.read(imageBytes); + imageStream.close(); + + // Replace image + for (PdfAnnotation annotation : pdfContent.getPages().get_Item(0).getAnnotations()) + { + if (annotation.getImage() != null) + { + annotation.setImage(new PdfWatermarkableImage(imageBytes)); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularArtifact.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularArtifact.java new file mode 100644 index 0000000..9536cce --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularArtifact.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfArtifact; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfReplaceImageForParticularArtifact { + /** + * This example shows how to replace the image of a particular artifact. + */ + public static void run() throws Exception { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageStream = new FileInputStream(imageFile); + imageStream.read(imageBytes); + imageStream.close(); + + // Replace image + for (PdfArtifact artifact : pdfContent.getPages().get_Item(0).getArtifacts()) + { + if (artifact.getImage() != null) + { + artifact.setImage(new PdfWatermarkableImage(imageBytes)); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularXObject.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularXObject.java new file mode 100644 index 0000000..0cf1585 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceImageForParticularXObject.java @@ -0,0 +1,46 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfWatermarkableImage; +import com.groupdocs.watermark.contents.PdfXObject; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfReplaceImageForParticularXObject { + /** + * This example shows how to replace the image of a particular XObject. + * @throws Exception + */ + public static void run() throws Exception { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageStream = new FileInputStream(imageFile); + imageStream.read(imageBytes); + imageStream.close(); + + // Replace image + for (PdfXObject xObject : pdfContent.getPages().get_Item(0).getXObjects()) + { + if (xObject.getImage() != null) + { + xObject.setImage(new PdfWatermarkableImage(imageBytes)); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularAnnotation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularAnnotation.java new file mode 100644 index 0000000..09ed3f9 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularAnnotation.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfAnnotation; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfReplaceTextForParticularAnnotation { + /** + * This example shows how to edit and replace the text of the particular annotations. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfAnnotation annotation : pdfContent.getPages().get_Item(0).getAnnotations()) + { + // Replace text + if (annotation.getText().contains("Test")) + { + annotation.setText("Passed"); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularAnnotationWithFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularAnnotationWithFormatting.java new file mode 100644 index 0000000..565d3fc --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularAnnotationWithFormatting.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfAnnotation; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class PdfReplaceTextForParticularAnnotationWithFormatting { + /** + * This example shows how to edit and replace the text with formatting. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfAnnotation annotation : pdfContent.getPages().get_Item(0).getAnnotations()) + { + // Replace text + if (annotation.getText().contains("Test")) + { + annotation.getFormattedTextFragments().clear(); + annotation.getFormattedTextFragments().add("Passed", new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularArtifact.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularArtifact.java new file mode 100644 index 0000000..eae49e1 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularArtifact.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfArtifact; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfReplaceTextForParticularArtifact { + /** + * This example shows how to replace the text of the particular artifacts. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfArtifact artifact : pdfContent.getPages().get_Item(0).getArtifacts()) + { + // Replace text + if (artifact.getText().contains("Test")) + { + artifact.setText("Passed"); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularArtifactWithFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularArtifactWithFormatting.java new file mode 100644 index 0000000..1ed4b66 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularArtifactWithFormatting.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfArtifact; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class PdfReplaceTextForParticularArtifactWithFormatting { + /** + * This example shows how to replace the text of the particular artifacts with formatted text. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfArtifact artifact : pdfContent.getPages().get_Item(0).getArtifacts()) + { + // Replace text + if (artifact.getText().contains("Test")) + { + artifact.getFormattedTextFragments().clear(); + artifact.getFormattedTextFragments().add("Passed", new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularXObject.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularXObject.java new file mode 100644 index 0000000..f20db45 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularXObject.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfXObject; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; + +public class PdfReplaceTextForParticularXObject { + /** + * This example shows how to edit and replace the text of the particular XObject. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfXObject xObject : pdfContent.getPages().get_Item(0).getXObjects()) + { + // Replace text + if (xObject.getText().contains("Test")) + { + xObject.setText("Passed"); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularXObjectWithFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularXObjectWithFormatting.java new file mode 100644 index 0000000..918c75f --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfReplaceTextForParticularXObjectWithFormatting.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PdfContent; +import com.groupdocs.watermark.contents.PdfXObject; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class PdfReplaceTextForParticularXObjectWithFormatting { + /** + * This example shows how to replace text with formatting. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + PdfContent pdfContent = watermarker.getContent(PdfContent.class); + for (PdfXObject xObject : pdfContent.getPages().get_Item(0).getXObjects()) + { + // Replace text + if (xObject.getText().contains("Test")) + { + xObject.getFormattedTextFragments().clear(); + xObject.getFormattedTextFragments().add("Passed", new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfSearchImageInAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfSearchImageInAttachment.java new file mode 100644 index 0000000..88fed73 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_pdf/PdfSearchImageInAttachment.java @@ -0,0 +1,28 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_pdf; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WatermarkableImageCollection; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.search.PdfSearchableObjects; + +public class PdfSearchImageInAttachment { + /** + * This example shows how to search for all the images attachments in a PDF document. + */ + public static void run() { + PdfLoadOptions loadOptions = new PdfLoadOptions(); + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions); + + // Consider only the attached images + watermarker.getSearchableObjects().setPdfSearchableObjects(PdfSearchableObjects.AttachedImages); + + // Search for similar images + WatermarkableImageCollection possibleWatermarks = watermarker.getImages(); + + System.out.println("Found " + possibleWatermarks.getCount() + " image(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToAllSlideTypes.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToAllSlideTypes.java new file mode 100644 index 0000000..d5599a5 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToAllSlideTypes.java @@ -0,0 +1,70 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.options.PresentationWatermarkLayoutSlideOptions; +import com.groupdocs.watermark.options.PresentationWatermarkMasterHandoutSlideOptions; +import com.groupdocs.watermark.options.PresentationWatermarkMasterNotesSlideOptions; +import com.groupdocs.watermark.options.PresentationWatermarkMasterSlideOptions; +import com.groupdocs.watermark.options.PresentationWatermarkNoteSlideOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PresentationAddWatermarkToAllSlideTypes { + /** + * This example shows how to access each type of the slides in a PowerPoint presentation. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 8)); + + PresentationContent content = watermarker.getContent(PresentationContent.class); + + // Add watermark to all master slides + PresentationWatermarkMasterSlideOptions masterSlideOptions = new PresentationWatermarkMasterSlideOptions(); + masterSlideOptions.setMasterSlideIndex(-1); + watermarker.add(watermark, masterSlideOptions); + + // Add watermark to all layout slides + if (content.getLayoutSlides() != null) + { + PresentationWatermarkLayoutSlideOptions layoutSlideOptions = new PresentationWatermarkLayoutSlideOptions(); + layoutSlideOptions.setLayoutSlideIndex(-1); + watermarker.add(watermark, masterSlideOptions); + } + + // Add watermark to all notes slides + for (int i = 0; i < content.getSlides().getCount(); i++) + { + if (content.getSlides().get_Item(i).getNotesSlide() != null) + { + PresentationWatermarkNoteSlideOptions noteSlideOptions = new PresentationWatermarkNoteSlideOptions(); + noteSlideOptions.setSlideIndex(i); + watermarker.add(watermark, noteSlideOptions); + } + } + + // Add watermark to handout master + if (content.getMasterHandoutSlide() != null) + { + PresentationWatermarkMasterHandoutSlideOptions handoutSlideOptions = new PresentationWatermarkMasterHandoutSlideOptions(); + watermarker.add(watermark, handoutSlideOptions); + } + + // Add watermark to notes master + if (content.getMasterNotesSlide() != null) + { + PresentationWatermarkMasterNotesSlideOptions masterNotesSlideOptions = new PresentationWatermarkMasterNotesSlideOptions(); + watermarker.add(watermark, masterNotesSlideOptions); + } + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlide.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlide.java new file mode 100644 index 0000000..3f8b452 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlide.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.options.PresentationWatermarkSlideOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PresentationAddWatermarkToSlide { + /** + * This example shows how to add watermark to a particular slide of a PowerPoint presentation. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + // Add text watermark to the first slide + TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); + PresentationWatermarkSlideOptions textWatermarkOptions = new PresentationWatermarkSlideOptions(); + textWatermarkOptions.setSlideIndex(0); + watermarker.add(textWatermark, textWatermarkOptions); + + // Add image watermark to the second slide + ImageWatermark imageWatermark = new ImageWatermark(Constants.LogoJpg); + + PresentationWatermarkSlideOptions imageWatermarkOptions = new PresentationWatermarkSlideOptions(); + imageWatermarkOptions.setSlideIndex(1); + watermarker.add(imageWatermark, imageWatermarkOptions); + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + imageWatermark.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlideBackgroundImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlideBackgroundImages.java new file mode 100644 index 0000000..718728f --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlideBackgroundImages.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.contents.PresentationSlide; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PresentationAddWatermarkToSlideBackgroundImages { + /** + * This example shows how to add watermark to the background images that belong to a PowerPoint document. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + PresentationContent content = watermarker.getContent(PresentationContent.class); + for (PresentationSlide slide : content.getSlides()) + { + if (slide.getImageFillFormat().getBackgroundImage() != null) + { + // Add watermark to the image + slide.getImageFillFormat().getBackgroundImage().add(watermark); + } + } + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlideImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlideImages.java new file mode 100644 index 0000000..d4e5240 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkToSlideImages.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.contents.WatermarkableImage; +import com.groupdocs.watermark.contents.WatermarkableImageCollection; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PresentationAddWatermarkToSlideImages { + /** + * This example shows how to add watermark to the images inside a particular PowerPoint slide. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + // Get all images from the first slide + PresentationContent content = watermarker.getContent(PresentationContent.class); + WatermarkableImageCollection images = content.getSlides().get_Item(0).findImages(); + + // Add watermark to all found images + for (WatermarkableImage image : images) + { + image.add(watermark); + } + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithImageEffects.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithImageEffects.java new file mode 100644 index 0000000..9f85d9d --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithImageEffects.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationImageEffects; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.options.PresentationWatermarkSlideOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class PresentationAddWatermarkWithImageEffects { + /** + * This example shows how to apply image effects to the shape watermark. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + ImageWatermark watermark = new ImageWatermark(Constants.LogoPng); + + PresentationImageEffects effects = new PresentationImageEffects(); + effects.setBrightness(0.7); + effects.setContrast(0.6); + effects.setChromaKey(Color.getRed()); + effects.getBorderLineFormat().setEnabled(true); + effects.getBorderLineFormat().setWeight(1); + + PresentationWatermarkSlideOptions options = new PresentationWatermarkSlideOptions(); + options.setEffects(effects); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + watermark.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithSlidesShapeSettings.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithSlidesShapeSettings.java new file mode 100644 index 0000000..34bc2a7 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithSlidesShapeSettings.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.options.PresentationWatermarkSlideOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PresentationAddWatermarkWithSlidesShapeSettings { + /** + * This example shows how to set some additional options when adding a shape watermark. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + watermark.setBackground(true); + + PresentationWatermarkSlideOptions options = new PresentationWatermarkSlideOptions(); + + // Set the shape name + options.setName("Shape 1"); + + // Set the descriptive (alternative) text that will be associated with the shape + options.setAlternativeText("Test watermark"); + + // Editing of the shape in PowerPoint is forbidden + options.setLocked(true); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithTextEffects.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithTextEffects.java new file mode 100644 index 0000000..c9fe422 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationAddWatermarkWithTextEffects.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.OfficeDashStyle; +import com.groupdocs.watermark.contents.OfficeLineStyle; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.options.PresentationTextEffects; +import com.groupdocs.watermark.options.PresentationWatermarkSlideOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PresentationAddWatermarkWithTextEffects { + /** + * This example shows how to apply text effects when adding shape watermark to a PowerPoint slide. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19)); + + PresentationTextEffects effects = new PresentationTextEffects(); + effects.getLineFormat().setEnabled(true); + effects.getLineFormat().setColor(Color.getRed()); + effects.getLineFormat().setDashStyle(OfficeDashStyle.DashDotDot); + effects.getLineFormat().setLineStyle(OfficeLineStyle.Triple); + effects.getLineFormat().setWeight(1); + + PresentationWatermarkSlideOptions options = new PresentationWatermarkSlideOptions(); + options.setEffects(effects); + + watermarker.add(watermark, options); + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationGetSlideBackgroundsInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationGetSlideBackgroundsInformation.java new file mode 100644 index 0000000..7ac8c5d --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationGetSlideBackgroundsInformation.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.contents.PresentationSlide; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; + +public class PresentationGetSlideBackgroundsInformation { + /** + * This example shows how to extract information about all the slide backgrounds in a PowerPoint document. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + PresentationContent content = watermarker.getContent(PresentationContent.class); + for (PresentationSlide slide : content.getSlides()) + { + if (slide.getImageFillFormat().getBackgroundImage() != null) + { + System.out.println(slide.getImageFillFormat().getBackgroundImage().getWidth()); + System.out.println(slide.getImageFillFormat().getBackgroundImage().getHeight()); + System.out.println(slide.getImageFillFormat().getBackgroundImage().getBytes().length); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationGetSlideDimensions.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationGetSlideDimensions.java new file mode 100644 index 0000000..1e2214e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationGetSlideDimensions.java @@ -0,0 +1,24 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; + +public class PresentationGetSlideDimensions { + /** + * This example shows how to get the dimensions of a particular slide. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + PresentationContent content = watermarker.getContent(PresentationContent.class); + + System.out.println(content.getSlideWidth()); + System.out.println(content.getSlideHeight()); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationProtectWatermarkUsingUnreadableCharacters.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationProtectWatermarkUsingUnreadableCharacters.java new file mode 100644 index 0000000..6de54c4 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationProtectWatermarkUsingUnreadableCharacters.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; +import com.groupdocs.watermark.options.PresentationWatermarkSlideOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class PresentationProtectWatermarkUsingUnreadableCharacters { + /** + * This example shows how to include unreadable characters in watermark text. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); + + PresentationWatermarkSlideOptions options = new PresentationWatermarkSlideOptions(); + options.setLocked(true); + options.setProtectWithUnreadableCharacters(true); + + // Add watermark + watermarker.add(watermark, options); + + // Save document + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationRemoveSlideBackground.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationRemoveSlideBackground.java new file mode 100644 index 0000000..2a3c5ca --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationRemoveSlideBackground.java @@ -0,0 +1,24 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; + +public class PresentationRemoveSlideBackground { + /** + * This example shows how to remove the background image of a particular slide. + */ + public static void run() { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + PresentationContent content = watermarker.getContent(PresentationContent.class); + content.getSlides().get_Item(0).getImageFillFormat().setBackgroundImage(null); + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationSetBackgroundImageForChart.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationSetBackgroundImageForChart.java new file mode 100644 index 0000000..d028be5 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationSetBackgroundImageForChart.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.contents.PresentationWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; + +public class PresentationSetBackgroundImageForChart { + /** + * This example shows how to set the background image for a chart inside PowerPoint document. + */ + public static void run() throws Exception { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + PresentationContent content = watermarker.getContent(PresentationContent.class); + + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageBytes); + imageInputStream.close(); + + + content.getSlides().get_Item(0).getCharts().get_Item(0).getImageFillFormat().setBackgroundImage(new PresentationWatermarkableImage(imageBytes)); + content.getSlides().get_Item(0).getCharts().get_Item(0).getImageFillFormat().setTransparency(0.5); + content.getSlides().get_Item(0).getCharts().get_Item(0).getImageFillFormat().setTileAsTexture(true); + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationSetTiledSemitransparentBackground.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationSetTiledSemitransparentBackground.java new file mode 100644 index 0000000..90864c7 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_presentations/PresentationSetTiledSemitransparentBackground.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_presentations; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.PresentationContent; +import com.groupdocs.watermark.contents.PresentationSlide; +import com.groupdocs.watermark.contents.PresentationWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PresentationLoadOptions; + +public class PresentationSetTiledSemitransparentBackground { + /** + * This example shows how to tile the picture across slide's background and make the image semi-transparent. + */ + public static void run() throws Exception { + PresentationLoadOptions loadOptions = new PresentationLoadOptions(); + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx, loadOptions); + + PresentationContent content = watermarker.getContent(PresentationContent.class); + PresentationSlide slide = content.getSlides().get_Item(0); + + File imageFile = new File(Constants.BackgroundPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageBytes); + imageInputStream.close(); + + slide.getImageFillFormat().setBackgroundImage(new PresentationWatermarkableImage(imageBytes)); + slide.getImageFillFormat().setTileAsTexture(true); + slide.getImageFillFormat().setTransparency(0.5); + + watermarker.save(Constants.OutPresentationPptx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddAttachment.java new file mode 100644 index 0000000..d6a37b3 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddAttachment.java @@ -0,0 +1,53 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetAddAttachment { + /** + * This example show how to add attachments in Excel document. + */ + public static void run() throws Exception { + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + File file = new File(Constants.InDocumentDocx); + byte[] attachmentBytes = new byte[(int) file.length()]; + InputStream inputStream = new FileInputStream(file); + inputStream.read(attachmentBytes); + inputStream.close(); + + file = new File(Constants.DocumentPreviewPng); + byte[] previewImageBytes = new byte[(int) file.length()]; + inputStream = new FileInputStream(file); + inputStream.read(previewImageBytes); + inputStream.close(); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + SpreadsheetWorksheet worksheet = content.getWorksheets().get_Item(0); + + // Add the attachment + worksheet.getAttachments().addAttachment(attachmentBytes, // File content + "sample document.docx", // Source file full name (the extension is used + // to determine appropriate application to open + // the file) + previewImageBytes, // Preview image content + 50, // X-coordinate of the attachment frame + 100, // Y-coordinate of the attachment frame + 200, // Attachment frame width + 400); // Attachment frame height + + // Save changes + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddImageWatermarkIntoHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddImageWatermarkIntoHeaderFooter.java new file mode 100644 index 0000000..b7a9805 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddImageWatermarkIntoHeaderFooter.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.options.SpreadsheetWatermarkHeaderFooterOptions; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.SizingType; + +public class SpreadsheetAddImageWatermarkIntoHeaderFooter { + /** + * This example shows how to add watermark to worksheet's header or footer. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + ImageWatermark watermark = new ImageWatermark(Constants.LogoPng); + + watermark.setVerticalAlignment(VerticalAlignment.Top); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + SpreadsheetWatermarkHeaderFooterOptions options = new SpreadsheetWatermarkHeaderFooterOptions(); + options.setWorksheetIndex(0); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddLinkedAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddLinkedAttachment.java new file mode 100644 index 0000000..13d27c2 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddLinkedAttachment.java @@ -0,0 +1,43 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import java.io.File; +import java.io.FileInputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetAddLinkedAttachment { + /** + * This example shows how to to add linked attachments in Excel document. + */ + public static void run() throws Exception { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + SpreadsheetWorksheet worksheet = content.getWorksheets().get_Item(0); + + File file = new File(Constants.DocumentPreviewPng); + byte[] previewImageBytes = new byte[(int) file.length()]; + FileInputStream inputStream = new FileInputStream(file); + inputStream.read(previewImageBytes); + inputStream.close(); + + // Add the attachment + worksheet.getAttachments().addLink(Constants.InDocumentDocx, // Source file path + previewImageBytes, // Preview image content + 50, // X-coordinate of the attachment frame + 100, // Y-coordinate of the attachment frame + 200, // Attachment frame width + 400); // Attachment frame height + + // Save changes + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddModernWordArtWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddModernWordArtWatermark.java new file mode 100644 index 0000000..c79ec67 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddModernWordArtWatermark.java @@ -0,0 +1,28 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.options.SpreadsheetWatermarkModernWordArtOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddModernWordArtWatermark { + /** + * This example shows how to add modern WordArt watermark to Excel document worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); + SpreadsheetWatermarkModernWordArtOptions options = new SpreadsheetWatermarkModernWordArtOptions(); + options.setWorksheetIndex(0); + + watermarker.add(textWatermark, options); + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddTextWatermarkAsBackground.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddTextWatermarkAsBackground.java new file mode 100644 index 0000000..fac2aeb --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddTextWatermarkAsBackground.java @@ -0,0 +1,41 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetBackgroundWatermarkOptions; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddTextWatermarkAsBackground { + /** + * This example shows how to add text watermark as background. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(0.5); + watermark.setOpacity(0.5); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + SpreadsheetBackgroundWatermarkOptions options = new SpreadsheetBackgroundWatermarkOptions(); + options.setBackgroundWidth(content.getWorksheets().get_Item(0).getContentAreaWidthPx()); /* set background width */ + options.setBackgroundHeight(content.getWorksheets().get_Item(0).getContentAreaHeightPx()); /* set background height */ + watermarker.add(watermark, options); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddTextWatermarkIntoHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddTextWatermarkIntoHeaderFooter.java new file mode 100644 index 0000000..efe8a03 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddTextWatermarkIntoHeaderFooter.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.options.SpreadsheetWatermarkHeaderFooterOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddTextWatermarkIntoHeaderFooter { + /** + * This example shows how to add text watermark in header or footer. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19, FontStyle.Bold)); + watermark.setForegroundColor(Color.getRed()); + watermark.setBackgroundColor(Color.getAqua()); + watermark.setVerticalAlignment(VerticalAlignment.Top); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + + SpreadsheetWatermarkHeaderFooterOptions options = new SpreadsheetWatermarkHeaderFooterOptions(); + options.setWorksheetIndex(0); + + watermarker.add(watermark, options); + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkAsBackground.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkAsBackground.java new file mode 100644 index 0000000..491410c --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkAsBackground.java @@ -0,0 +1,27 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetBackgroundWatermarkOptions; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class SpreadsheetAddWatermarkAsBackground { + /** + * This example show how to add background watermark to all worksheets of Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + ImageWatermark watermark = new ImageWatermark(Constants.LogoGif); + + SpreadsheetBackgroundWatermarkOptions options = new SpreadsheetBackgroundWatermarkOptions(); + watermarker.add(watermark, options); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkAsBackgroundWithRelativeSizeAndPosition.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkAsBackgroundWithRelativeSizeAndPosition.java new file mode 100644 index 0000000..d819c0f --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkAsBackgroundWithRelativeSizeAndPosition.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetBackgroundWatermarkOptions; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.SizingType; + +public class SpreadsheetAddWatermarkAsBackgroundWithRelativeSizeAndPosition { + /** + * This example shows how to define the size of the background image on which your watermark will be drawn. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + ImageWatermark watermark = new ImageWatermark(Constants.LogoGif); + + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(90); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(0.5); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + SpreadsheetBackgroundWatermarkOptions options = new SpreadsheetBackgroundWatermarkOptions(); + options.setBackgroundWidth(content.getWorksheets().get_Item(0).getContentAreaWidthPx()); /* set background width */ + options.setBackgroundHeight(content.getWorksheets().get_Item(0).getContentAreaHeightPx()); /* set background height */ + watermarker.add(watermark, options); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToAttachment.java new file mode 100644 index 0000000..4b910f6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToAttachment.java @@ -0,0 +1,52 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.FileType; +import com.groupdocs.watermark.common.IDocumentInfo; +import com.groupdocs.watermark.contents.SpreadsheetAttachment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddWatermarkToAttachment { + /** + * This example shows how to add watermark to all attachments in Excel document. + */ + public static void run() { + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + for (SpreadsheetAttachment attachment : worksheet.getAttachments()) + { + // Check if the attached file is supported by GroupDocs.Watermark + IDocumentInfo info = attachment.getDocumentInfo(); + if (info.getFileType() != FileType.Unknown && !info.isEncrypted()) + { + // Load the attached document + Watermarker attachedWatermarker = attachment.createWatermarker(); + + // Add watermark + attachedWatermarker.add(watermark); + + // Save changes in the attached file + attachment.updateContent(attachedWatermarker); + + attachedWatermarker.close(); + } + } + } + + // Save changes + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToBackgroundImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToBackgroundImages.java new file mode 100644 index 0000000..0d00623 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToBackgroundImages.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddWatermarkToBackgroundImages { + /** + * This example shows how to add watermark to the background images that belong to an Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + if (worksheet.getBackgroundImage() != null) + { + // Add watermark to the image + worksheet.getBackgroundImage().add(watermark); + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToImagesInHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToImagesInHeaderFooter.java new file mode 100644 index 0000000..fb1cb53 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToImagesInHeaderFooter.java @@ -0,0 +1,53 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooter; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooterSection; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddWatermarkToImagesInHeaderFooter { + /** + * This example shows how to add watermark to images inside any header and footer. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + // Initialize image or text watermark + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + for (SpreadsheetHeaderFooter headerFooter : worksheet.getHeadersFooters()) + { + for (SpreadsheetHeaderFooterSection section : headerFooter.getSections()) + { + if (section.getImage() != null) + { + // Add watermark to the image + section.getImage().add(watermark); + } + } + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToWorksheet.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToWorksheet.java new file mode 100644 index 0000000..72fdd5b --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToWorksheet.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.options.SpreadsheetWatermarkShapeOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.ImageWatermark; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddWatermarkToWorksheet { + /** + * This example shows how to add watermark to a particular worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + // Add text watermark to the first worksheet + TextWatermark textWatermark = new TextWatermark("Test watermark", new Font("Arial", 8)); + SpreadsheetWatermarkShapeOptions textWatermarkOptions = new SpreadsheetWatermarkShapeOptions(); + textWatermarkOptions.setWorksheetIndex(0); + watermarker.add(textWatermark, textWatermarkOptions); + + // Add image watermark to the second worksheet + ImageWatermark imageWatermark = new ImageWatermark(Constants.LogoJpg); + + SpreadsheetWatermarkShapeOptions imageWatermarkOptions = new SpreadsheetWatermarkShapeOptions(); + imageWatermarkOptions.setWorksheetIndex(1); + watermarker.add(imageWatermark, imageWatermarkOptions); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + imageWatermark.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToWorksheetImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToWorksheetImages.java new file mode 100644 index 0000000..39033e6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkToWorksheetImages.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.WatermarkableImage; +import com.groupdocs.watermark.contents.WatermarkableImageCollection; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddWatermarkToWorksheetImages { + /** + * This example shows how to add watermark to the images that belong to a particular worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + // Get all images from the first worksheet + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + WatermarkableImageCollection images = content.getWorksheets().get_Item(0).findImages(); + + // Add watermark to all found images + for (WatermarkableImage image : images) + { + image.add(watermark); + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkUsingShapeSettings.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkUsingShapeSettings.java new file mode 100644 index 0000000..b6c6706 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkUsingShapeSettings.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.options.SpreadsheetWatermarkShapeOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddWatermarkUsingShapeSettings { + /** + * This example shows how to set some additional options when adding shape watermark to Excel worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19)); + SpreadsheetWatermarkShapeOptions options = new SpreadsheetWatermarkShapeOptions(); + + // Set the shape name + options.setName("Shape 1"); + + // Set the descriptive (alternative) text that will be associated with the shape + options.setAlternativeText("Test watermark"); + + // Editing of the shape in Excel is forbidden + options.setLocked(true); + + watermarker.add(watermark, options); + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkWithImageEffects.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkWithImageEffects.java new file mode 100644 index 0000000..12110a6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkWithImageEffects.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetImageEffects; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.options.SpreadsheetWatermarkShapeOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class SpreadsheetAddWatermarkWithImageEffects { + /** + * This example shows how to apply image effects to the shape watermark. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + ImageWatermark watermark = new ImageWatermark(Constants.LogoPng); + + SpreadsheetImageEffects effects = new SpreadsheetImageEffects(); + effects.setBrightness(0.7); + effects.setContrast(0.6); + effects.setChromaKey(Color.getRed()); + effects.getBorderLineFormat().setEnabled(true); + effects.getBorderLineFormat().setWeight(1); + + SpreadsheetWatermarkShapeOptions options = new SpreadsheetWatermarkShapeOptions(); + options.setEffects(effects); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkWithTextEffects.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkWithTextEffects.java new file mode 100644 index 0000000..afebfd4 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetAddWatermarkWithTextEffects.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.OfficeDashStyle; +import com.groupdocs.watermark.contents.OfficeLineStyle; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.options.SpreadsheetTextEffects; +import com.groupdocs.watermark.options.SpreadsheetWatermarkShapeOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SpreadsheetAddWatermarkWithTextEffects { + /** + * This example shows how to apply text effects when adding shape watermark in Excel worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Segoe UI", 19)); + + SpreadsheetTextEffects effects = new SpreadsheetTextEffects(); + effects.getLineFormat().setEnabled(true); + effects.getLineFormat().setColor(Color.getRed()); + effects.getLineFormat().setDashStyle(OfficeDashStyle.DashDotDot); + effects.getLineFormat().setLineStyle(OfficeLineStyle.Triple); + effects.getLineFormat().setWeight(1); + + SpreadsheetWatermarkShapeOptions options = new SpreadsheetWatermarkShapeOptions(); + options.setEffects(effects); + + watermarker.add(watermark, options); + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetClearHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetClearHeaderFooter.java new file mode 100644 index 0000000..7329092 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetClearHeaderFooter.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.OfficeHeaderFooterType; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooterSection; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooterSectionCollection; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetClearHeaderFooter { + /** + * This example shows how to clear a particular header and footer. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: @"C:\Docs\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + SpreadsheetHeaderFooterSectionCollection sections = content + .getWorksheets().get_Item(0) + .getHeadersFooters().getByOfficeHeaderFooterType(OfficeHeaderFooterType.HeaderPrimary) + .getSections(); + for (SpreadsheetHeaderFooterSection section : sections) + { + section.setScript(null); + section.setImage(null); + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetClearSectionOfHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetClearSectionOfHeaderFooter.java new file mode 100644 index 0000000..22eaefd --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetClearSectionOfHeaderFooter.java @@ -0,0 +1,33 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.OfficeHeaderFooterType; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooterSection; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooterSectionType; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetClearSectionOfHeaderFooter { + /** + * This example shows how to clear a particular section of header and footer. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + SpreadsheetHeaderFooterSection section = content + .getWorksheets().get_Item(0) + .getHeadersFooters().getByOfficeHeaderFooterType(OfficeHeaderFooterType.HeaderEven) + .getSections().getBySpreadsheetHeaderFooterSectionType(SpreadsheetHeaderFooterSectionType.Left); + section.setImage(null); + section.setScript(null); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetExtractAllAttachments.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetExtractAllAttachments.java new file mode 100644 index 0000000..007efec --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetExtractAllAttachments.java @@ -0,0 +1,48 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetAttachment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetExtractAllAttachments { + /** + * This example shows how to extract attachments in Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + for (SpreadsheetAttachment attachment : worksheet.getAttachments()) + { + System.out.println("Alternative text: " + attachment.getAlternativeText()); + System.out.println("Attachment frame x-coordinate: " + attachment.getX()); + System.out.println("Attachment frame y-coordinate: " + attachment.getY()); + System.out.println("Attachment frame width: " + attachment.getWidth()); + System.out.println("Attachment frame height: " + attachment.getHeight()); + System.out.println("Preview image size: " + attachment.getPreviewImageContent() != null ? attachment.getPreviewImageContent().length : 0); + + if (attachment.isLink()) + { + // The document contains only a link to the attached file + System.out.println("Full path to the attached file: " + attachment.getSourceFullName()); + } + else + { + // The attached file is stored in the document + System.out.println("File type: " + attachment.getDocumentInfo().getFileType()); + System.out.println("Name of the source file: " + attachment.getSourceFullName()); + System.out.println("File size: " + attachment.getContent().length); + } + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetContentAreaDimensions.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetContentAreaDimensions.java new file mode 100644 index 0000000..1e61fe9 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetContentAreaDimensions.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetGetContentAreaDimensions { + /** + * This example shows how to get the size of the content area (range of cells which contains data). + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + // Get the size of content area + System.out.println(content.getWorksheets().get_Item(0).getContentAreaHeight()); + System.out.println(content.getWorksheets().get_Item(0).getContentAreaWidth()); + + // Get the size of particular cell + System.out.println(content.getWorksheets().get_Item(0).getColumnWidth(0)); + System.out.println(content.getWorksheets().get_Item(0).getRowHeight(0)); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetHeaderFooterInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetHeaderFooterInformation.java new file mode 100644 index 0000000..a0107c6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetHeaderFooterInformation.java @@ -0,0 +1,44 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooter; +import com.groupdocs.watermark.contents.SpreadsheetHeaderFooterSection; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetGetHeaderFooterInformation { + /** + * This example shows how to extract information about all the headers and footers in an Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + for (SpreadsheetHeaderFooter headerFooter : worksheet.getHeadersFooters()) + { + System.out.println(headerFooter.getHeaderFooterType()); + for (SpreadsheetHeaderFooterSection section : headerFooter.getSections()) + { + System.out.println(section.getSectionType()); + if (section.getImage() != null) + { + System.out.println(section.getImage().getWidth()); + System.out.println(section.getImage().getHeight()); + System.out.println(section.getImage().getBytes().length); + } + + System.out.println(section.getScript()); + } + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetInformationOfWorksheetBackgrounds.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetInformationOfWorksheetBackgrounds.java new file mode 100644 index 0000000..77c200e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetInformationOfWorksheetBackgrounds.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetGetInformationOfWorksheetBackgrounds { + /** + * This example shows how to extract information about all the worksheet backgrounds in an Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + if (worksheet.getBackgroundImage() != null) + { + System.out.println(worksheet.getBackgroundImage().getWidth()); + System.out.println(worksheet.getBackgroundImage().getHeight()); + System.out.println(worksheet.getBackgroundImage().getBytes().length); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetShapesInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetShapesInformation.java new file mode 100644 index 0000000..8f2e20b --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetGetShapesInformation.java @@ -0,0 +1,48 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetShape; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetGetShapesInformation { + /** + * This example shows how to get information about all the shapes in an Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: @"C:\Docs\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + for (SpreadsheetShape shape : worksheet.getShapes()) + { + System.out.println(shape.getAutoShapeType()); + System.out.println(shape.getMsoDrawingType()); + System.out.println(shape.getText()); + if (shape.getImage() != null) + { + System.out.println(shape.getImage().getWidth()); + System.out.println(shape.getImage().getHeight()); + System.out.println(shape.getImage().getBytes().length); + } + + System.out.println(shape.getId()); + System.out.println(shape.getAlternativeText()); + System.out.println(shape.getX()); + System.out.println(shape.getY()); + System.out.println(shape.getWidth()); + System.out.println(shape.getHeight()); + System.out.println(shape.getRotateAngle()); + System.out.println(shape.isWordArt()); + System.out.println(shape.getName()); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveAttachment.java new file mode 100644 index 0000000..a5fa007 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveAttachment.java @@ -0,0 +1,42 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import java.io.File; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetAttachment; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetRemoveAttachment { + /** + * This example shows how to remove attachments in Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet worksheet : content.getWorksheets()) + { + for (int i = worksheet.getAttachments().getCount() - 1; i >= 0; i--) + { + SpreadsheetAttachment attachment = worksheet.getAttachments().get_Item(i); + if (attachment.isLink() && + !new File(attachment.getSourceFullName()).exists() || // Linked file that is not available at this moment + attachment.getDocumentInfo().isEncrypted()) // Attached file protected with a password + { + // Remove the file if it meets at least one of the conditions above + worksheet.getAttachments().removeAt(i); + } + } + } + + // Save changes + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveHyperlinks.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveHyperlinks.java new file mode 100644 index 0000000..7d032e0 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveHyperlinks.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetRemoveHyperlinks { + /** + * This example shows how to remove/replace hyperlink associated with a particular shape or chart inside an Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + // Replace hyperlink + content.getWorksheets().get_Item(0).getCharts().get_Item(0).setHyperlink("https://www.aspose.com/"); + content.getWorksheets().get_Item(0).getShapes().get_Item(0).setHyperlink("https://www.groupdocs.com/"); + + // Remove hyperlink + content.getWorksheets().get_Item(1).getCharts().get_Item(0).setHyperlink(null); + content.getWorksheets().get_Item(1).getShapes().get_Item(0).setHyperlink(null); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveShape.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveShape.java new file mode 100644 index 0000000..6271a12 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveShape.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetRemoveShape { + /** + * This example shows how to remove a particular shape from the worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + // Remove shape by index + content.getWorksheets().get_Item(0).getShapes().removeAt(0); + + // Remove shape by reference + content.getWorksheets().get_Item(0).getShapes().remove(content.getWorksheets().get_Item(0).getShapes().get_Item(0)); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveTextShapesWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveTextShapesWithParticularTextFormatting.java new file mode 100644 index 0000000..630d21c --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveTextShapesWithParticularTextFormatting.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWorksheet; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.search.FormattedTextFragment; +import com.groupdocs.watermark.watermarks.Color; + +public class SpreadsheetRemoveTextShapesWithParticularTextFormatting { + /** + * This example shows how to find and remove the shapes with a particular text formatting from an Excel document. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetWorksheet section : content.getWorksheets()) + { + for (int i = section.getShapes().getCount() - 1; i >= 0; i--) + { + for (FormattedTextFragment fragment : section.getShapes().get_Item(i).getFormattedTextFragments()) + { + if (fragment.getForegroundColor().equals(Color.getRed()) && fragment.getFont().getFamilyName() == "Arial") + { + section.getShapes().removeAt(i); + break; + } + } + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveWorksheetBackground.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveWorksheetBackground.java new file mode 100644 index 0000000..cfc182d --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetRemoveWorksheetBackground.java @@ -0,0 +1,24 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetRemoveWorksheetBackground { + /** + * This example shows how to remove the background of a particular worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + content.getWorksheets().get_Item(0).setBackgroundImage(null); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceImageOfParticularShapes.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceImageOfParticularShapes.java new file mode 100644 index 0000000..93f7015 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceImageOfParticularShapes.java @@ -0,0 +1,42 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import java.io.File; +import java.io.FileInputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetShape; +import com.groupdocs.watermark.contents.SpreadsheetWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetReplaceImageOfParticularShapes { + /** + * This examples shows how to replace the image of the particular shapes in an Excel Worksheet. + */ + public static void run() throws Exception { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + File file = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) file.length()]; + FileInputStream inputStream = new FileInputStream(file); + inputStream.read(imageBytes); + inputStream.close(); + + for (SpreadsheetShape shape : content.getWorksheets().get_Item(0).getShapes()) + { + if (shape.getImage() != null) + { + shape.setImage(new SpreadsheetWatermarkableImage(imageBytes)); + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceTextForParticularShapes.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceTextForParticularShapes.java new file mode 100644 index 0000000..528074e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceTextForParticularShapes.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetReplaceTextForParticularShapes { + /** + * This example shows how to replace text for particular shapes in an Excel Worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetShape shape : content.getWorksheets().get_Item(0).getShapes()) + { + if (shape.getText() == " Aspose 2016") + { + shape.setText(" GroupDocs 2017"); + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceTextWithFormattingForParticularShapes.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceTextWithFormattingForParticularShapes.java new file mode 100644 index 0000000..f12b9c3 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetReplaceTextWithFormattingForParticularShapes.java @@ -0,0 +1,35 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class SpreadsheetReplaceTextWithFormattingForParticularShapes { + /** + * This example shows how to replace the text of the shapes with formatted text. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetShape shape : content.getWorksheets().get_Item(0).getShapes()) + { + if (shape.getText() == " Aspose 2016") + { + shape.getFormattedTextFragments().clear(); + shape.getFormattedTextFragments().add(" GroupDocs 2017", new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSearchImageInAttachment.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSearchImageInAttachment.java new file mode 100644 index 0000000..ec3945e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSearchImageInAttachment.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.WatermarkerSettings; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.ImageSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.SpreadsheetSearchableObjects; + +public class SpreadsheetSearchImageInAttachment { + /** + * This example shows how to search for all the images and watermarkable attachments in Excel document. + */ + public static void run() { + // Consider only the attached images + WatermarkerSettings settings = new WatermarkerSettings(); + settings.getSearchableObjects().setSpreadsheetSearchableObjects(SpreadsheetSearchableObjects.AttachedImages); + + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions, settings); + + // Specify sample image to compare document images with + ImageSearchCriteria criteria = new ImageDctHashSearchCriteria(Constants.AttachmentPng); + + // Search for similar images + PossibleWatermarkCollection possibleWatermarks = watermarker.search(criteria); + + // Remove or modify found image watermarks + // ... + + System.out.println("Found " + possibleWatermarks.getCount() + " possible watermark(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSetBackgroundImageForChart.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSetBackgroundImageForChart.java new file mode 100644 index 0000000..5301c3b --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSetBackgroundImageForChart.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetSetBackgroundImageForChart { + /** + * This example shows how to set the background image for a chart inside an Excel document. + */ + public static void run() throws Exception { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageBytes); + imageInputStream.close(); + + content.getWorksheets().get_Item(0).getCharts().get_Item(0).getImageFillFormat().setBackgroundImage(new SpreadsheetWatermarkableImage(imageBytes)); + content.getWorksheets().get_Item(0).getCharts().get_Item(0).getImageFillFormat().setTransparency(0.5); + content.getWorksheets().get_Item(0).getCharts().get_Item(0).getImageFillFormat().setTileAsTexture(true); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSetBackgroundImageForParticularShapes.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSetBackgroundImageForParticularShapes.java new file mode 100644 index 0000000..b15e527 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetSetBackgroundImageForParticularShapes.java @@ -0,0 +1,44 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetShape; +import com.groupdocs.watermark.contents.SpreadsheetWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetSetBackgroundImageForParticularShapes { + /** + * This example shows how to set the background image for the particular shapes in an Excel Worksheet. + */ + public static void run() throws Exception { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageBytes); + imageInputStream.close(); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetShape shape : content.getWorksheets().get_Item(0).getShapes()) + { + if (shape.getText() == " Aspose 2016") + { + shape.getImageFillFormat().setBackgroundImage(new SpreadsheetWatermarkableImage(imageBytes)); + shape.getImageFillFormat().setTransparency(0.5); + shape.getImageFillFormat().setTileAsTexture(true); + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetUpdateShapeProperties.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetUpdateShapeProperties.java new file mode 100644 index 0000000..000cf00 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_spreadsheets/SpreadsheetUpdateShapeProperties.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_spreadsheets; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.SpreadsheetContent; +import com.groupdocs.watermark.contents.SpreadsheetShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; + +public class SpreadsheetUpdateShapeProperties { + /** + * This example shows how to modify properties of particular shapes in an Excel Worksheet. + */ + public static void run() { + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\spreadsheet.xlsx" + Watermarker watermarker = new Watermarker(Constants.InSpreadsheetXlsx, loadOptions); + + SpreadsheetContent content = watermarker.getContent(SpreadsheetContent.class); + for (SpreadsheetShape shape : content.getWorksheets().get_Item(0).getShapes()) + { + if (shape.getText() == " Aspose 2019") + { + shape.setAlternativeText("watermark"); + shape.setRotateAngle(30); + shape.setX(200); + shape.setY(200); + shape.setWidth(400); + shape.setHeight(100); + } + } + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddImageWatermarkToAllHeaders.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddImageWatermarkToAllHeaders.java new file mode 100644 index 0000000..328f550 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddImageWatermarkToAllHeaders.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingWatermarkSectionOptions; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class WordProcessingAddImageWatermarkToAllHeaders { + /** + * This example shows how to add watermark with linking headers and footers. + */ + public static void run() { + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + ImageWatermark watermark = new ImageWatermark(Constants.LargePng); + + // Add watermark to all headers of the first section + WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions(); + options.setSectionIndex(0); + watermarker.add(watermark, options); + + // Link all other headers&footers to corresponding headers&footers of the first section + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + for (int i = 1; i < content.getSections().getCount(); i++) + { + content.getSections().get_Item(i).getHeadersFooters().linkToPrevious(true); + } + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToAllPages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToAllPages.java new file mode 100644 index 0000000..4bacb26 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToAllPages.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingLockType; +import com.groupdocs.watermark.options.WordProcessingWatermarkPagesOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddLockedWatermarkToAllPages { + /** + * This example shows how to lock watermark in all pages. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); + watermark.setForegroundColor(Color.getRed()); + + WordProcessingWatermarkPagesOptions options = new WordProcessingWatermarkPagesOptions(); + options.setLocked(true); + options.setLockType(WordProcessingLockType.AllowOnlyFormFields); + + // To protect with password + //options.setPassword("7654321"); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToParticularPages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToParticularPages.java new file mode 100644 index 0000000..57094d7 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToParticularPages.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingLockType; +import com.groupdocs.watermark.options.WordProcessingWatermarkPagesOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddLockedWatermarkToParticularPages { + /** + * This example shows how to lock watermark in particular pages. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); + watermark.setForegroundColor(Color.getRed()); + + WordProcessingWatermarkPagesOptions options = new WordProcessingWatermarkPagesOptions(); + options.setPageNumbers(new int[] { 1, 3 }); + options.setLocked(true); + options.setLockType(WordProcessingLockType.AllowOnlyComments); + + // To protect with password + //options.Password = "7654321"; + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToSection.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToSection.java new file mode 100644 index 0000000..d1f6402 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddLockedWatermarkToSection.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingLockType; +import com.groupdocs.watermark.options.WordProcessingWatermarkSectionOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddLockedWatermarkToSection { + /** + * This example shows how to lock watermark in particular section. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Watermark text", new Font("Arial", 19)); + watermark.setForegroundColor(Color.getRed()); + + WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions(); + options.setSectionIndex(0); + options.setLocked(true); + options.setLockType(WordProcessingLockType.ReadOnlyWithEditableContent); + + // To protect with password + //options.setPassword("7654321"); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToParticularPage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToParticularPage.java new file mode 100644 index 0000000..7cdd857 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToParticularPage.java @@ -0,0 +1,32 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingWatermarkPagesOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddWatermarkToParticularPage { + /** + * This example shows how to add watermark to a particular page of a Word document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark textWatermark = new TextWatermark("DRAFT", new Font("Arial", 42)); + + // Add watermark to the last page + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + WordProcessingWatermarkPagesOptions options = new WordProcessingWatermarkPagesOptions(); + options.setPageNumbers(new int[] {content.getPageCount()}); + + watermarker.add(textWatermark, options); + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToSection.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToSection.java new file mode 100644 index 0000000..afd300c --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToSection.java @@ -0,0 +1,30 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingWatermarkSectionOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddWatermarkToSection { + /** + * This example shows how to add watermark to the headers of a particular section. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + + // Add watermark to all headers of the first section + WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions(); + options.setSectionIndex(0); + watermarker.add(watermark, options); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToSectionImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToSectionImages.java new file mode 100644 index 0000000..2a7864c --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToSectionImages.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.WatermarkableImage; +import com.groupdocs.watermark.contents.WatermarkableImageCollection; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddWatermarkToSectionImages { + /** + * This example shows how to add watermark to the images that belong to a particular section. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + // Get all images belonging to the first section + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + WatermarkableImageCollection images = content.getSections().get_Item(0).findImages(); + + // Add watermark to all found images + for (WatermarkableImage image : images) + { + image.add(watermark); + } + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToShapeImages.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToShapeImages.java new file mode 100644 index 0000000..5b6edf6 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkToShapeImages.java @@ -0,0 +1,49 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingSection; +import com.groupdocs.watermark.contents.WordProcessingShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddWatermarkToShapeImages { + /** + * This example shows how to add watermark to images in a document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Protected image", new Font("Arial", 8)); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setRotateAngle(45); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + for (WordProcessingSection section : content.getSections()) + { + for (WordProcessingShape shape : section.getShapes()) + { + // Headers&Footers usually contains only service information. + // So, we skip images in headers/footers, expecting that they are probably watermarks or backgrounds + if (shape.getHeaderFooter() == null && shape.getImage() != null) + { + shape.getImage().add(watermark); + } + } + } + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithImageEffects.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithImageEffects.java new file mode 100644 index 0000000..304cb48 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithImageEffects.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingImageEffects; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingWatermarkSectionOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class WordProcessingAddWatermarkWithImageEffects { + /** + * This example shows how to apply image effects to the shape watermarks. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + ImageWatermark watermark = new ImageWatermark(Constants.LogoPng); + + WordProcessingImageEffects effects = new WordProcessingImageEffects(); + effects.setBrightness(0.7); + effects.setContrast(0.6); + effects.setChromaKey(Color.getRed()); + effects.getBorderLineFormat().setEnabled(true); + effects.getBorderLineFormat().setWeight(1); + + WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions(); + options.setEffects(effects); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithShapeSettings.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithShapeSettings.java new file mode 100644 index 0000000..148edf0 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithShapeSettings.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingWatermarkSectionOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddWatermarkWithShapeSettings { + /** + * This example shows how to set some additional options when adding shape watermark to a Word document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + + //Some settings for watermark + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setRotateAngle(25.0); + watermark.setForegroundColor(Color.getRed()); + watermark.setOpacity(1.0); + + WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions(); + + // Set the shape name + options.setName("Shape 1"); + + // Set the descriptive (alternative) text that will be associated with the shape + options.setAlternativeText("Test watermark"); + + watermarker.add(watermark, options); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithTextEffects.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithTextEffects.java new file mode 100644 index 0000000..9c0d468 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingAddWatermarkWithTextEffects.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.OfficeDashStyle; +import com.groupdocs.watermark.contents.OfficeLineStyle; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.options.WordProcessingTextEffects; +import com.groupdocs.watermark.options.WordProcessingWatermarkSectionOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class WordProcessingAddWatermarkWithTextEffects { + /** + * This example shows how to apply some text effects to the shape watermarks. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 19)); + + WordProcessingTextEffects effects = new WordProcessingTextEffects(); + effects.getLineFormat().setEnabled(true); + effects.getLineFormat().setColor(Color.getRed()); + effects.getLineFormat().setDashStyle(OfficeDashStyle.DashDotDot); + effects.getLineFormat().setLineStyle(OfficeLineStyle.Triple); + effects.getLineFormat().setWeight(1); + + WordProcessingWatermarkSectionOptions options = new WordProcessingWatermarkSectionOptions(); + options.setEffects(effects); + + watermarker.add(watermark, options); + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingFindWatermarkInHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingFindWatermarkInHeaderFooter.java new file mode 100644 index 0000000..5571132 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingFindWatermarkInHeaderFooter.java @@ -0,0 +1,42 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.OfficeHeaderFooterType; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.ImageSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class WordProcessingFindWatermarkInHeaderFooter { + /** + * This example shows how to search for particular header/footer. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + // Initialize search criteria + ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.LogoPng); + TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name"); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + PossibleWatermarkCollection possibleWatermarks = content + .getSections().get_Item(0) + .getHeadersFooters().getByOfficeHeaderFooterType(OfficeHeaderFooterType.HeaderPrimary) + .search(textSearchCriteria.or(imageSearchCriteria)); + + // Remove all found watermarks + for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--) + { + possibleWatermarks.removeAt(i); + } + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingGetSectionProperties.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingGetSectionProperties.java new file mode 100644 index 0000000..a66b1a3 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingGetSectionProperties.java @@ -0,0 +1,28 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingGetSectionProperties { + /** + * This example shows how to get some page properties for a section. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + System.out.println(content.getSections().get_Item(0).getPageSetup().getWidth()); + System.out.println(content.getSections().get_Item(0).getPageSetup().getHeight()); + System.out.println(content.getSections().get_Item(0).getPageSetup().getTopMargin()); + System.out.println(content.getSections().get_Item(0).getPageSetup().getRightMargin()); + System.out.println(content.getSections().get_Item(0).getPageSetup().getBottomMargin()); + System.out.println(content.getSections().get_Item(0).getPageSetup().getLeftMargin()); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingGetShapesInformation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingGetShapesInformation.java new file mode 100644 index 0000000..f9f99cf --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingGetShapesInformation.java @@ -0,0 +1,55 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingSection; +import com.groupdocs.watermark.contents.WordProcessingShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingGetShapesInformation { + /** + * This example shows how to extract the information about all the shapes. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + for (WordProcessingSection section : content.getSections()) + { + for (WordProcessingShape shape : section.getShapes()) + { + if (shape.getHeaderFooter() != null) + { + System.out.println("In header/footer"); + } + + System.out.println(shape.getShapeType()); + System.out.println(shape.getWidth()); + System.out.println(shape.getHeight()); + System.out.println(shape.isWordArt()); + System.out.println(shape.getRotateAngle()); + System.out.println(shape.getAlternativeText()); + System.out.println(shape.getName()); + System.out.println(shape.getX()); + System.out.println(shape.getY()); + System.out.println(shape.getText()); + if (shape.getImage() != null) + { + System.out.println(shape.getImage().getWidth()); + System.out.println(shape.getImage().getHeight()); + System.out.println(shape.getImage().getBytes().length); + } + + System.out.println(shape.getHorizontalAlignment()); + System.out.println(shape.getVerticalAlignment()); + System.out.println(shape.getRelativeHorizontalPosition()); + System.out.println(shape.getRelativeVerticalPosition()); + } + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingLinkAllHeaderFooterInSection.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingLinkAllHeaderFooterInSection.java new file mode 100644 index 0000000..18d2e0e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingLinkAllHeaderFooterInSection.java @@ -0,0 +1,26 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingLinkAllHeaderFooterInSection { + /** + * This example shows how to link all the headers/footers in a particular section. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + // Link footer for even numbered pages to corresponding footer in previous section + content.getSections().get_Item(1).getHeadersFooters().get_Item(1).setLinkedToPrevious(true); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingLinkHeaderFooterInSection.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingLinkHeaderFooterInSection.java new file mode 100644 index 0000000..2971314 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingLinkHeaderFooterInSection.java @@ -0,0 +1,27 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.OfficeHeaderFooterType; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingLinkHeaderFooterInSection { + /** + * This example shows how to link the header/footer. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + // Link footer for even numbered pages to corresponding footer in previous section + content.getSections().get_Item(1).getHeadersFooters().getByOfficeHeaderFooterType(OfficeHeaderFooterType.FooterEven).setLinkedToPrevious(true); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingModifyShapeProperties.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingModifyShapeProperties.java new file mode 100644 index 0000000..2ea5ba4 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingModifyShapeProperties.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingModifyShapeProperties { + /** + * This example shows how to modify properties of particular shapes in a Word document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + // Change shape properties + for (WordProcessingShape shape : content.getSections().get_Item(0).getShapes()) + { + if (shape.getText().contains("Some text")) + { + shape.setAlternativeText("watermark"); + shape.setRotateAngle(30); + shape.setX(200); + shape.setY(200); + shape.setHeight(100); + shape.setWidth(400); + shape.setBehindText(false); + } + } + + // Save document + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingProtectDocument.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingProtectDocument.java new file mode 100644 index 0000000..6b6480f --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingProtectDocument.java @@ -0,0 +1,26 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingProtectionType; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingProtectDocument { + /** + * This example shows how to protect a Word document with the password. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + content.protect(WordProcessingProtectionType.ReadOnly, "7654321"); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveHyperlinks.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveHyperlinks.java new file mode 100644 index 0000000..afb3f39 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveHyperlinks.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingRemoveHyperlinks { + /** + * This example shows how to remove/replace hyperlink associated with a particular shape inside a Word document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + // Replace hyperlink + content.getSections().get_Item(0).getShapes().get_Item(0).setHyperlink("https://www.groupdocs.com/"); + + // Remove hyperlink + content.getSections().get_Item(0).getShapes().get_Item(1).setHyperlink(null); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveShape.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveShape.java new file mode 100644 index 0000000..5be0674 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveShape.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingRemoveShape { + /** + * This example shows how to remove a particular shape from a Word document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + // Remove shape by index + content.getSections().get_Item(0).getShapes().removeAt(0); + + // Remove shape by reference + content.getSections().get_Item(0).getShapes().remove(content.getSections().get_Item(0).getShapes().get_Item(0)); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveShapesWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveShapesWithParticularTextFormatting.java new file mode 100644 index 0000000..062432d --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveShapesWithParticularTextFormatting.java @@ -0,0 +1,40 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingSection; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.search.FormattedTextFragment; +import com.groupdocs.watermark.watermarks.Color; + +public class WordProcessingRemoveShapesWithParticularTextFormatting { + /** + * This example shows how to find and remove the shapes with a particular text formatting. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + for (WordProcessingSection section : content.getSections()) + { + for (int i = section.getShapes().getCount() - 1; i >= 0; i--) + { + for (FormattedTextFragment fragment : section.getShapes().get_Item(i).getFormattedTextFragments()) + { + if (fragment.getForegroundColor().equals(Color.getRed()) && fragment.getFont().getFamilyName() == "Arial") + { + section.getShapes().removeAt(i); + break; + } + } + } + } + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveWatermarkFromSection.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveWatermarkFromSection.java new file mode 100644 index 0000000..ab04259 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingRemoveWatermarkFromSection.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.ImageSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class WordProcessingRemoveWatermarkFromSection { + /** + * This example shows how to remove watermark from a particular section. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + // Initialize search criteria + ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.LogoPng); + TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name"); + + // Call Search method for the section + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + PossibleWatermarkCollection possibleWatermarks = content.getSections().get_Item(0).search(textSearchCriteria.or(imageSearchCriteria)); + + // Remove all found watermarks + for (int i = possibleWatermarks.getCount() - 1; i >= 0; i--) + { + possibleWatermarks.removeAt(i); + } + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceShapeImage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceShapeImage.java new file mode 100644 index 0000000..e561ba5 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceShapeImage.java @@ -0,0 +1,45 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingShape; +import com.groupdocs.watermark.contents.WordProcessingWatermarkableImage; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingReplaceShapeImage { + /** + * This example shows how to replace the image of the particular shapes in a Word document. + */ + public static void run() throws Exception { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + File imageFile = new File(Constants.TestPng); + byte[] imageBytes = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageBytes); + imageInputStream.close(); + + // Set shape image + for (WordProcessingShape shape : content.getSections().get_Item(0).getShapes()) + { + if (shape.getImage() != null) + { + shape.setImage(new WordProcessingWatermarkableImage(imageBytes)); + } + } + + // Save document + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceShapeTextWithFormattedText.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceShapeTextWithFormattedText.java new file mode 100644 index 0000000..7c29951 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceShapeTextWithFormattedText.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class WordProcessingReplaceShapeTextWithFormattedText { + /** + * This example shows how to replace the text of the shapes with formatted text. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + // Set shape's text + for (WordProcessingShape shape : content.getSections().get_Item(0).getShapes()) + { + if (shape.getText().contains("Some text")) + { + shape.getFormattedTextFragments().clear(); + shape.getFormattedTextFragments().add("Another text", new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + } + + // Save document + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceTextForParticularShape.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceTextForParticularShape.java new file mode 100644 index 0000000..195277b --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingReplaceTextForParticularShape.java @@ -0,0 +1,34 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingShape; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingReplaceTextForParticularShape { + /** + * This example shows how to replace text for particular shapes in a Word document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + // Set shape's text + for (WordProcessingShape shape : content.getSections().get_Item(0).getShapes()) + { + if (shape.getText().contains("Some text")) + { + shape.setText("Another text"); + } + } + + // Save document + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingSetDifferentFirstPageHeaderFooter.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingSetDifferentFirstPageHeaderFooter.java new file mode 100644 index 0000000..3f1644e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingSetDifferentFirstPageHeaderFooter.java @@ -0,0 +1,26 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingSetDifferentFirstPageHeaderFooter { + /** + * This example shows how to set different headers/footers for even/odd numbered pages and for the first page of the document. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + content.getSections().get_Item(0).getPageSetup().setDifferentFirstPageHeaderFooter(true); + content.getSections().get_Item(0).getPageSetup().setOddAndEvenPagesHeaderFooter(true); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingShapeTypeUsage.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingShapeTypeUsage.java new file mode 100644 index 0000000..d89ce36 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingShapeTypeUsage.java @@ -0,0 +1,43 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.contents.WordProcessingSection; +import com.groupdocs.watermark.contents.WordProcessingShape; +import com.groupdocs.watermark.contents.WordProcessingShapeType; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class WordProcessingShapeTypeUsage { + /** + * This example demonstrates the usage of WordProcessingShapeType enum. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + for (WordProcessingSection section : content.getSections()) + { + for (WordProcessingShape shape : section.getShapes()) + { + //Check for Diagonal Corners Rounded shapes + if (shape.getShapeType() == WordProcessingShapeType.DiagonalCornersRounded) + { + System.out.println("Diagonal Corners Rounded shape found"); + + //Write text on all Diagonal Corners Rounded shapes + shape.getFormattedTextFragments().add("I am Diagonal Corner Rounded", new Font("Calibri", 8, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + } + } + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingUnProtectDocument.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingUnProtectDocument.java new file mode 100644 index 0000000..dcbae11 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/add_watermarks_to_word_processing/WordProcessingUnProtectDocument.java @@ -0,0 +1,25 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.add_watermarks_to_word_processing; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.contents.WordProcessingContent; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; + +public class WordProcessingUnProtectDocument { + /** + * This example shows how to unprotect a Word document regardless of password. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.docx" + Watermarker watermarker = new Watermarker(Constants.InDocumentDocx, loadOptions); + + WordProcessingContent content = watermarker.getContent(WordProcessingContent.class); + + content.unprotect(); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_image_watermarks/AddImageWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_image_watermarks/AddImageWatermark.java new file mode 100644 index 0000000..9242175 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_image_watermarks/AddImageWatermark.java @@ -0,0 +1,26 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_image_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class AddImageWatermark { + /** + * This example shows how to add image watermark from a local file. + */ + public static void run() { + // Constants.InPresentationPptx is an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" + Watermarker watermarker = new Watermarker(Constants.InPresentationPptx); + + // Use path to the image as constructor parameter + ImageWatermark watermark = new ImageWatermark(Constants.WatermarkJpg); + + // Add watermark to the document + watermarker.add(watermark); + + watermarker.save(Constants.OutPresentationPptx); + + watermark.close(); + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_image_watermarks/AddImageWatermarkUsingStream.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_image_watermarks/AddImageWatermarkUsingStream.java new file mode 100644 index 0000000..02ec9a7 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_image_watermarks/AddImageWatermarkUsingStream.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_image_watermarks; + +import java.io.FileInputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class AddImageWatermarkUsingStream { + /** + * This example shows how to an image watermark from stream. + */ + public static void run() throws Exception { + // Constants.WatermarkJpg is an absolute or relative path to your document. Ex: "C:\\Docs\\watermark.jpg" + FileInputStream watermarkStream = new FileInputStream(Constants.WatermarkJpg); + + Watermarker watermarker = new Watermarker(Constants.InImagePng); + + // Use stream containing an image as constructor parameter + ImageWatermark watermark = new ImageWatermark(watermarkStream); + + // Add watermark to the document + watermarker.add(watermark); + + watermarker.save(Constants.OutImagePng); + + watermark.close(); + watermarker.close(); + watermarkStream.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddTextWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddTextWatermark.java new file mode 100644 index 0000000..0480308 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddTextWatermark.java @@ -0,0 +1,38 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; +import com.groupdocs.watermark.watermarks.TextAlignment; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddTextWatermark { + /** + * This example shows how to add text watermark to a document. + */ + public static void run() { + // Constants.InImagePng is an absolute or relative path to your document. Ex: "C:\\Docs\\image.png" + Watermarker watermarker = new Watermarker(Constants.InImagePng); + + // Initialize the font to be used for watermark + Font font = new Font("Arial", 19, FontStyle.Bold | FontStyle.Italic); + + // Create the watermark object + TextWatermark watermark = new TextWatermark("Test watermark", font); + + // Set watermark properties + watermark.setForegroundColor(Color.getRed()); + watermark.setBackgroundColor(Color.getBlue()); + watermark.setTextAlignment(TextAlignment.Right); + watermark.setOpacity(0.5); + + // Add watermark + watermarker.add(watermark); + + watermarker.save(Constants.OutImagePng); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddTextWatermarkWithRotationAngle.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddTextWatermarkWithRotationAngle.java new file mode 100644 index 0000000..0647e31 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddTextWatermarkWithRotationAngle.java @@ -0,0 +1,34 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddTextWatermarkWithRotationAngle { + /** + * This example show how to rotate a watermark. + */ + public static void run() { + // Constants.InTestDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\test.docx" + Watermarker watermarker = new Watermarker(Constants.InTestDocx); + + Font font = new Font("Calibri", 8); + TextWatermark watermark = new TextWatermark("Test watermark", font); + watermark.setHorizontalAlignment(HorizontalAlignment.Right); + watermark.setVerticalAlignment(VerticalAlignment.Top); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(0.5); + + // Set rotation angle + watermark.setRotateAngle(45); + + watermarker.add(watermark); + watermarker.save(Constants.OutTestDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkToAbsolutePosition.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkToAbsolutePosition.java new file mode 100644 index 0000000..c611ef5 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkToAbsolutePosition.java @@ -0,0 +1,32 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddWatermarkToAbsolutePosition { + /** + * This example shows how to add a text watermark with absolute positioning. + */ + public static void run() { + // Constants.InImagePng is an absolute or relative path to your document. Ex: "C:\\Docs\\image.png" + Watermarker watermarker = new Watermarker(Constants.InImagePng); + + Font font = new Font("Times New Roman", 8); + TextWatermark watermark = new TextWatermark("Test watermark", font); + + // Set watermark coordinates + watermark.setX(10); + watermark.setY(20); + + // Set watermark size + watermark.setWidth(100); + watermark.setHeight(40); + + watermarker.add(watermark); + watermarker.save(Constants.OutImagePng); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkToRelativePosition.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkToRelativePosition.java new file mode 100644 index 0000000..d7a58c5 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkToRelativePosition.java @@ -0,0 +1,32 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddWatermarkToRelativePosition { + /** + * This example shows how to align the watermark vertically and horizontally. + */ + public static void run() { + // Constants.InImagePng is an absolute or relative path to your document. Ex: "C:\\Docs\\image.png + Watermarker watermarker = new Watermarker(Constants.InImagePng); + + Font font = new Font("Calibri", 12); + TextWatermark watermark = new TextWatermark("Test watermark", font); + watermark.setHorizontalAlignment(HorizontalAlignment.Right); + watermark.setVerticalAlignment(VerticalAlignment.Bottom); + + // Set absolute margins. Values are measured in document units. + watermark.getMargins().setRight(10); + watermark.getMargins().setBottom(5); + + watermarker.add(watermark); + watermarker.save(Constants.OutImagePng); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithMarginType.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithMarginType.java new file mode 100644 index 0000000..d7f2a92 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithMarginType.java @@ -0,0 +1,36 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.MarginType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddWatermarkWithMarginType { + /** + * This example shows how to set relative margins for a watermark. + */ + public static void run() { + // Constants.InImagePng is an absolute or relative path to your document. Ex: "C:\\Docs\\image.png" + Watermarker watermarker = new Watermarker(Constants.InImagePng); + + Font font = new Font("Calibri", 12); + TextWatermark watermark = new TextWatermark("Test watermark", font); + watermark.setHorizontalAlignment(HorizontalAlignment.Right); + watermark.setVerticalAlignment(VerticalAlignment.Bottom); + + // Set relative margins. Margin value will be interpreted as a portion + // of appropriate parent dimension. If this type is chosen, margin value + // must be between 0.0 and 1.0. + watermark.getMargins().setMarginType(MarginType.RelativeToParentDimensions); + watermark.getMargins().setRight(0.1); + watermark.getMargins().setBottom(0.2); + + watermarker.add(watermark); + watermarker.save(Constants.OutImagePng); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithParentMargin.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithParentMargin.java new file mode 100644 index 0000000..f9573bb --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithParentMargin.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddWatermarkWithParentMargin { + /** + * This example shows how to consider parent margins. + */ + public static void run() { + // Constants.InInputVsdx is an absolute or relative path to your document. Ex: "C:\\Docs\\input.vsdx" + Watermarker watermarker = new Watermarker(Constants.InInputVsdx); + + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 42)); + watermark.setHorizontalAlignment(HorizontalAlignment.Right); + watermark.setVerticalAlignment(VerticalAlignment.Top); + watermark.setSizingType(SizingType.ScaleToParentDimensions); + watermark.setScaleFactor(1); + watermark.setRotateAngle(45); + watermark.setForegroundColor(Color.getRed()); + watermark.setBackgroundColor(Color.getAqua()); + + // Add watermark considering parent margins + watermark.setConsiderParentMargins(true); + + watermarker.add(watermark); + watermarker.save(Constants.OutInputVsdx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithSizeType.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithSizeType.java new file mode 100644 index 0000000..cd386ec --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/adding_watermarks/adding_text_watermarks/AddWatermarkWithSizeType.java @@ -0,0 +1,31 @@ +package com.groupdocs.watermark.examples.advanced_usage.adding_watermarks.adding_text_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.SizingType; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class AddWatermarkWithSizeType { + /** + * This example shows how to consider the size of the page/slide/frame on which a watermark will be placed. + */ + public static void run() { + // Constants.InImagePng is an absolute or relative path to your document. Ex: "C:\\Docs\\image.png" + Watermarker watermarker = new Watermarker(Constants.InImagePng); + + Font font = new Font("Calibri", 12); + TextWatermark watermark = new TextWatermark("This is a test watermark", font); + + // Set sizing type + watermark.setSizingType(SizingType.ScaleToParentDimensions); + + // Set watermark scale + watermark.setScaleFactor(0.5); + + watermarker.add(watermark); + watermarker.save(Constants.OutImagePng); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadFromLocalDisk.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadFromLocalDisk.java new file mode 100644 index 0000000..10d6a08 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadFromLocalDisk.java @@ -0,0 +1,23 @@ +package com.groupdocs.watermark.examples.advanced_usage.loading_documents; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class LoadFromLocalDisk { + /** + * This example demonstrates how to create a watermarker for a local filesystem document. + */ + public static void run() { + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: @"C:\\Docs\\document.docx" + String filePath = Constants.InDocumentDocx; + Watermarker watermarker = new Watermarker(filePath); + // use watermarker methods to manage watermarks + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 12)); + + watermarker.add(watermark); + watermarker.save(Constants.OutDocumentDocx); + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadFromStream.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadFromStream.java new file mode 100644 index 0000000..682c45e --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadFromStream.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.loading_documents; + +import java.io.FileInputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class LoadFromStream { + /** + * This example demonstrates how to create a watermarker for a document stream. + */ + public static void run() throws Exception { + // Constants.InDocumentDocx is an absolute or relative path to your document. Ex: @"C:\\Docs\\document.docx" + FileInputStream document = new FileInputStream(Constants.InDocumentDocx); + Watermarker watermarker = new Watermarker(document); + + // use watermarker methods to manage watermarks + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 12)); + + watermarker.add(watermark); + + watermarker.save(Constants.OutDocumentDocx); + + watermarker.close(); + document.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadPasswordProtectedDocument.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadPasswordProtectedDocument.java new file mode 100644 index 0000000..e53792d --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadPasswordProtectedDocument.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.loading_documents; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.LoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class LoadPasswordProtectedDocument { + /** + * This example demonstrates how to load an encrypted document using the password. + */ + public static void run() { + LoadOptions loadOptions = new LoadOptions(); + loadOptions.setPassword("P@$$w0rd"); + // Constants.InProtectedDocumentDocx is an absolute or relative path to your document. Ex: @"C:\\Docs\\protected-document.docx" + String filePath = Constants.InProtectedDocumentDocx; + Watermarker watermarker = new Watermarker(filePath, loadOptions); + + // use watermarker methods to manage watermarks in the document + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 12)); + + watermarker.add(watermark); + + watermarker.save(Constants.OutProtectedDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadPasswordProtectedWordProcessingDocument.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadPasswordProtectedWordProcessingDocument.java new file mode 100644 index 0000000..dde0218 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadPasswordProtectedWordProcessingDocument.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.loading_documents; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.WordProcessingLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class LoadPasswordProtectedWordProcessingDocument { + /** + * This example demonstrates how to load an encrypted WordProcessing document using the password. + */ + public static void run() { + WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions(); + loadOptions.setPassword("P@$$w0rd"); + // Constants.InProtectedDocumentDocx is an absolute or relative path to your document. Ex: @"C:\\Docs\\protected-document.docx" + String filePath = Constants.InProtectedDocumentDocx; + Watermarker watermarker = new Watermarker(filePath, loadOptions); + + // use watermarker methods to manage watermarks in the WordProcessing document + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 12)); + + watermarker.add(watermark); + + watermarker.save(Constants.OutProtectedDocumentDocx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadingDocumentOfSpecificFormat.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadingDocumentOfSpecificFormat.java new file mode 100644 index 0000000..5d1b940 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/loading_documents/LoadingDocumentOfSpecificFormat.java @@ -0,0 +1,28 @@ +package com.groupdocs.watermark.examples.advanced_usage.loading_documents; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.SpreadsheetLoadOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class LoadingDocumentOfSpecificFormat { + /** + * This example demonstrates how to create a watermarker for the Spreadsheet document. + */ + public static void run() { + // Constants.InSpreadsheetXlsx is an absolute or relative path to your document. Ex: @"C:\\Docs\\spreadsheet.xlsx" + String filePath = Constants.InSpreadsheetXlsx; + SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions(); + Watermarker watermarker = new Watermarker(filePath, loadOptions); + + // use watermarker methods to manage watermarks in the Spreadsheet document + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 12)); + + watermarker.add(watermark); + + watermarker.save(Constants.OutSpreadsheetXlsx); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/saving_documents/SaveDocumentToTheSpecifiedLocation.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/saving_documents/SaveDocumentToTheSpecifiedLocation.java new file mode 100644 index 0000000..f8e26b3 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/saving_documents/SaveDocumentToTheSpecifiedLocation.java @@ -0,0 +1,25 @@ +package com.groupdocs.watermark.examples.advanced_usage.saving_documents; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SaveDocumentToTheSpecifiedLocation { + /** + * This example shows how to save the document to the specified location. + */ + public static void run() { + // Constants.InTestDoc is an absolute or relative path to your document. Ex: "C:\\Docs\\test.doc" + Watermarker watermarker = new Watermarker(Constants.InTestDoc); + + // watermarking goes here + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 12)); + watermarker.add(watermark); + + // Saves the document to the specified location + watermarker.save(Constants.OutTestDoc); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/saving_documents/SaveDocumentToTheSpecifiedStream.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/saving_documents/SaveDocumentToTheSpecifiedStream.java new file mode 100644 index 0000000..5429069 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/saving_documents/SaveDocumentToTheSpecifiedStream.java @@ -0,0 +1,30 @@ +package com.groupdocs.watermark.examples.advanced_usage.saving_documents; + +import java.io.ByteArrayOutputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class SaveDocumentToTheSpecifiedStream { + /** + * This example shows how to save the document to the specified stream. + */ + public static void run() throws Exception { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + + // Constants.InTestDoc is an absolute or relative path to your document. Ex: "C:\\Docs\\test.doc" + Watermarker watermarker = new Watermarker(Constants.InTestDoc); + + // watermarking goes here + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 12)); + watermarker.add(watermark); + + // Saves the document to the specified stream + watermarker.save(outputStream); + + watermarker.close(); + outputStream.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyImageInFoundWatermarks.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyImageInFoundWatermarks.java new file mode 100644 index 0000000..4d48e69 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyImageInFoundWatermarks.java @@ -0,0 +1,51 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermark; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.SearchCriteria; + +public class ModifyImageInFoundWatermarks { + /** + * This example shows how to replace the image of the found watermarks. + */ + public static void run() throws Exception { + File imageFile = new File(Constants.ImagePng); + byte[] imageData = new byte[(int) imageFile.length()]; + InputStream imageInputStream = new FileInputStream(imageFile); + imageInputStream.read(imageData); + imageInputStream.close(); + + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + // Search watermark matching a particular image + SearchCriteria searchCriteria = new ImageDctHashSearchCriteria(Constants.LogoBmp); + PossibleWatermarkCollection watermarks = watermarker.search(searchCriteria); + for (PossibleWatermark watermark : watermarks) + { + try + { + // Replace image + watermark.setImageData(imageData); + } + catch (Exception e) + { + // Found entity may not support image replacement + // Passed image can have inappropriate format + // Process such cases here + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyTextInFoundWatermarks.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyTextInFoundWatermarks.java new file mode 100644 index 0000000..c0090d7 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyTextInFoundWatermarks.java @@ -0,0 +1,39 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PossibleWatermark; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class ModifyTextInFoundWatermarks { + /** + * This example shows how to replace text of the found watermarks. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + TextSearchCriteria searchCriteria = new TextSearchCriteria("test", false); + PossibleWatermarkCollection watermarks = watermarker.search(searchCriteria); + for (PossibleWatermark watermark : watermarks) + { + try + { + // Edit text + watermark.setText("passed"); + } + catch (Exception e) + { + // Found entity may not support text editing + // Passed argument can have inappropriate value + // Process such cases here + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyTextWithFormattingInFoundWatermarks.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyTextWithFormattingInFoundWatermarks.java new file mode 100644 index 0000000..55724e2 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/ModifyTextWithFormattingInFoundWatermarks.java @@ -0,0 +1,43 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PossibleWatermark; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; +import com.groupdocs.watermark.watermarks.Color; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; + +public class ModifyTextWithFormattingInFoundWatermarks { + /** + * This example shows how to replace the watermark's text with formatting. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + TextSearchCriteria searchCriteria = new TextSearchCriteria("test", false); + PossibleWatermarkCollection watermarks = watermarker.search(searchCriteria); + for (PossibleWatermark watermark : watermarks) + { + try + { + // Edit text + watermark.getFormattedTextFragments().clear(); + watermark.getFormattedTextFragments().add("passed", new Font("Calibri", 19, FontStyle.Bold), Color.getRed(), Color.getAqua()); + } + catch (Exception e) + { + // Found entity may not support text editing + // Passed arguments can have inappropriate value + // Process such cases here + } + } + + // Save document + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveHyperlinksWithParticularUrl.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveHyperlinksWithParticularUrl.java new file mode 100644 index 0000000..919dbe2 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveHyperlinksWithParticularUrl.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import java.util.regex.Pattern; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.HyperlinkPossibleWatermark; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class RemoveHyperlinksWithParticularUrl { + /** + * This example shows how to search and remove hyperlinks in a document of any supported format. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + PossibleWatermarkCollection watermarks = watermarker.search(new TextSearchCriteria(Pattern.compile("someurl\\.com"))); + for (int i = watermarks.getCount() - 1; i >= 0; i--) + { + // Ensure that only hyperlinks will be removed. + if (HyperlinkPossibleWatermark.class.isInstance(watermarks.get_Item(i))) + { + // Output the full url of the hyperlink + System.out.println(watermarks.get_Item(i).getText()); + + // Remove hyperlink from the document + watermarks.removeAt(i); + } + } + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveWatermark.java new file mode 100644 index 0000000..f837a32 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveWatermark.java @@ -0,0 +1,27 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; + +public class RemoveWatermark { + /** + * This example shows how to find and remove a particular watermark from a document. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + PossibleWatermarkCollection possibleWatermarks = watermarker.search(); + + // Remove possible watermark at the specified index from the document. + possibleWatermarks.removeAt(0); + + // Remove specified possible watermark from the document. + possibleWatermarks.remove(possibleWatermarks.get_Item(0)); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveWatermarkWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveWatermarkWithParticularTextFormatting.java new file mode 100644 index 0000000..3aaad4c --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/RemoveWatermarkWithParticularTextFormatting.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.ColorRange; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextFormattingSearchCriteria; + +public class RemoveWatermarkWithParticularTextFormatting { + /** + * This example shows how to search and remove the watermarks on the basis of some particular text formatting. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria(); + criteria.setForegroundColorRange(new ColorRange()); + criteria.getForegroundColorRange().setMinHue(-5); + criteria.getForegroundColorRange().setMaxHue(10); + criteria.getForegroundColorRange().setMinBrightness(0.01f); + criteria.getForegroundColorRange().setMaxBrightness(0.99f); + criteria.setBackgroundColorRange(new ColorRange()); + criteria.getBackgroundColorRange().setEmpty(true); + criteria.setFontName("Arial"); + criteria.setMinFontSize(19); + criteria.setMaxFontSize(42); + criteria.setFontBold(true); + + PossibleWatermarkCollection watermarks = watermarker.search(criteria); + watermarks.clear(); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchImageWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchImageWatermark.java new file mode 100644 index 0000000..fa94735 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchImageWatermark.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.ImageSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; + +public class SearchImageWatermark { + /** + * This example shows how to search for image watermarks that resemble with a particular image. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + // Initialize criteria with the image + ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.WatermarkJpg); + + //Set maximum allowed difference between images + imageSearchCriteria.setMaxDifference(0.9); + + PossibleWatermarkCollection possibleWatermarks = watermarker.search(imageSearchCriteria); + + System.out.println("Found " + possibleWatermarks.getCount() + " possible watermark(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchTextWatermarkSkippingUnreadableCharacters.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchTextWatermarkSkippingUnreadableCharacters.java new file mode 100644 index 0000000..05cfc91 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchTextWatermarkSkippingUnreadableCharacters.java @@ -0,0 +1,30 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class SearchTextWatermarkSkippingUnreadableCharacters { + /** + * This example shows how to skip unreadable characters when searching for the watermark. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + String watermarkText = "Company name"; + TextSearchCriteria criterion = new TextSearchCriteria(watermarkText); + + // Enable skipping of unreadable characters + criterion.setSkipUnreadableCharacters(true); + + PossibleWatermarkCollection result = watermarker.search(criterion); + + // ... + + System.out.println("Found " + result.getCount() + " possible watermark(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermark.java new file mode 100644 index 0000000..dff0c35 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermark.java @@ -0,0 +1,34 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PossibleWatermark; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; + +public class SearchWatermark { + /** + * This example shows how to find and get all possible watermarks in a document. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + PossibleWatermarkCollection possibleWatermarks = watermarker.search(); + for (PossibleWatermark possibleWatermark : possibleWatermarks) + { + if (possibleWatermark.getImageData() != null) + { + System.out.println(possibleWatermark.getImageData().length); + } + + System.out.println(possibleWatermark.getText()); + System.out.println(possibleWatermark.getX()); + System.out.println(possibleWatermark.getY()); + System.out.println(possibleWatermark.getRotateAngle()); + System.out.println(possibleWatermark.getWidth()); + System.out.println(possibleWatermark.getHeight()); + } + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkInParticularObjectsAllInstances.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkInParticularObjectsAllInstances.java new file mode 100644 index 0000000..d986050 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkInParticularObjectsAllInstances.java @@ -0,0 +1,49 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import java.io.File; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.WatermarkerSettings; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.DiagramSearchableObjects; +import com.groupdocs.watermark.search.PdfSearchableObjects; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.PresentationSearchableObjects; +import com.groupdocs.watermark.search.SearchableObjects; +import com.groupdocs.watermark.search.SpreadsheetSearchableObjects; +import com.groupdocs.watermark.search.WordProcessingSearchableObjects; + +public class SearchWatermarkInParticularObjectsAllInstances { + /** + * This example shows how to set searchable objects globally (for all documents that will be created after that). + */ + public static void run() { + WatermarkerSettings settings = new WatermarkerSettings(); + settings.setSearchableObjects(new SearchableObjects()); + settings.getSearchableObjects().setWordProcessingSearchableObjects(WordProcessingSearchableObjects.Hyperlinks | WordProcessingSearchableObjects.Text); + settings.getSearchableObjects().setSpreadsheetSearchableObjects(SpreadsheetSearchableObjects.HeadersFooters); + settings.getSearchableObjects().setPresentationSearchableObjects(PresentationSearchableObjects.SlidesBackgrounds | PresentationSearchableObjects.Shapes); + settings.getSearchableObjects().setDiagramSearchableObjects(DiagramSearchableObjects.None); + settings.getSearchableObjects().setPdfSearchableObjects(PdfSearchableObjects.All); + + String[] files = { Constants.InDocumentDocx, + Constants.InSpreadsheetXlsx, + Constants.InPresentationPptx, + Constants.InDiagramVsdx, + Constants.InDocumentPdf }; + + for (String file : files) + { + Watermarker watermarker = new Watermarker(file, settings); + + PossibleWatermarkCollection watermarks = watermarker.search(); + + // The code for working with found watermarks goes here. + + System.out.println("In " + new File(file).getName() + " found " + watermarks.getCount() + " possible watermark(s)."); + + watermarker.close(); + } + + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkInParticularObjectsForParticularDocument.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkInParticularObjectsForParticularDocument.java new file mode 100644 index 0000000..1187d01 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkInParticularObjectsForParticularDocument.java @@ -0,0 +1,26 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PdfSearchableObjects; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; + +public class SearchWatermarkInParticularObjectsForParticularDocument { + /** + * This example shows how to set searchable objects for a particular Watermarker instance. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + // Search for hyperlinks only. + watermarker.getSearchableObjects().setPdfSearchableObjects(PdfSearchableObjects.Hyperlinks); + PossibleWatermarkCollection watermarks = watermarker.search(); + + // The code for working with found watermarks goes here. + + System.out.println("Found " + watermarks.getCount() + " possible watermark(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithCombinedSearch.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithCombinedSearch.java new file mode 100644 index 0000000..d8ef379 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithCombinedSearch.java @@ -0,0 +1,35 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.ImageDctHashSearchCriteria; +import com.groupdocs.watermark.search.ImageSearchCriteria; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.RotateAngleSearchCriteria; +import com.groupdocs.watermark.search.SearchCriteria; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class SearchWatermarkWithCombinedSearch { + /** + * This example shows how to search watermark with the combination of different search criteria. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.LogoPng); + imageSearchCriteria.setMaxDifference(0.9); + + TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name"); + + RotateAngleSearchCriteria rotateAngleSearchCriteria = new RotateAngleSearchCriteria(30, 60); + + SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria) + .and(rotateAngleSearchCriteria); + PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria); + + System.out.println("Found " + possibleWatermarks.getCount() + " possible watermark(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithParticularTextFormatting.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithParticularTextFormatting.java new file mode 100644 index 0000000..27f3564 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithParticularTextFormatting.java @@ -0,0 +1,37 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.ColorRange; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextFormattingSearchCriteria; + +public class SearchWatermarkWithParticularTextFormatting { + /** + * This example shows how to search watermark with a particular text formatting. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + TextFormattingSearchCriteria criteria = new TextFormattingSearchCriteria(); + criteria.setForegroundColorRange(new ColorRange()); + criteria.getForegroundColorRange().setMinHue(-5); + criteria.getForegroundColorRange().setMaxHue(10); + criteria.getForegroundColorRange().setMinBrightness(0.01f); + criteria.getForegroundColorRange().setMaxBrightness(0.99f); + criteria.setBackgroundColorRange(new ColorRange()); + criteria.getBackgroundColorRange().setEmpty(true); + criteria.setFontName("Arial"); + criteria.setMinFontSize(19); + criteria.setMaxFontSize(42); + criteria.setFontBold(true); + + PossibleWatermarkCollection watermarks = watermarker.search(criteria); + // The code for working with found watermarks goes here. + + System.out.println("Found " + watermarks.getCount() + " possible watermark(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithRegularExpression.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithRegularExpression.java new file mode 100644 index 0000000..c0499f1 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithRegularExpression.java @@ -0,0 +1,30 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import java.util.regex.Pattern; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class SearchWatermarkWithRegularExpression { + /** + * This example shows how to use a regular expression to search for watermarks. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + Pattern pattern = Pattern.compile(" \\d{4}$"); + + // Search by regular expression + TextSearchCriteria textSearchCriteria = new TextSearchCriteria(pattern); + + // Find possible watermarks using regular expression + PossibleWatermarkCollection possibleWatermarks = watermarker.search(textSearchCriteria); + + System.out.println("Found " + possibleWatermarks.getCount() + " possible watermark(s)."); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithSearchString.java b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithSearchString.java new file mode 100644 index 0000000..c40313a --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/advanced_usage/searching_and_modifying_watermarks/SearchWatermarkWithSearchString.java @@ -0,0 +1,26 @@ +package com.groupdocs.watermark.examples.advanced_usage.searching_and_modifying_watermarks; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.search.PossibleWatermarkCollection; +import com.groupdocs.watermark.search.TextSearchCriteria; + +public class SearchWatermarkWithSearchString { + /** + * This example shows how to search for the watermarks that meet a particular text criterion. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + // Search by exact string + TextSearchCriteria textSearchCriteria = new TextSearchCriteria(" 2017"); + + // Find all possible watermarks containing some specific text + PossibleWatermarkCollection possibleWatermarks = watermarker.search(textSearchCriteria); + + System.out.println("Found " + possibleWatermarks.getCount() + " possible watermark(s)"); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/AddATextWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/AddATextWatermark.java new file mode 100644 index 0000000..44cd4fa --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/AddATextWatermark.java @@ -0,0 +1,28 @@ +package com.groupdocs.watermark.examples.basic_usage; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.*; + +public class AddATextWatermark { + /** + * This example demonstrates how to add a text watermark to a local document. + */ + public static void run() { + // Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" + Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + + TextWatermark watermark = new TextWatermark("top secret", new Font("Arial", 36)); + watermark.setForegroundColor(Color.getRed()); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermark.setOpacity(0.4); + watermarker.add(watermark); + + watermarker.save(Constants.OutDocumentPdf); + + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/AddAnImageWatermark.java b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/AddAnImageWatermark.java new file mode 100644 index 0000000..857e895 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/AddAnImageWatermark.java @@ -0,0 +1,32 @@ +package com.groupdocs.watermark.examples.basic_usage; + +import java.io.FileInputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.HorizontalAlignment; +import com.groupdocs.watermark.common.VerticalAlignment; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.watermarks.ImageWatermark; + +public class AddAnImageWatermark { + /** + * This example demonstrates how to add an image watermark to a document from a stream. + */ + public static void run() throws Exception { + // Constants.InDocumentXlsx is an absolute or relative path to your document. Ex: "C:\\Docs\\document.xlsx" + FileInputStream stream = new FileInputStream(Constants.InDocumentXlsx); + + Watermarker watermarker = new Watermarker(stream); + + ImageWatermark watermark = new ImageWatermark(Constants.LogoPng); + watermark.setHorizontalAlignment(HorizontalAlignment.Center); + watermark.setVerticalAlignment(VerticalAlignment.Center); + watermarker.add(watermark); + + watermarker.save(Constants.OutDocumentXlsx); + + watermark.close(); + watermarker.close(); + stream.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GenerateDocumentPreview.java b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GenerateDocumentPreview.java new file mode 100644 index 0000000..646cc2f --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GenerateDocumentPreview.java @@ -0,0 +1,60 @@ +package com.groupdocs.watermark.examples.basic_usage; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.ICreatePageStream; +import com.groupdocs.watermark.options.IReleasePageStream; +import com.groupdocs.watermark.options.PreviewOptions; +import java.io.File; +import java.io.FileOutputStream; +import java.io.OutputStream; + +public class GenerateDocumentPreview { + /** + * This example demonstrates how to generate preview for a document. + */ + public static void run() { + // Constants.InDiagramVdx is an absolute or relative path to your document. Ex: "C:\\Docs\\diagram.vdx" + Watermarker watermarker = new Watermarker(Constants.InDiagramVsdx); + + String fileNameTemplate = new File(Constants.OutputPath, "page%s.png").getPath(); + ICreatePageStream createPageStream = new CreatePageStream(fileNameTemplate); + + IReleasePageStream releasePageStream = new ReleasePageStream(); + + PreviewOptions previewOptions = new PreviewOptions(createPageStream, releasePageStream); + + watermarker.generatePreview(previewOptions); + + watermarker.close(); + } + + static class CreatePageStream implements ICreatePageStream { + private final String _fileNameTemplate; + + public CreatePageStream(String fileNameTemplate) { + _fileNameTemplate = fileNameTemplate; + } + + @Override + public java.io.OutputStream createPageStream(int pageNumber) { + String fileName = String.format(_fileNameTemplate, pageNumber); + try { + return new FileOutputStream(fileName); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + } + + static class ReleasePageStream implements IReleasePageStream { + @Override + public void releasePageStream(int pageNumber, OutputStream pageStream) { + try { + pageStream.close(); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetDocumentInfoForTheFileFromLocalDisk.java b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetDocumentInfoForTheFileFromLocalDisk.java new file mode 100644 index 0000000..3e53c71 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetDocumentInfoForTheFileFromLocalDisk.java @@ -0,0 +1,20 @@ +package com.groupdocs.watermark.examples.basic_usage; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.IDocumentInfo; +import com.groupdocs.watermark.examples.Constants; + +public class GetDocumentInfoForTheFileFromLocalDisk { + /** + * This example demonstrates how to get document information from the local file. + */ + public static void run() { + // Constants.InSourceDocx is an absolute or relative path to your document. Ex.: "C:\\Docs\\source.docx" + Watermarker watermarker = new Watermarker(Constants.InSourceDocx); + IDocumentInfo info = watermarker.getDocumentInfo(); + System.out.println("File type: " + info.getFileType()); + System.out.println("Number of pages: " + info.getPageCount()); + System.out.println("Document size: " + info.getSize() + " bytes"); + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetDocumentInfoForTheFileFromStream.java b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetDocumentInfoForTheFileFromStream.java new file mode 100644 index 0000000..ee6bb66 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetDocumentInfoForTheFileFromStream.java @@ -0,0 +1,24 @@ +package com.groupdocs.watermark.examples.basic_usage; + +import java.io.FileInputStream; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.common.IDocumentInfo; +import com.groupdocs.watermark.examples.Constants; + +public class GetDocumentInfoForTheFileFromStream { + /** + * This example demonstrates how to get document information from the file stream. + */ + public static void run() throws Exception { + // Constants.InSourceDocx is an absolute or relative path to your document. Ex: "C:\\Docs\\source.docx" + FileInputStream stream = new FileInputStream(Constants.InSourceDocx); + Watermarker watermarker = new Watermarker(stream); + IDocumentInfo info = watermarker.getDocumentInfo(); + System.out.println("File type: " + info.getFileType()); + System.out.println("Number of pages: " + info.getPageCount()); + System.out.println("Document size: " + info.getSize() + " bytes"); + watermarker.close(); + stream.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetSupportedFileFormats.java b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetSupportedFileFormats.java new file mode 100644 index 0000000..dc4bb01 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/basic_usage/GetSupportedFileFormats.java @@ -0,0 +1,12 @@ +package com.groupdocs.watermark.examples.basic_usage; + +import com.groupdocs.watermark.common.FileType; + +public class GetSupportedFileFormats { + public static void run() { + FileType[] fileTypes = FileType.getSupportedFileTypes(); + for(FileType fileType : fileTypes) { + System.out.println(fileType); + } + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/HelloWorld.java b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/HelloWorld.java new file mode 100644 index 0000000..98e50c9 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/HelloWorld.java @@ -0,0 +1,24 @@ +package com.groupdocs.watermark.examples.quick_start; + +import com.groupdocs.watermark.Watermarker; +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.options.PdfLoadOptions; +import com.groupdocs.watermark.options.PdfXObjectWatermarkOptions; +import com.groupdocs.watermark.watermarks.Font; +import com.groupdocs.watermark.watermarks.FontStyle; +import com.groupdocs.watermark.watermarks.TextWatermark; + +public class HelloWorld { + public static void run() { + String documentPath = Constants.InDocumentPdf; // NOTE: Put here actual path for your document + PdfLoadOptions loadOptions = new PdfLoadOptions(); + Watermarker watermarker = new Watermarker(documentPath, loadOptions); + TextWatermark watermark = new TextWatermark("Test watermark", new Font("Arial", 36, FontStyle.Bold | FontStyle.Italic)); + PdfXObjectWatermarkOptions options = new PdfXObjectWatermarkOptions(); + options.setPageIndex(0); + + watermarker.add(watermark, options); + watermarker.save(Constants.OutDocumentPdf); + watermarker.close(); + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetLicenseFromFile.java b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetLicenseFromFile.java new file mode 100644 index 0000000..de9015c --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetLicenseFromFile.java @@ -0,0 +1,30 @@ +package com.groupdocs.watermark.examples.quick_start; + +import java.io.File; + +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.licenses.License; + +public class SetLicenseFromFile { + /** + * This example demonstrates how to set license from file. + * + * The SetLicense method attempts to set a license from several locations relative to the executable. + * You can also use the additional overload to load a license from a stream, + * this is useful for instance when the License is stored as an embedded resource. + */ + public static void run() { + File licenseFile = new File(Constants.LicenseFilePath); + if (licenseFile.exists()) { + License license = new License(); + license.setLicense(Constants.LicenseFilePath); + + System.out.println("License set successfully."); + } else { + System.out.println("\nWe do not ship any license with this example. " + + "\nVisit the GroupDocs site to obtain either a temporary or permanent license. " + + "\nLearn more about licensing at https://purchase.groupdocs.com/faqs/licensing. " + + "\nLear how to request temporary license at https://purchase.groupdocs.com/temporary-license."); + } + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetLicenseFromStream.java b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetLicenseFromStream.java new file mode 100644 index 0000000..fd981f8 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetLicenseFromStream.java @@ -0,0 +1,29 @@ +package com.groupdocs.watermark.examples.quick_start; + +import java.io.File; +import java.io.FileInputStream; + +import com.groupdocs.watermark.examples.Constants; +import com.groupdocs.watermark.licenses.License; + +public class SetLicenseFromStream { + /** + * This example demonstrates how to set license from stream. + */ + public static void run() throws Exception { + File licenseFile = new File(Constants.LicenseFilePath); + if (licenseFile.exists()) { + FileInputStream stream = new FileInputStream(licenseFile); + License license = new License(); + license.setLicense(stream); + stream.close(); + + System.out.println("License set successfully."); + } else { + System.out.println("\nWe do not ship any license with this example. " + + "\nVisit the GroupDocs site to obtain either a temporary or permanent license. " + + "\nLearn more about licensing at https://purchase.groupdocs.com/faqs/licensing. " + + "\nLear how to request temporary license at https://purchase.groupdocs.com/temporary-license."); + } + } +} diff --git a/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetMeteredLicense.java b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetMeteredLicense.java new file mode 100644 index 0000000..b8b3cf4 --- /dev/null +++ b/Examples/src/main/java/com/groupdocs/watermark/examples/quick_start/SetMeteredLicense.java @@ -0,0 +1,15 @@ +package com.groupdocs.watermark.examples.quick_start; + +import com.groupdocs.watermark.licenses.Metered; + +public class SetMeteredLicense { + public static void run() throws Exception { + String publicKey = "*****"; + String privateKey = "*****"; + + Metered metered = new Metered(); + metered.setMeteredKey(publicKey, privateKey); + + System.out.println("License set successfully."); + } +} diff --git a/Examples/GroupDocs.Watermark-for-Java/src/main/resources/project.properties b/Examples/src/main/resources/project.properties similarity index 100% rename from Examples/GroupDocs.Watermark-for-Java/src/main/resources/project.properties rename to Examples/src/main/resources/project.properties diff --git a/LICENSE b/LICENSE index d31b697..797bf7e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018 Aspose Pty Ltd +Copyright (c) 2020 Aspose Pty Ltd Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index bf0407b..cbe4149 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,186 @@ -# GroupDocs.Watermark for Java +# GroupDocs.Watermark Java Examples - Protect Documents with Watermarks -This package contains [Examples](https://github.com/groupdocs-watermark/GroupDocs.Watermark-for-Java/tree/master/Examples) for [GroupDocs.Watermark for Java](https://products.groupdocs.com/watermark/java) that will help you in understanding the API's working and writing your own applications. +**Document security** through comprehensive watermarking solutions for Java applications. This repository provides complete examples demonstrating **how to watermark files**, **add watermark**, **create watermark**, **remove watermark**, and implement **invisible watermarking for documents** using GroupDocs.Watermark for Java. -GroupDocs.Watermark is a library for adding text and image watermarks to documents of different formats. It also provides an easy way to search and remove previously added watermarks (including watermarks added by third-party tools). Supported file formats include MS Word documents, MS PowerPoint documents, MS Excel documents, PDF documenst, BMP, PNG, GIF, TIFF, JPEG, and many more. +## 🔐 Enterprise Document Security & Content Protection -

+**Protect documents with watermarks** across 40+ file formats with powerful **content protection with watermarking** capabilities: - - - -

+- **Custom watermark** creation with personalized text and images +- **Customize watermark** appearance, positioning, and transparency +- **Custom fonts** support for branded watermarking solutions +- **Watermark automation for enterprise** Java workflows +- Advanced search and removal capabilities +- **Invisible watermarking for documents** with steganographic techniques +- **Tiling watermarks** across entire document pages for comprehensive coverage -Directory | Description ---------- | ----------- -[Examples](https://github.com/groupdocs-watermark/GroupDocs.Watermark-for-Java/tree/master/Examples) | Contains the package of all the examples and sample files that will help you learn how to use API features. -## Resources +## 📁 Repository Structure -+ **Website:** [www.groupdocs.com](http://www.groupdocs.com) -+ **Product Home:** [GroupDocs.Watermark for Java](https://products.groupdocs.com/watermark/java) -+ **Download:** [Download GroupDocs.Watermark for Java](https://artifact.groupdocs.com/repo/com/groupdocs/groupdocs-watermark/) -+ **API Reference:** [GroupDocs.Watermark for Java API Reference Guide](https://apireference.groupdocs.com/java/watermark) -+ **Documentation:** [GroupDocs.Watermark for Java Documentation](https://docs.groupdocs.com/display/watermarkjava/Introducing+GroupDocs.Watermark+for+Java) -+ **Free Support:** [GroupDocs.Watermark for Java Free Support Forum](https://forum.groupdocs.com/c/watermark) -+ **Paid Support:** [GroupDocs.Watermark for Java Paid Support Helpdesk](https://helpdesk.groupdocs.com/) -+ **Blog:** [GroupDocs.Watermark for Java Blog](https://blog.groupdocs.com/category/groupdocs-watermark-product-family/) +| Directory | Description | +|-----------|-------------| +| [Examples](./Examples) | Complete Java examples showing **how to watermark a** document and implement **document security** | +## 🚀 Quick Start - How to Watermark Documents in Java + +### Add Watermark to Documents + +Learn **how to watermark** your documents with this simple Java example: + +```java +// Specify an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" +Watermarker watermarker = new Watermarker("document.pdf"); + +TextWatermark watermark = new TextWatermark("top secret", new Font("Arial", 36)); +watermark.setForegroundColor(Color.getRed()); +watermark.setHorizontalAlignment(HorizontalAlignment.Center); +watermark.setVerticalAlignment(VerticalAlignment.Center); + +watermarker.add(watermark); +watermarker.save("document.pdf"); + +watermarker.close(); +``` + +## 📋 Java Watermarking Examples by Use Case + +### Basic Watermarking Operations +- **How to watermark in** PDF documents with Java +- **Create watermark** with custom fonts and styling +- **Add watermark** to multiple pages simultaneously +- **Customize watermark** transparency and rotation angles + +### Advanced Document Security +- **Removing watermark from** third-party applications +- **Delete watermark from** specific document regions +- **Can you remove watermark from** password-protected files +- **How to remove watermarks in** batch processing workflows + +### Enterprise Java Solutions +- **Watermark automation for enterprise** document management systems +- **Content protection with watermarking** for sensitive business documents +- **Document security** compliance implementations +- **Customized product** branding with corporate watermarks + +## 🎯 Supported File Formats + +**How to watermark files** across multiple formats using Java: + +**Documents:** PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, RTF +**Images:** PNG, JPG, BMP, TIFF, GIF, WEBP +**Email:** EML, MSG, EMLX +**Other:** Visio files (VSD, VSDX), OpenOffice (ODT) + +## 🔧 Installation & Setup + +### Maven Configuration +Add to your `pom.xml`: +```xml + + + GroupDocsJavaAPI + GroupDocs Java API + https://releases.groupdocs.com/java/repo/ + + +``` + +### System Requirements +- Java J2SE 7.0 (1.7) or higher +- J2SE 8.0 (1.8) recommended for optimal performance +- Compatible with all major Java IDEs + + +## 💡 Key Java Watermarking Scenarios + +### How to Search Watermarks in PDF documents +```java +// Constants.InDocumentPdf is an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" +Watermarker watermarker = new Watermarker(Constants.InDocumentPdf); + +PossibleWatermarkCollection possibleWatermarks = watermarker.search(); +for (PossibleWatermark possibleWatermark : possibleWatermarks) +{ + if (possibleWatermark.getImageData() != null) + { + System.out.println(possibleWatermark.getImageData().length); + } + + System.out.println(possibleWatermark.getText()); + System.out.println(possibleWatermark.getX()); + System.out.println(possibleWatermark.getY()); + System.out.println(possibleWatermark.getRotateAngle()); + System.out.println(possibleWatermark.getWidth()); + System.out.println(possibleWatermark.getHeight()); +} + +watermarker.close(); +``` + +### Image Watermarking +```java +// Specify an absolute or relative path to your document. Ex: "C:\\Docs\\presentation.pptx" +Watermarker watermarker = new Watermarker("presentation.pptx"); + +// Use path to the image as constructor parameter +ImageWatermark watermark = new ImageWatermark("watermark.jpg"); + +// Add watermark to the document +watermarker.add(watermark); + +watermarker.save("presentation.pptx"); + +watermark.close(); +watermarker.close(); +``` + +### **How to Remove Watermark** Operations +```java +// Specify an absolute or relative path to your document. Ex: "C:\\Docs\\document.pdf" +Watermarker watermarker = new Watermarker("document.pdf"); + +PossibleWatermarkCollection possibleWatermarks = watermarker.search(); + +// Remove possible watermark at the specified index from the document. +possibleWatermarks.removeAt(0); + +// Remove specified possible watermark from the document. +possibleWatermarks.remove(possibleWatermarks.get_Item(0)); + +watermarker.save("document.pdf"); + +watermarker.close(); +``` + +## 🌟 Advanced Java Features + +- **Invisible watermarking for documents** with steganographic embedding +- Search watermarks by formatting properties (font, color, size) +- **Document security** with password protection integration +- **Tiling watermarks** with customizable spacing and patterns +- Batch processing for **watermark automation for enterprise** +- **Custom watermark** templates for consistent branding +- Multi-threaded watermark processing for high-volume scenarios + +## 📖 Documentation & Resources + +- [Complete Java API Documentation](https://docs.groupdocs.com/watermark/java/) +- [Live Demo - **How to Watermark** Online](https://products.groupdocs.app/watermark/family) +- [Java API Reference Guide](https://apireference.groupdocs.com/java/watermark) +- [Developer Blog](https://blog.groupdocs.com/category/watermark/) + +## 🤝 Support & Community + +- [Free Support Forum](https://forum.groupdocs.com/c/watermark) - Get help with **how to remove watermark from free** community +- [Temporary License](https://purchase.groupdocs.com/temporary-license) - Test full features + +## 🏷️ Tags + +`java-watermarking` `document-security` `content-protection` `pdf-watermark` `document-watermark` `remove-watermark` `add-watermark` `custom-watermark` `enterprise-security` `java-library` + +--- + +**Start securing your Java applications today!** Clone this repository to explore comprehensive examples of **how to watermark a** document, implement **document security**, and leverage **watermark automation for enterprise** Java solutions. + +- [⬇️ Download Examples](https://github.com/groupdocs-watermark/GroupDocs.Watermark-for-Java/archive/master.zip) +- [🏠 GroupDocs Home](https://products.groupdocs.com/) +- [📧 Contact Sales](https://purchase.groupdocs.com/temporary-license) \ No newline at end of file diff --git a/llms.txt b/llms.txt new file mode 100644 index 0000000..26e7120 --- /dev/null +++ b/llms.txt @@ -0,0 +1,48 @@ +# GroupDocs.Watermark Java Examples + +## Overview +Repository containing Java examples for GroupDocs.Watermark Java library - a document watermarking solution supporting 40+ file formats including PDF, Word, Excel, PowerPoint, and images. + +## Core Functionality +- Add text/image watermarks to documents via Java API +- Remove existing watermarks (including third-party) +- Search watermarks by text, formatting, or custom criteria +- Invisible watermarking and steganographic embedding +- Batch watermark processing and automation +- Custom watermark styling with fonts, colors, transparency +- Tiling watermarks for comprehensive page coverage +- Multi-threaded processing for enterprise applications + +## Key Use Cases +- Enterprise Java document security workflows +- Content protection and brand enforcement +- Legal document authentication +- Automated watermark processing in Java applications +- Integration with existing Java document management systems +- Compliance and audit trail requirements + +## Supported Formats +**Documents**: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, RTF, ODT +**Images**: PNG, JPG, BMP, TIFF, GIF, WEBP +**Email**: EML, MSG, EMLX +**Other**: Visio files, various proprietary formats + +## Technical Details +- Java J2SE 7.0+ (J2SE 8.0+ recommended) +- Maven artifact: com.groupdocs:groupdocs-watermark +- Cross-platform Java compatibility +- Thread-safe operations for concurrent processing +- Memory-efficient streaming for large documents + +## Repository Structure +- `/Examples` - Core Java implementation examples with complete source code + +## Java Integration +- Maven/Gradle dependency management +- Spring Framework compatible +- Enterprise Java (J2EE) ready +- Microservices architecture suitable +- RESTful API integration examples + +## AI/LLM Context +Ideal for AI applications requiring automated document processing, batch watermarking workflows, or Java-based document security solutions. Examples demonstrate programmatic watermark manipulation suitable for integration into larger enterprise Java systems, microservices, or automated document processing pipelines. \ No newline at end of file