不久前我的博客记录了一种
用fop生成PDF的方法,个人感觉不是太好。有以下原因:
fop有点老了,而且更新不活跃。里面依赖的一些jar包都是10年前的老古董了。像xalan,xml-apis这些开源包现在都已经被打包到JDK里面去了,还有batik,avalon这些包引入数量达到20个左右,非常不经济环保。
最近,本人又找到了一个开源包,叫flying-saucer,也能生成PDF,清清爽爽就2个jar包搞定,用maven也简单,而且更新比较活跃,它内部是调用的itext来生成PDF。
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-pdf-itext5</artifactId>
<version>9.0.6</version>
</dependency>
以下是通用的生成PDF的方法,很简单,2个参数,输入是HTML,输出就是PDF
private boolean convertHtmlToPdf(String inputFile, String outputFile) throws Exception {
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
String url = new File(inputFile).toURI().toURL().toString();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.flush();
os.close();
return true;
}
详细代码我不贴了,感兴趣的童鞋自己去下载我放在
github上的工程吧.
测试代码见org.xpen.hello.xml.xslt.XsltTest,演示了XSLT转换XML,并转为PDF。
2014/10/22补充:
随着业务需求的复杂,xslt要写出来也越来越难维护,这时候倒也可考虑用fop,fo文件可以考虑用freemarker这类模板引擎生成。
分享到:
相关推荐
在使用flying-saucer生成PDF时,可能会遇到图片无法正确显示的情况。这通常与图片的路径、格式支持以及资源加载有关。确保图片URL是相对或绝对的正确路径,并且flying-saucer支持的图片格式(如JPEG、PNG、GIF)。...
标题中的“flying-saucer-pdf-9.0.9转pdf相关包”指的是使用`flying-saucer`库的特定版本9.0.9来将HTML转换为PDF的工具集。 1. **flying-saucer-pdf-9.0.9.jar**:这是`flying-saucer`的核心组件,负责将HTML渲染成...
在IT行业中,生成PDF文档是一项常见的任务,特别是在报告、手册或者网页内容转化为印刷格式时。`flying-saucer-pdf` 是一个强大的Java库,它允许开发者将HTML内容转换为高质量的PDF文档。这个库特别适合那些需要从...
Flying-Saucer在生成PDF时会依赖iText,用来处理PDF的具体细节,如字体、页眉页脚、书签等。 使用这些jar包,开发者可以通过以下步骤将HTML转换为PDF: 1. **初始化**: 首先,你需要导入所需的jar包,包括flying-...
《飞翔的碟片:flying-saucer-core与flying-saucer-pdf-itext5在Freemarker中的应用》 在IT行业中,生成PDF文档是一项常见的需求,特别是在报告、发票或者用户手册等场合。传统的HTML转PDF解决方案可能无法很好地...
在Flying-Saucer中,iText用于生成PDF文档。iText-2.0.8.jar是iText的一个旧版本,尽管如此,它仍然包含了大量的功能,如文本布局、表格处理、图像插入等。同时,iTextAsianCmaps.jar和iTextAsian.jar是iText的扩展...
这个压缩包"itext2.0.8+core-renderer-1.0.0+flying-saucer-pdf-9.1.3+xmlworker-5.4.3"提供了一套解决方案,包含了一系列的Java库,使得开发者能够轻松实现HTML到PDF的转换。 首先,我们来看一下关键组件: 1. **...
基于iText 和 flying saucer结合freemark java 生成 pdf
flying-saucer-coreR-9.0.7 中修改Breaker类,解决PDF中文没有对齐问题。
基于iText和flying saucer结合freemark生成pdf 范例 1. 使用maven构建,不含jar包,可以自行使用maven下载依赖包, 2. 使用前需要将C:/Windows/Fonts/ARIALUNI.TTF 复制到doc-render/src/test/resources/config/fonts...
Flying-Saucer通过html生成pdf。。。项目中已经附带了jar包,放到项目中就可以运行了。亲测了,解决了中文不显示或者样式的问题,感觉蛮实用的。网上找了很久和下载其他资源用了好多积分,如果有需要的就下载吧!!...
要使用"Flying Saucer Java生成pdf的jar",首先你需要在项目中引入相关的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.xhtmlrenderer <artifactId>flying-saucer-renderer ...
SpringBoot集成Freemarker+FlyingSaucer实现pdf在线预览 本文讲述如何使用SpringBoot集成Freemarker和FlyingSaucer实现PDF在线预览、打印和下载的功能。该技术方案可以应用于各种在线文档预览、报表生成、电子邮件...
要使用"Flying Saucer PDF 9.1.3",首先你需要将提供的`flying-saucer-pdf-9.1.3.jar`文件添加到你的项目类路径中。这个JAR文件包含了所有必要的类和资源,使得你可以调用Flying Saucer的API来执行转换操作。 以下...
4. **PDF生成**:flying saucer生成的页面流通过iText处理,将其转换成符合PDF规范的文档。iText可以控制PDF的元数据、页面大小、安全设置等。 5. **输出与保存**:最后,生成的PDF文件可以被保存在本地、发送到...
基于iText 和 flying saucer 结合 freemark java 生成 pdf
Flying Saucer生成pdf文档jar包 ,已做修改,支持中文 换行,但是 table标签换行 请改用CSS 样式:style="table-layout:fixed; word-break:break-strict;
4. **渲染到PDF**:最后,调用`renderer.layout`和`renderer.createPDF`方法生成PDF文件。例如: ```java renderer.layout(); FileOutputStream fos = new FileOutputStream("output.pdf"); renderer.createPDF...
`layout`方法布局HTML,然后`createPDF`方法生成PDF文件。 在实际应用中,你可能需要处理CSS以控制PDF的样式。Flying Saucer支持大部分CSS2属性,但不完全支持CSS3。比如,某些CSS3的布局特性如Flexbox和Grid在...