学习PdfReator for Java的科学实践(四)技术文档页面生成PDF
PdfReator
admin 发布于:2025-09-19 14:34:31
阅读:loading
PDFreactor 是一款强大的企业级 HTML 转 PDF 解决方案,由 RealObjects 公司开发。它主要用于将 HTML 和 CSS 转换为高质量的 PDF 文档,广泛应用于自动化报告生成、发票、合同、电子书制作等场景。适合需要高质量文档生成和自动化处理的企业和开发者使用。通过其丰富的特性和良好的集成能力,可以极大提升文档处理的效率和质量。
特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)
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等;
利用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代码示例)
(PDF格式预览)
(PDF58页预览)
(GIF格式预览)
(TIFF格式预览)
(1)常规格式的图片,如:PNG/GIF/BMP/JPG等只会生成第一页大小的图片内容(也许是对API不够熟悉,不知能否生成长条图);
(2)对于TIFF格式的图片可以生成多页的内容,但是图片显示的是黑白的;
(3)所有生成的图片示例页面宽度并没有自动适应,只有A4大小(不知怎样设置页面的横向,或者页面大小自动缩放展示);
(4)官网示例中的《Documentation》代码包,见上方的代码包预览,其内部示例包含了HTML、CSS、JS、PDF的互相引用,比较复杂,属于界面内容使用JavaScript渲染,页面内部也包含了各种技术文档编写所需的常规依赖,所以本地浏览器预览的结果如下:
(1)PDFreactor是RealObjects公司出的一款产品,涵盖了多种编程语言的实现,本例使用的是Java语言实践;
(2)关于Jar文件的下载可以直接从官网提供的下载渠道获取,下载到的Jar文件内有许多class属于加密混淆的;
(3)试用版功能齐全(它会在创建的每个页面中添加试用标记,页眉页脚也有会官网地址,同时也会多出一页试用的文档声明),本系列文章中的实现属于的科学使用,没有各种限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(5)科学实践版本为2025年的pdfreactor-12.2.jar;
(6)相关示例输出文件下载:《示例输出.zip》,所有的示例输出包含了PDF、gif、jpg、png、tiff等格式文件;
点赞