学习PdfReator for Java的科学实践(四)技术文档页面生成PDF

PdfReator
placeholder image
admin 发布于:2025-09-19 14:34:31
阅读:loading

PDFreactor 是一款强大的企业级 HTML 转 PDF 解决方案,由 RealObjects 公司开发。它主要用于将 HTML 和 CSS 转换为高质量的 PDF 文档,广泛应用于自动化报告生成、发票、合同、电子书制作等场景。适合需要高质量文档生成和自动化处理的企业和开发者使用。通过其丰富的特性和良好的集成能力,可以极大提升文档处理的效率和质量。

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

1.基本介绍

PDFreactor的API涵盖了多种编程语言的实现,本系列教程使用Java语言的实践案例,将 HTML 转换为 PDF,相关案例的实践也是覆盖到多个知识点的细节,参考部分特色功能如下:

  • 使用到了HTML5、CSS3、JavaScript的代码;

  • 使用普通的纯HTML和CSS来生成一个PDF文档;

  • 使用网络上的http和https地址的URL,转换为PDF文档;

  • 使用本地的HTML文件,HTML引用了本地的图片、CSS、JavaScript等,转换为PDF;

  • 支持HTML中的JavaScript渲染图形报表的相关实现;

  • 将HTML转换为除了PDF格式外的其它图片格式,PNG/JPG/GIF/BMP/TIFF等;

2.示例输出

利用PDFReactor提供的Java API实现将本地的前端代码文件夹,转换为PDF文档、BMP/GIF/PNG/JPG/TIFF等,以下是参考代码与示例输出:

@RunWith(JUnit4.class)
public class DocumentationPdfReatorTest {

    @Test
    public void test() throws Exception {
        PDFreactor pdFreactor = new PDFreactor();
        Configuration configuration = new Configuration();
        final File resources = new File("../resources/input/documentation/");

        String htmlFilePath = "file:///" + new File(resources , "webarch.html").getAbsolutePath();
        configuration.setDocument(htmlFilePath);

        File folder = new File(new File(new File("").getAbsolutePath()).getParentFile() , "resources/output/documentation/");
        configuration.setOutputFormat(new Configuration.OutputFormat().setType(Configuration.OutputType.PDF));
        pdFreactor.convert(configuration, Files.newOutputStream(new File(folder , "webarch.pdf").toPath()));

        configuration.setOutputFormat(new Configuration.OutputFormat().setType(Configuration.OutputType.BMP));
        pdFreactor.convert(configuration, Files.newOutputStream(new File(folder , "webarch.bmp").toPath()));

        configuration.setOutputFormat(new Configuration.OutputFormat().setType(Configuration.OutputType.GIF));
        pdFreactor.convert(configuration, Files.newOutputStream(new File(folder , "webarch.gif").toPath()));

        configuration.setOutputFormat(new Configuration.OutputFormat().setType(Configuration.OutputType.PNG));
        pdFreactor.convert(configuration, Files.newOutputStream(new File(folder , "webarch.png").toPath()));

        configuration.setOutputFormat(new Configuration.OutputFormat().setType(Configuration.OutputType.PNG_TRANSPARENT));
        pdFreactor.convert(configuration, Files.newOutputStream(new File(folder , "webarch.png").toPath()));

        configuration.setOutputFormat(new Configuration.OutputFormat().setType(Configuration.OutputType.JPEG));
        pdFreactor.convert(configuration, Files.newOutputStream(new File(folder , "webarch.jpeg").toPath()));

        configuration.setOutputFormat(new Configuration.OutputFormat().setType(Configuration.OutputType.TIFF_CCITT_GROUP_4));
        pdFreactor.convert(configuration, Files.newOutputStream(new File(folder , "webarch.tiff").toPath()));

    }

}

(Java代码示例)

image.png

(PDF格式预览)

image.png

(PDF58页预览)

image.png

(GIF格式预览)

运行示例-含水印.gif

(TIFF格式预览)

3.示例说明

(1)常规格式的图片,如:PNG/GIF/BMP/JPG等只会生成第一页大小的图片内容(也许是对API不够熟悉,不知能否生成长条图);

(2)对于TIFF格式的图片可以生成多页的内容,但是图片显示的是黑白的;

(3)所有生成的图片示例页面宽度并没有自动适应,只有A4大小(不知怎样设置页面的横向,或者页面大小自动缩放展示);

(4)官网示例中的《Documentation》代码包,见上方的代码包预览,其内部示例包含了HTML、CSS、JS、PDF的互相引用,比较复杂,属于界面内容使用JavaScript渲染,页面内部也包含了各种技术文档编写所需的常规依赖,所以本地浏览器预览的结果如下:

运行示例-含水印.gif

4.其它说明

(1)PDFreactor是RealObjects公司出的一款产品,涵盖了多种编程语言的实现,本例使用的是Java语言实践;

(2)关于Jar文件的下载可以直接从官网提供的下载渠道获取,下载到的Jar文件内有许多class属于加密混淆的;

(3)试用版功能齐全(它会在创建的每个页面中添加试用标记,页眉页脚也有会官网地址,同时也会多出一页试用的文档声明),本系列文章中的实现属于的科学使用,没有各种限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

(5)科学实践版本为2025年的pdfreactor-12.2.jar;

(6)相关示例输出文件下载:《示例输出.zip》,所有的示例输出包含了PDF、gif、jpg、png、tiff等格式文件;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区