不久前我的博客记录了一种[url=http://xpenxpen.iteye.com/blog/2087251]用fop生成PDF[/url]的方法,个人感觉不是太好。有以下原因:
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;}

详细代码我不贴了,感兴趣的童鞋自己去下载我放在[url=https://github.com/xpenxpen/daydayup]github上的工程[/url]吧.
测试代码见org.xpen.hello.xml.xslt.XsltTest,演示了XSLT转换XML,并转为PDF。

2014/10/22补充:
随着业务需求的复杂,xslt要写出来也越来越难维护,这时候倒也可考虑用fop,fo文件可以考虑用freemarker这类模板引擎生成。

flying-saucer生成PDF相关推荐

  1. Flying Saucer生成pdf报表

    使用Flying Saucer生成pdf报表: 1.首先看一下Flying Saucer的官方介绍: https://github.com/flyingsaucerproject/flyingsauc ...

  2. flyingsaucer转换多个html,用 flying saucer 生成pdf文件 Css及html的问题

    我用  flying saucer  生成PDF文件,因为要生成文章,而文章是由tinymce发布的.可能有些文章发布出去后格式有问题,比如说标签不规范,有的没有闭合. 这样 flying sauce ...

  3. 使用Flying Saucer生成pdf

    使用Flying Saucer生成pdf 实现思路: 利用FreeMarker编写HTML模板,通过Flying Saucer生成pdf. 一.maven添加依赖 本项目使用maven构建,基于spr ...

  4. freemark与flying saucer生成PDF

    freemark与flying saucer生成PDF 1.导入flying saucer与freemark的包. 2.利用freemark生成html文件. 3.利用flying saucer进行p ...

  5. itext文本域自动换行_iText+Flying Saucer生成pdf文档,中文不显示和不自动换行问题...

    一.重写Breaker,添加中文识别 // Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov. // Jad home page: ...

  6. itext文本域自动换行_iText+Flying Saucer生成pdf文档,重写Breaker中文可以换行,但是英文单词会截断问题

    网上有好多重新的Breaker的案例或者代码,但是如果其中涉及到英文,那么单词也会直接被拦腰截断,这不是我们想要的结果,我有重写了一下Breaker,完美解决这个问题,废话不多说,代码如下: pack ...

  7. 使用flying saucer将html文件转成PDF

    使用flying saucer生成PDF文件之前,先要使用freemarker生成html文件,然后将html文件转成pdf.生成html文件的东东网上一搜一大堆,大家找找就成. 当然"使用 ...

  8. Flying Saucer一些问题

    使用Flying Saucer生成PDF的一些问题 1.有xercesimpl.jar的时候,如果<img>标签中有id属性时,将会报错误,这个时候要么去掉xercesimpl.jar要么 ...

  9. iText和flying saucer结合生成pdf的技术

    原博文地址 http://blog.csdn.net/shanliangliuxing/article/details/6833471 下面是我自己利用flying saucer技术生成pdf文档的实 ...

  10. itext转html为pdf 锚点,flying saucer html转pdf经验分享

    对比了很多生成pdf的方案,最终还是决定使用flying saucer,网上能搜出N多相关文章,但是照着做了会出现各种问题,还是得自己一点点摸索,前后花了两天时间才达到自己的目标,下面把过程中的经验总 ...

最新文章

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:随机选T恤
  2. APUE学习之多线程编程(二):线程同步
  3. 关于CS1061报错(XX不包含XXX的定义,并且找不到类型为XX的第一个参.....)的一种可能的解决的办法...
  4. ASP.NET Core依赖注入解读amp;使用Autofac替代实现
  5. 求最大值c语言常用方法,c语言如何求最大值
  6. 对抗样本生成算法-FGSM、I-FGSM、ILCM、PGD
  7. python层次聚类法画图_原理+代码|详解层次聚类及Python实现
  8. glTexSubImage2D的使用详解
  9. Queen Collisions
  10. vue生成助记码全部教程
  11. mac 升级php 到7,macOS High Sierra 10.13升级PHP到7.3并创建Laravel 7项目
  12. 《树上的男爵》坚持解释不清的理想是疏离,还是自由?
  13. Java写时复制CopyOnWriteArrayList
  14. 数字 一阶低通滤波器 详细分析 冰三点水
  15. ssl证书购买后如何认证签发
  16. 用计算机弹咱们结婚吧乐谱,儿歌计算器曲谱_计算器弹音乐 大家给点流行歌乐谱吧,谢谢大家...
  17. 用 Silverlight 开发围棋在线对弈程序(一)UI 雏形
  18. 图像去模糊算法 deblur
  19. 关于论文中bib文件的参考格式
  20. 74道高级Java面试合集:yapidocker安装插件

热门文章

  1. 基于微信共享充电桩小程序系统设计与实现 开题报告
  2. 通信专业实务(四)——互联网
  3. 感恩中国30年,速速来看甲骨文数据库云大会
  4. UI设计网盘资源收集
  5. Critical dependency: the request of a dependency is an expression
  6. 如何使用ue编辑java,UltraEdit文字编辑器教程:UltraEdit / UEStudio脚本访问剪贴板内容...
  7. 重庆电信助力新一代物联网商用平台
  8. 构建知识体系(1):知识体系是什么?
  9. Python 视频制作神器 -- Manim入门篇
  10. S3DIS数据集学习笔记