学习PdfReator for Java的科学实践(二)百度搜索生成PDF
PdfReator
admin 发布于:2025-09-19 10:50:21
阅读: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实现将百度搜索(使用的http协议)“Java”的内容页面HTML文本,转换为PDF文档、BMP/GIF/PNG/JPG/TIFF等,以下是参考代码与示例输出:
@RunWith(JUnit4.class)
public class BaiduPdfReatorTest {
@Test
public void test() throws Exception {
PDFreactor pdfReactor = new PDFreactor();
Configuration config = new Configuration();
config.setDocument("/s?wd=Java%20-%E6%9D%8E%E5%BD%A6%E5%AE%8F");
{
final Configuration.OutputFormat outputFormat = new Configuration.OutputFormat().setType(Configuration.OutputType.PDF);
config.setOutputFormat(outputFormat);
Result result = pdfReactor.convert(config);
assert result != null;
byte[] document = result.getDocument();
File folder = new File(new File(new File("").getAbsolutePath()).getParentFile(), "resources/output");
FileOutputStream fos = new FileOutputStream(new File(folder, "Baidu.pdf"));
fos.write(document);
fos.flush();
fos.close();
}
{
final Configuration.OutputFormat outputFormat = new Configuration.OutputFormat().setType(Configuration.OutputType.PNG);
config.setOutputFormat(outputFormat);
Result result = pdfReactor.convert(config);
assert result != null;
byte[] document = result.getDocument();
File folder = new File(new File(new File("").getAbsolutePath()).getParentFile(), "resources/output");
FileOutputStream fos = new FileOutputStream(new File(folder, "Baidu.png"));
fos.write(document);
fos.flush();
fos.close();
}
{
final Configuration.OutputFormat outputFormat = new Configuration.OutputFormat().setType(Configuration.OutputType.GIF);
config.setOutputFormat(outputFormat);
Result result = pdfReactor.convert(config);
assert result != null;
byte[] document = result.getDocument();
File folder = new File(new File(new File("").getAbsolutePath()).getParentFile(), "resources/output");
FileOutputStream fos = new FileOutputStream(new File(folder, "Baidu.gif"));
fos.write(document);
fos.flush();
fos.close();
}
{
final Configuration.OutputFormat outputFormat = new Configuration.OutputFormat().setType(Configuration.OutputType.JPEG);
config.setOutputFormat(outputFormat);
Result result = pdfReactor.convert(config);
assert result != null;
byte[] document = result.getDocument();
File folder = new File(new File(new File("").getAbsolutePath()).getParentFile(), "resources/output");
FileOutputStream fos = new FileOutputStream(new File(folder, "Baidu.jpg"));
fos.write(document);
fos.flush();
fos.close();
}
{
final Configuration.OutputFormat outputFormat = new Configuration.OutputFormat().setType(Configuration.OutputType.TIFF_CCITT_GROUP_4);
config.setOutputFormat(outputFormat);
Result result = pdfReactor.convert(config);
assert result != null;
byte[] document = result.getDocument();
File folder = new File(new File(new File("").getAbsolutePath()).getParentFile(), "resources/output");
FileOutputStream fos = new FileOutputStream(new File(folder, "Baidu.tiff"));
fos.write(document);
fos.flush();
fos.close();
}
}
}
(Java代码示例)
(PDF格式预览)
(GIF格式预览)
(JPG格式预览)
(TIFF格式预览)
(1)常规格式的图片,如:PNG/GIF/BMP/JPG等只会生成第一页大小的图片内容(也许是对API不够熟悉,不知能否生成长条图);
(2)对于TIFF格式的图片可以生成多页的内容,但是图片显示的是黑白的;
(3)所有生成的图片示例页面宽度并没有自动适应,只有A4大小(不知怎样设置页面的横向,或者页面大小自动缩放展示);
(4)官网示例的一个地址“https://www.pdfreactor.com/product/samples/textbook/textbook.html”,浏览器访问时的宽度可以自适应,所以生成的PDF及图片可以友好的展示,有一页的内容还正好就是横向显示,参考如下图所示:
(1)PDFreactor是RealObjects公司出的一款产品,涵盖了多种编程语言的实现,本例使用的是Java语言实践;
(2)关于Jar文件的下载可以直接从官网提供的下载渠道获取,下载到的Jar文件内有许多class属于加密混淆的;
(3)试用版功能齐全(它会在创建的每个页面中添加试用标记,页眉页脚也有会官网地址,同时也会多出一页试用的文档声明),本系列文章中的实现属于的科学使用,没有各种限制。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(5)科学实践版本为2025年的pdfreactor-12.2.jar;
(6)相关示例输出文件下载:《示例输出.zip》,所有的示例输出包含了PDF、gif、jpg、png、tiff等格式文件;
点赞