@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的更多相关文章

  1. PDF 生成插件 flying saucer 和 iText

    最近的项目中遇到了需求,用户在页面点击下载,将页面以PDF格式下载完成供用户浏览,所以上网找了下实现方案. 在Java世界,要想生成PDF,方案不少,所以简单做一个小结吧. 在此之前,先来勾画一下我心 ...

  2. Java使用Flying Saucer实现HTML代码生成PDF文档

    1.需要的jar包:org.xhtmlrenderer.flying-saucer-pdf-itext5,Maven依赖如下: <dependency> <groupId>or ...

  3. 生成 PDF 全攻略【1】初体验

    经历过多少踩坑,翻看过多少类似博客,下载过多少版本的Jar,才能摸索出正确的代码书写方式,才能实现项目经理需求分析书中的功能点. 本文借一次 JavaEE 生成PDF的颠簸的实现过程,描述中小公司程序 ...

  4. 使用wkhtmltopdf实现HTML转PDF的解决方案

    最近,项目需要将HTML页面转换为PDF文件,所以就研究了下HTML转PDF的解决方案,发现网上比较流行的解决方案有3种: (1)iText (2)Flying Saucer (3)wkhtmltop ...

  5. Java使用wkhtmltox实现HTML代码生成PDF文档或者图片

    由于项目需要,把HTML代码转为PDF或者图片进行保存.最开始使用Flying Saucer来把HTML代码生成为PDF文档,功能已经开发出来了,也能够完成转换功能,期间也遇到了中文支持以及图片路径的 ...

  6. 电子凭证 : Java 生成 Pdf

    来源:蛙牛, my.oschina.net/lujianing/blog/894365 如有好文章投稿,请点击 → 这里了解详情 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中 ...

  7. Itext生成pdf文件

    来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...

  8. Java HTML to PDF 支持SVG

    尝试一 (现用框架的基础上改动,影响最小化) 最早使用的框架 Xhtmlrenderer,需要把HTML转换成XHTML,引入第二个框架Tidy,Tidy与2010年停止更新,github上的项目也停 ...

  9. Docker 快速验证 HTML 导出 PDF 高效方案

    需求分析 项目中用到了 Echarts,想要把图文混排,当然包括 echarts 生成的 Canvas 图也导出 PDF. 设计和实现时,分析了 POI.iText.freemaker.world 的 ...

  10. javaweb 报表生成(pdf excel)所需要用到的技术和思路

    pdf: “ 目前开源.成熟.稳定的第三方包只有iText.而用iText生成PDF有三种方式: 调用iText API,用代码“写”出PDF,依赖包:com.itextpdf:itextpdf:5. ...

随机推荐

  1. php中使用PHPExcel读写excel(xls)文件的方法

    首先从GitHub上下载 excel的相关类库 下载地址:https://github.com/PHPOffice/PHPExcel 以下是从excel中获取数据 <?php /** * * @ ...

  2. Python多继承的C3算法

    C3算法 一.知识点补充: 拓扑排序:在图论中,拓扑排序(Topological Sorting) 是一个 有向无环图(DAG,Directed Acyclic Graph) 的所有顶点的线性序列.且 ...

  3. 使用 echart的jar包,传递到前台报 null错误

    表现:后台创建 Option的JsonObjject传递到前台之后,失败,F12控制台报错:无法定义null的属性xxx 原因:使用jar包里面的对象分装没有默认值,而我们自己使用时只是对需要的对象进 ...

  4. python 数据分析 文章集锦

    文本分析: re&jieba模块  使用 正则表达式 和 中文处理模块jieba 原文地址:https://www.cnblogs.com/minutesheep/p/10357209.htm ...

  5. ubuntu 报错 libcublas.so.8.0

    在qt程序中使用yolo时报错: ./conjugateGradientPrecond: error while loading shared libraries: libcublas.so.8.0: ...

  6. 大数据平台-修改主机名及ssh免密码登录

    一.查看服务器初始配置: 1.总核数 = 物理CPU个数 X 每颗物理CPU的核数 2.总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数cat /pr ...

  7. 基础篇:3.2)规范化:3d零件建模

    本章目的:规范化零件建模,这是机械的基本功夫. 1.建模的总体原则和总体要求 1.1 建模总体原则 a)零件模型应能准确表达零件的设计信息:b)零件模型包含零件的几何要素.约束要素和工程要素:c)零件 ...

  8. 123th LeetCode Weekly Contest Add to Array-Form of Integer

    For a non-negative integer X, the array-form of X is an array of its digits in left to right order.  ...

  9. AXI协议(一)

    最近弄Zynq,不懂AXI协议Zynq很难玩儿的转.这些笔记主要攻克AXI中的一些难题. 所有的AXI4包含了5个不同的通道:     (1)读/写地址通道(Read/Write address ch ...

  10. python __getattribute__、__getattr__、__setattr__详解

    __getattribute__ 官方文档中描述如下: 该方法可以拦截对对象属性的所有访问企图,当属性被访问时,自动调用该方法(只适用于新式类).因此常用于实现一些访问某属性时执行一段代码的特性. 需 ...