博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于使用flying-saucer-pdf,实现xhtml2pdf
阅读量:6422 次
发布时间:2019-06-23

本文共 1087 字,大约阅读时间需要 3 分钟。

@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打印样式

3.关于PDF每页页边距,页眉页脚,请参照CSS3打印样式

4.关于PDF分页

渲染时,FS有默认分页。

当然需要强制分页的,可使用

page-break-before

page-break-after

强制不分页,可使用

page-break-inside

 

5.支持bookmarks\图片

 

其它

还可以给PDF加水印、加密等制定文件属性

 

参考

官方文档:

 

转载于:https://www.cnblogs.com/gsyun/p/7324316.html

你可能感兴趣的文章
windows上传文件到linux乱码解决
查看>>
fpm打包zabbix-agent
查看>>
Windows Server 2016 DNS Policy Split-Brain 3
查看>>
pythopn List(列表)
查看>>
blat命令行发邮件小工具
查看>>
学习笔记 十五: mariadb
查看>>
学习笔记 124: 预备知识总结
查看>>
windows server之AD(1)
查看>>
如何升级PowerShell
查看>>
linux-sed
查看>>
oracle kill所有plsql developer进程
查看>>
python实现登录查询(可以模糊查询)
查看>>
LAMP架构(apache用户认证,域名重定向,apache访问日志)
查看>>
PHP设计模式:原型模式
查看>>
struts2.0的json操作
查看>>
SQL注入神器——sqlmap
查看>>
Unity导航 (寻路系统Nav Mesh Agent)
查看>>
SaltStack配置语法-YAML和Jinja
查看>>
运用免费OA让你有意想不到的效果
查看>>
一些软件设计软则
查看>>