学习GroupDocs.Annotation的简单实践

GroupDocs
placeholder image
admin 发布于:2025-03-21 11:22:02
阅读:loading

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

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

1.基本介绍

本次实践的是GroupDocs.Annotation for Java的24.6版本(当前最新版本),通过 Java API 进行文档注释,构建具有查看和注释 PDF、HTML、MS Office 和其他文档格式功能的 Java 应用程序,GroupDocs.Annotation Java API 是一款产品,允许您在不同平台和操作系统(例如 Android、MacOS、Linux、Windows)上处理文档中的注释。 GroupDocs.Annotation 提供了一个具有简单 API 的库,具有许多优点:例如,如果您需要对数据保密或选择使用该库需要多少权限,或者部分更改使用注释的工作,该库非常适合轻便灵活。GroupDocs.Annotation for Java API 允许您使用不同类型的注释,其中包括:文本、折线、区域、下划线、点、水印、箭头、椭圆、文本替换、距离、文本字段、资源编辑等。并支持大多数流行的文档格式,例如:PDF、HTML、Microsoft Office Word、Excel 电子表格、PowerPoint 演示文稿、Visio、Outlook 电子邮件、图像、图元文件、CAD 绘图和各种其他格式。该 API 提供获取文档页面缩略图的功能,并支持在 PDF 文件中导入和导出注释。

上面这一段摘自官网的介绍,整体上觉得很抽象,运行示例项目中相关的例子后我理解的意思:GroupDocs.Annotation是给文档增加/修改注释(批注)的,可以是向文档(PDF文件)中增加按钮、文本框、文本、折线、箭头、矩形、圆形等的批注,允许用户在文件上添加评论、标记和其他注释,是一个强大的文档注释解决方案


2.示例实践

以官网提供的Github示例`https://github.com/groupdocs-annotation/GroupDocs.Annotation-for-Java`为准,分别从其中挑出几个简单的示例来演示,本次运行了较多的示例代码,详细参考如下:

image.png

(下划线批注)

image.png

(文本框批注)

image.png

(文本高亮批注)

image.png

(水印批注)

水印批注的代码参考如下:

public class AddWatermarkAnnotation {

    public static void run() {
        String outputPath = Constants.getOutputFilePath("AddWatermarkAnnotation", 
            FilenameUtils.getExtension(Constants.INPUT_PDF));

        final Annotator annotator = new Annotator(Constants.INPUT_PDF);

        Reply reply1 = new Reply();
        reply1.setComment("First comment");
        reply1.setRepliedOn(Calendar.getInstance().getTime());

        Reply reply2 = new Reply();
        reply2.setComment("Second comment");
        reply2.setRepliedOn(Calendar.getInstance().getTime());

        java.util.List<Reply> replies = new ArrayList<Reply>();
        replies.add(reply1);
        replies.add(reply2);

        WatermarkAnnotation watermark = new WatermarkAnnotation();
        watermark.setAngle((double) 75);
        watermark.setBox(new Rectangle(200, 200, 100, 50));
        watermark.setCreatedOn(Calendar.getInstance().getTime());
        watermark.setText("Watermark");
        watermark.setFontColor(65535);
        watermark.setFontSize((double) 12);
        watermark.setMessage("This is watermark annotation");
        watermark.setOpacity(0.7);
        watermark.setPageNumber(0);
        watermark.setReplies(replies);
        annotator.add(watermark);
        annotator.save(outputPath);

        annotator.dispose();

        System.out.println("\nDocument saved successfully.\nCheck output in " + outputPath);
    }
}


3.其它说明

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

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

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

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

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

(6)本次使用的GroupDocs.Annoatation授权方案在以下文件类型中进行了验证:pdf等;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区