`
xpenxpen
  • 浏览: 725195 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flying-saucer生成PDF

    博客分类:
  • PDF
阅读更多
    不久前我的博客记录了一种用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

    在使用flying-saucer生成PDF时,可能会遇到图片无法正确显示的情况。这通常与图片的路径、格式支持以及资源加载有关。确保图片URL是相对或绝对的正确路径,并且flying-saucer支持的图片格式(如JPEG、PNG、GIF)。...

    flying-saucer-pdf 生成pdf解决图片问题 解决中文问题

    在IT行业中,生成PDF文档是一项常见的任务,特别是在报告、手册或者网页内容转化为印刷格式时。`flying-saucer-pdf` 是一个强大的Java库,它允许开发者将HTML内容转换为高质量的PDF文档。这个库特别适合那些需要从...

    flying-saucer-pdf-9.0.9转pdf相关包

    标题中的“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渲染成...

    flying-saucer jar包下载

    Flying-Saucer在生成PDF时会依赖iText,用来处理PDF的具体细节,如字体、页眉页脚、书签等。 使用这些jar包,开发者可以通过以下步骤将HTML转换为PDF: 1. **初始化**: 首先,你需要导入所需的jar包,包括flying-...

    flying-saucer-core+flying-saucer-pdf-itext5.jar

    《飞翔的碟片:flying-saucer-core与flying-saucer-pdf-itext5在Freemarker中的应用》 在IT行业中,生成PDF文档是一项常见的需求,特别是在报告、发票或者用户手册等场合。传统的HTML转PDF解决方案可能无法很好地...

    Flying-Saucer jar包

    在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

    这个压缩包"itext2.0.8+core-renderer-1.0.0+flying-saucer-pdf-9.1.3+xmlworker-5.4.3"提供了一套解决方案,包含了一系列的Java库,使得开发者能够轻松实现HTML到PDF的转换。 首先,我们来看一下关键组件: 1. **...

    flying-saucer-pdf-9.0.3.jar

    基于iText 和 flying saucer结合freemark java 生成 pdf

    flying-saucer-coreR 解决PDF中文没对齐问题

    flying-saucer-coreR-9.0.7 中修改Breaker类,解决PDF中文没有对齐问题。

    基于iText和flying saucer结合freemark生成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或者FTL(Freemarker模板)生成PDF

    Flying-Saucer通过html生成pdf。。。项目中已经附带了jar包,放到项目中就可以运行了。亲测了,解决了中文不显示或者样式的问题,感觉蛮实用的。网上找了很久和下载其他资源用了好多积分,如果有需要的就下载吧!!...

    flying-core Java生成pdf 的jar

    要使用"Flying Saucer Java生成pdf的jar",首先你需要在项目中引入相关的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.xhtmlrenderer &lt;artifactId&gt;flying-saucer-renderer ...

    SpringBoot集成Freemarker+FlyingSaucer实现pdf在线预览.pdf

    SpringBoot集成Freemarker+FlyingSaucer实现pdf在线预览 本文讲述如何使用SpringBoot集成Freemarker和FlyingSaucer实现PDF在线预览、打印和下载的功能。该技术方案可以应用于各种在线文档预览、报表生成、电子邮件...

    flying-saucer-pdf-9.1.3,转pdf需要的jar包

    要使用"Flying Saucer PDF 9.1.3",首先你需要将提供的`flying-saucer-pdf-9.1.3.jar`文件添加到你的项目类路径中。这个JAR文件包含了所有必要的类和资源,使得你可以调用Flying Saucer的API来执行转换操作。 以下...

    用flying saucer将html生成pdf的例子

    4. **PDF生成**:flying saucer生成的页面流通过iText处理,将其转换成符合PDF规范的文档。iText可以控制PDF的元数据、页面大小、安全设置等。 5. **输出与保存**:最后,生成的PDF文件可以被保存在本地、发送到...

    flying-saucer-core-9.0.3.jar

    基于iText 和 flying saucer 结合 freemark java 生成 pdf

    Flying Saucer生成pdf文档jar包

    Flying Saucer生成pdf文档jar包 ,已做修改,支持中文 换行,但是 table标签换行 请改用CSS 样式:style="table-layout:fixed; word-break:break-strict;

    flyingsaucer转html为PDF(中文可用)

    4. **渲染到PDF**:最后,调用`renderer.layout`和`renderer.createPDF`方法生成PDF文件。例如: ```java renderer.layout(); FileOutputStream fos = new FileOutputStream("output.pdf"); renderer.createPDF...

    Flying Saucer实现html转pdf(一些问题,持续更新)

    `layout`方法布局HTML,然后`createPDF`方法生成PDF文件。 在实际应用中,你可能需要处理CSS以控制PDF的样式。Flying Saucer支持大部分CSS2属性,但不完全支持CSS3。比如,某些CSS3的布局特性如Flexbox和Grid在...

Global site tag (gtag.js) - Google Analytics