学习GroupDocs.Watermark的增加与删除图片水印实践
GroupDocsGroupDocs.Watermark
admin 发布于:2025-03-14 15:55:19
阅读:loading
前面在摸索了Aspose For Java的全量产品组件共计23款,闲来无事偶然又发现了在GroupDocs方向又存在一些产品,这些产品基本都是取自于一个又一个的组件,取自所有组件中的一个方向进行汇总,组成一个统一的产品包。本次摸索学习GroupDocs.Watermark产品,经过一些持续的分析和摸索,结合使用反射的形式来调用,也就是说在API的使用前进行一次特殊的代码注册,即可实现授权,全程不需要License之类的xml,或是文档无水印、或是文档页数限制、或是获取内容无限制,等等。
特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)。
本次实践的是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 简化了水印工作流程;
以官网提供的Github示例为准,分别从其中挑出几个简单的示例来演示,比如有:“增加图片水印”、“删除图片水印”等。
演示给 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文件图片水印的增加演示,参考如下:
(PPT源文档)
(PPT增加图片水印,左上角黄钥匙)
示例源PPT文件图片水印的删除演示,参考如下:
(PPT源文档1)
(PPT源文档2)
(PPT删除图片水印,删除1页的左上角黄钥匙;删除2页的文字水印)
演示删除 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的源文件与输出文件如下:
(源文件)
(输出文件)
(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等;
点赞
发表评论
评论列表
留言区
- 学习GroupDocs.Assembly的Word模板实践
- 学习GroupDocs.Assembly的Excel模板实践
- 学习GroupDocs.Assembly的PPT模板实践
- 学习GroupDocs.Assembly的其它模板实践
- 学习GroupDocs.Watermark的增加与删除文本水印实践
- 学习GroupDocs.Redaction的Xlsx实践
- 学习GroupDocs.Redaction的Docx实践
- 学习GroupDocs.Redaction的其它文件类型实践
- 学习GroupDocs.Annotation的简单实践
- 学习GroupDocs.Signature的简单实践
- 学习GroupDocs.Conversion的Spring版在线示例
- 学习GroupDocs.Conversion的简单实践
- 学习GroupDocs.Merger的简单实践
- 学习GroupDocs.Parser的简单实践
- 学习GroupDocs.Comparison的Spring版在线示例
- 学习GroupDocs.Comparison的简单实践