学习Qoppa jPDFFields的科学实践(十)

Qoppa
placeholder image
admin 发布于:2025-06-12 13:48:11
阅读:loading

Qoppa Software是一家专注于PDF处理和数字文档解决方案的公司,提供丰富的Java、.NET和Web平台的组件。其产品广泛应用于企业、ZF*、金融、医疗等行业,旨在简化PDF和数字文档的处理、管理和集成。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

1.基本介绍

jPDFFields 是一个 Java PDF 表单字段库,用于处理 AcroForm 和 XFA 格式的交互式 PDF 表单。jPDFFields 允许您的应用程序获取和设置字段值,还可以导入和导出为 FDF、XFDF 和 XDP 格式

此外,jPDFFields 还可以“扁平化”文档中的字段。扁平化是将字段合并到 PDF 内容层的过程,以便信息得以保留,但仍然是静态 PDF 内容。

jPDFFields 基于 Qoppa 专有的 PDF 技术构建,因此您无需安装任何第三方软件或驱动程序。由于它采用 Java 编写,因此您的应用程序能够独立于平台,可在 Windows、Linux、Unix(Solaris、HP UX、IBM AIX)、Mac OS X 以及任何其他支持 Java 运行时环境的平台上运行。

2.组件介绍

  • 从文件、网络驱动器、URL 或输入流加载 PDF 文档

  • 处理 AcroForm 或 XFA 格式的 PDF 表单

  • 将字段数据导出为 FDF、XML(XFDF)或 XDP 文件

  • 从 FDF、XML(XFDF)或 XDP 文件导入字段数据

  • 展平表单字段(直接在页面中绘制字段内容并从 PDF 文档中删除字段本身)

  • 将字段重置为其默认值

  • 支持条形码字段

  • 将更新的 PDF 文件保存为文件、OutputStream 或 ServletOutputStream

  • 适用于 Windows、Linux、Unix 和 Mac OS X(100% Java)

3.代码示例

public class SampleFields {

    public static void main(String[] args) throws Exception {
        QoppaRegister.registerJPDFFields();

        PDFFields document = null;
        try {
            document = new PDFFields("resources/input/hello.pdf" , null);
            document.exportAsFDF("resources/output/jPDFFields_HelloWorld.fdf" , true);
            document.exportAsXDP("resources/output/jPDFFields_HelloWorld.xdp" , true);
            document.exportAsXFDF("resources/output/jPDFFields_HelloWorld.xfdf" , true);

            final Vector<FormField> fields = document.getFieldList();
            System.out.println(fields);
        } finally {
            if (document != null) {
                document.close();
            }
        }
    }

}

4.示例说明

(1)示例使用了jPDFFields操作PDF文档读取其中的一些表单元素;

(2)示例中演示了未科学使用时输出PDF转换为图片就有文档水印;

(3)示例中演示了科学使用后设输出PDF转换为图片没有文档水印;

(4)上述示例是理想情况,没有对应的PDF文档,所以也没有得到相关示例的验证结果,所以本篇所谓的科学并未验证,也没有得到对应的文档输出结果;

5.其它说明

(1)Qoppa Software推出了15款Java集成开发组件库,,除此之外的其它组件在生成/转换为PDF文档时,应该需要处理文档属性中的“制作工具”

(2)更多的组件需要使用License注册,使用试用版本将会有对应的试用提示信息,比如插入文字水印、图片中被插入水印、内容中被插入DEMO字样的文本,所以科学使用的目的在于单纯使用对应的工具库,不需额外关注License,又不改动Jar文件中的class,同时又恰好没有水印和文本混乱的限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

(3)官网提供了对应各个组件的示例代码和组件库的Jar文件下载,未找到有试用Maven库管理组件的形式,需要自行下载相关的组件;

(4)官网的某些页面资料中也有说明还包含上述产品组件范围之外的其它组件,如:OCR等,没有找到详细的示例使用介绍,不作为本次学习摸索的重点;

(5)官网提供的试用组件的Jar文件中的class有经过加密混淆,从class部分入门则难道比较高,本次对于系列组件的摸索在于科学使用方面,对于组件提供的功能广度与深度应用不作过多的摸索;

(6)对各个组件学习摸索的时间并不算太多,发现这么多组件应该不能同时作用于同一个项目中,因为它们不同的组件Jar中提供的class类文件路径存在同名或同类的,存在互相冲突的场景,不知道是否有说明白,以jPDFWriter与jPDFWeb两个组件Jar的截图如下: 

image

(7)相关示例输出文件下载:无


 点赞


 发表评论

当前回复:作者

 评论列表


留言区