学习GroupDocs.Watermark的增加与删除图片水印实践

GroupDocsGroupDocs.Watermark
placeholder image
admin 发布于:2025-03-14 15:55:19
阅读:loading

前面在摸索了Aspose For Java的全量产品组件共计23款,闲来无事偶然又发现了在GroupDocs方向又存在一些产品,这些产品基本都是取自于一个又一个的组件,取自所有组件中的一个方向进行汇总,组成一个统一的产品包。本次摸索学习GroupDocs.Watermark产品,经过一些持续的分析和摸索,结合使用反射的形式来调用,也就是说在API的使用前进行一次特殊的代码注册,即可实现授权,全程不需要License之类的xml,或是文档无水印、或是文档页数限制、或是获取内容无限制,等等。

特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

1.基本介绍

本次实践的是GroupDocs.Watermark for Java的24.11版本(当前最新版本),

通俗的来说,GroupDocs.Watermark for Java 为水印提供了大量的自定义选项,参考如下:

(1)通过 Java 为文件添加水印:使用 GroupDocs.Watermark for Java 保护您的商业文档。将文本、图像、图表或电子邮件附件作为水印添加到各种文件格式;

(2)根据特定需求自定义水印:GroupDocs.Watermark for Java 为水印提供了大量的自定义选项。调整文本样式(粗体、斜体、字体)和图像属性(旋转等),根据您的特定目标定制水印流程;

(3)广泛格式支持:GroupDocs.Watermark for Java 可与多种文件格式无缝集成,包括:PDF、Microsoft Office(Word、Excel、Excel、PowerPoint)、图像(JPEG、PNG、GIF、BMP)、Visio 图表和电子邮件。增强不同文件类型的文档安全性;

(4)轻松的水印搜索和管理:高效管理文档中的现有水印。找到特定的水印,修改其文本、样式或图像,或将其完全删除。GroupDocs.Watermark for Java 简化了水印工作流程;

2.示例过程

以官网提供的Github示例为准,分别从其中挑出几个简单的示例来演示,比如有:“增加图片水印”、“删除图片水印”等。

2.1.增与删PPT图片水印

演示给 3 种不同类型的文档增加文本水印,分别是:PDF、PPT、JPG,如果某个文档中包含多页内容,也是支持每个页面均增加水印的,参考PPT文件增加图片水印、删除图片水印和文本水印的示例代码如下:

public class SliderAddImageWatermark {

    public static void run() {
        Watermarker watermarker = new Watermarker(Constants.InPresentationPptx);
        ImageWatermark watermark = new ImageWatermark(Constants.WatermarkJpg);
        watermarker.add(watermark);
        watermarker.save(Constants.OutPresentationPptx);
        watermark.close();
        watermarker.close();
    }

    public static void remove() {
        Watermarker watermarker = new Watermarker(Constants.InPresentationPptx_Watermark);
        PresentationContent content = watermarker.getContent(PresentationContent.class);
        ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.WatermarkJpg);
        TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name");
        for (PresentationSlide slide : content.getSlides()) {
            final PossibleWatermarkCollection imageWatermark = slide.search(imageSearchCriteria);
            if (imageWatermark != null) {
                imageWatermark.clear();
            }
            final PossibleWatermarkCollection textWatermark = slide.search(textSearchCriteria);
            if (textWatermark != null) {
                textWatermark.clear();
            }
        }
        watermarker.save(Constants.OutPresentationPptx_Watermark);
        watermarker.close();
    }

}

示例源PPT文件图片水印的增加演示,参考如下:

image

(PPT源文档)

image

(PPT增加图片水印,左上角黄钥匙)

示例源PPT文件图片水印的删除演示,参考如下:

image

(PPT源文档1)

image

(PPT源文档2)

image

PPT删除图片水印,删除1页的左上角黄钥匙;删除2页的文字水印


2.2.删除PDF图片水印

演示删除 PDF 文档中的水印删除,演示将文件中的图片和文字水印进行删除,参考示例代码如下:

ppublic class PdfRemoveWatermark {

    public static void run() {
        PdfLoadOptions loadOptions = new PdfLoadOptions();
        Watermarker watermarker = new Watermarker(Constants.InDocumentPdf, loadOptions);
        ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(Constants.WatermarkJpg);
        TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Scissors");
        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();
    }
}

注意:PDF文档为只读类型,但是也可以删除其中的文字与图片水印。参考PDF的源文件与输出文件如下:

image

(源文件)

image

(输出文件)

3.其它说明

(1)`GroupDocx.xxx`不是开源免费的使用,Github上有示例项目,包含了大量的示例,示例的结果就是生成了一些《Evaluation Warning》警告、水印、内容页数限制、内容文本限制等;

(2)aspose旗下有许多的产品,都是商业付费版本,常见于各种文档格式文件的操作,都需要商业授权使用,也基本都是支持多种编程语言的,如有Java、C++、.NET等等,官网也有多种在线示例;

(3)示例与相关文件下载:《PPT与PDF的文件示例.zip》,注:下载并不包含具体的科学实现部分,只是源文件与示例输出文件;

(4)科学实现分为两种情况,一种是使用反射,另一种是使用License.xml文件;

(5)aspose相关的各个产品组件为独立存在的各个产品,GroupDocs是提取全集产品中的某个功能的集合,提供了一个大类的功能操作,并且统一对外提供API;

(6)本次使用的GroupDocs.Watermark授权方案在以下文件类型中进行了验证:docx、xlsx、pptx、pdf、vsdx、image、eml等;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区