关于使用flying-saucer-pdf,实现xhtml2pdf
@author Guoguo 2013.11.24
关于flying-saucer-pdf
是一个XML/CSS渲染器,flying-saucer-pdf工具以XML标准文件作为输入,CSS进行排版、样式修饰,输出a Swing Panel、图片、PDF格式文档。支持XHTML 1.0 (strict)、HTML格式,CSS 2.1 。谈到CSS,要注意屏幕样式和平面媒体样式(即打印样式)的区别;
flying-saucer-pdf依赖于itext
应用场景
在网站上即时下载PDF
局限问题
资源加载与布局是单线程的。
支持XHTML比XML + CSS,并不是所有的XHTML、HTML标签,如不支持<object>。
不支持传统的HTML或“sheet”。
支持摆动打印,但质量不足。在邮件列表上询问详情。
不支持增量布局(仅适用于屏幕媒体)。
它不能用于用户可编辑的内容;输出是只读的。
不支持HTML插件,如applet、flash程序等。
不支持脚本(如JavaScript)。
对内容的动态更改需要重新加载文档(快速但明显),不能动态地更改DOM并查看结果。
不支持JavaScript DOM回调(onload,onclick事件等)。
转PDF
1.加载字体,如黑体、宋体等中文字体。其它支持字体可以查看 com.lowagie.text.pdf.BaseFont类
import com.lowagie.text.pdf.BaseFont; ITextRenderer renderer = new ITextRenderer();
FontResolver resolver = renderer.getFontResolver();
resolver.addFont (
"C:\\WINNT\\Fonts\\ARIALUNI.TTF",
BaseFont.IDENTITY_H,
BaseFont.NOT_EMBEDDED
);
2.关于PDF每页大小,请参照CSS3打印样式https://www.w3.org/TR/css3-page/
3.关于PDF每页页边距,页眉页脚,请参照CSS3打印样式https://www.w3.org/TR/css3-page/
4.关于PDF分页
渲染时,FS有默认分页。
当然需要强制分页的,可使用
page-break-before
page-break-after
强制不分页,可使用
page-break-inside
5.支持bookmarks\图片
其它
还可以给PDF加水印、加密等制定文件属性
参考
官方文档:http://flyingsaucerproject.github.io/flyingsaucer/r8/guide/users-guide-R8.html
关于使用flying-saucer-pdf,实现xhtml2pdf的更多相关文章
- PDF 生成插件 flying saucer 和 iText
最近的项目中遇到了需求,用户在页面点击下载,将页面以PDF格式下载完成供用户浏览,所以上网找了下实现方案. 在Java世界,要想生成PDF,方案不少,所以简单做一个小结吧. 在此之前,先来勾画一下我心 ...
- Java使用Flying Saucer实现HTML代码生成PDF文档
1.需要的jar包:org.xhtmlrenderer.flying-saucer-pdf-itext5,Maven依赖如下: <dependency> <groupId>or ...
- 生成 PDF 全攻略【1】初体验
经历过多少踩坑,翻看过多少类似博客,下载过多少版本的Jar,才能摸索出正确的代码书写方式,才能实现项目经理需求分析书中的功能点. 本文借一次 JavaEE 生成PDF的颠簸的实现过程,描述中小公司程序 ...
- 使用wkhtmltopdf实现HTML转PDF的解决方案
最近,项目需要将HTML页面转换为PDF文件,所以就研究了下HTML转PDF的解决方案,发现网上比较流行的解决方案有3种: (1)iText (2)Flying Saucer (3)wkhtmltop ...
- Java使用wkhtmltox实现HTML代码生成PDF文档或者图片
由于项目需要,把HTML代码转为PDF或者图片进行保存.最开始使用Flying Saucer来把HTML代码生成为PDF文档,功能已经开发出来了,也能够完成转换功能,期间也遇到了中文支持以及图片路径的 ...
- 电子凭证 : Java 生成 Pdf
来源:蛙牛, my.oschina.net/lujianing/blog/894365 如有好文章投稿,请点击 → 这里了解详情 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中 ...
- Itext生成pdf文件
来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...
- Java HTML to PDF 支持SVG
尝试一 (现用框架的基础上改动,影响最小化) 最早使用的框架 Xhtmlrenderer,需要把HTML转换成XHTML,引入第二个框架Tidy,Tidy与2010年停止更新,github上的项目也停 ...
- Docker 快速验证 HTML 导出 PDF 高效方案
需求分析 项目中用到了 Echarts,想要把图文混排,当然包括 echarts 生成的 Canvas 图也导出 PDF. 设计和实现时,分析了 POI.iText.freemaker.world 的 ...
- javaweb 报表生成(pdf excel)所需要用到的技术和思路
pdf: “ 目前开源.成熟.稳定的第三方包只有iText.而用iText生成PDF有三种方式: 调用iText API,用代码“写”出PDF,依赖包:com.itextpdf:itextpdf:5. ...
随机推荐
- 不同的color-model
RGB color mode YIQ color mode Y: brightness,亮度 I: In-phase,色彩从橙色到青色 -Q: Quadrature-phase, 色彩从紫色到黄绿色 ...
- UITableView定制左滑效果
UITableViewRowAction类 object defines a single action to present when the user swipes horizontally in ...
- flask内置函数 send_static_file(filename)
内部使用的函数将静态文件从静态文件夹发送到浏览器. current_app.send_static_file(filename)
- yum安装pip命令
pip命令是python里的命令,类似于linux系统里的yum命令 我们只需要安装python-pip这个包即可. yum -y install python-pip 在linux下还有一个命令: ...
- ORACLE的WITH语句的一个疑惑
使用WITH语句,更新表数据,不行: WITH VN AS ( SELECT T.ID, T.NODE_ID, N.NODE_TYPE, N.NODE_NAME, T.NODE_LEVEL, T.RN ...
- C#嵌入字体
1:将字体文件(*.ttf)添加到资源文件里,注意资源的名称 2:在Program.cs文件里声明 using System; using System.Collections.Generic; us ...
- post调试postman
载地址:https://www.getpostman.com/ 教程地址:http://www.cnblogs.com/s380774061/p/4624326.html
- xtts v4for oracle 11g&12c(文档ID 2471245
xtts v4for oracle 11g&12c(文档ID 2471245.1) 序号 主机 操作项目 操作内容 备注: 阶段一:初始阶段 1.1 源端 环境验证 migrate_check ...
- Vue vs React: Javascript 框架之战
https://baijiahao.baidu.com/s?id=1608210396818353443&wfr=spider&for=pc 原文档 正如我们之前提到的,Word ...
- (转)Mysql数据库管理 表的维护
原文:http://t.dbdao.com/archives/mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86-%E8%A1%A8%E7%9A%84 ...