使用Flying Saucer生成pdf
使用Flying Saucer生成pdf
实现思路:
利用FreeMarker编写HTML模板,通过Flying Saucer生成pdf。
一、maven添加依赖
本项目使用maven构建,基于spring架构
在pom.xml中添加
<dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.0.9</version>
</dependency>
它的依赖关系图为
二、用FreeMarker编写模板
- 在webroot目录下新建一个pdfTemplate的文件夹
在里面新建一个freemarker的模板文件,命名为: template.ftl
其中头部代码要使用标准的html文档声明,否则iText会解析失败。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>${title}</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"></meta>
<style type="text/css"> body {font-family: SimSun;}
</style>
</head>
<body></body>
</html>
需要注意的几点:
- HTML页面必须是标准的XHTML页面
- 所有的html标签必须使用小写字母,同时也要使用闭合写法,因为Flying Saucer按xml语法解析
- 需统一文件编码,避免乱码的出现
- 中文乱码的问题和css样式文件引入还有图片资源引入的问题,这个下面单独讲
- 页面里的js代码都将不起作用
- 表格不支持thead标签
三、
<servlet>
<servlet-name>exportPDF</servlet-name>
<servlet-class>com.tg.servlet.ExportPDFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>exportPDF</servlet-name>
<url-pattern>/exportPDF/*</url-pattern>
</servlet-mapping>
#
#
#
- 语法严格
2.要用到图片的地方写相对路径的形式,比如:
<img src="a.jpg" alt="323" width="252" height="80" />
而它的图片位置则必须在Java代码中指定。
renderer.getSharedContext().setBaseURL(“file:/D:/”);
也有另一种方法就是直接在标签中写绝对路径。
宋体。也可以添加其他字体。
使用Flying Saucer生成pdf相关推荐
- Flying Saucer生成pdf报表
使用Flying Saucer生成pdf报表: 1.首先看一下Flying Saucer的官方介绍: https://github.com/flyingsaucerproject/flyingsauc ...
- flyingsaucer转换多个html,用 flying saucer 生成pdf文件 Css及html的问题
我用 flying saucer 生成PDF文件,因为要生成文章,而文章是由tinymce发布的.可能有些文章发布出去后格式有问题,比如说标签不规范,有的没有闭合. 这样 flying sauce ...
- freemark与flying saucer生成PDF
freemark与flying saucer生成PDF 1.导入flying saucer与freemark的包. 2.利用freemark生成html文件. 3.利用flying saucer进行p ...
- itext文本域自动换行_iText+Flying Saucer生成pdf文档,中文不显示和不自动换行问题...
一.重写Breaker,添加中文识别 // Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov. // Jad home page: ...
- itext文本域自动换行_iText+Flying Saucer生成pdf文档,重写Breaker中文可以换行,但是英文单词会截断问题
网上有好多重新的Breaker的案例或者代码,但是如果其中涉及到英文,那么单词也会直接被拦腰截断,这不是我们想要的结果,我有重写了一下Breaker,完美解决这个问题,废话不多说,代码如下: pack ...
- 使用flying saucer将html文件转成PDF
使用flying saucer生成PDF文件之前,先要使用freemarker生成html文件,然后将html文件转成pdf.生成html文件的东东网上一搜一大堆,大家找找就成. 当然"使用 ...
- Flying Saucer一些问题
使用Flying Saucer生成PDF的一些问题 1.有xercesimpl.jar的时候,如果<img>标签中有id属性时,将会报错误,这个时候要么去掉xercesimpl.jar要么 ...
- iText和flying saucer结合生成pdf的技术
原博文地址 http://blog.csdn.net/shanliangliuxing/article/details/6833471 下面是我自己利用flying saucer技术生成pdf文档的实 ...
- itext转html为pdf 锚点,flying saucer html转pdf经验分享
对比了很多生成pdf的方案,最终还是决定使用flying saucer,网上能搜出N多相关文章,但是照着做了会出现各种问题,还是得自己一点点摸索,前后花了两天时间才达到自己的目标,下面把过程中的经验总 ...
最新文章
- 使用自定义材质球,实现NGUI屏幕溶解和灰显
- CentOS 6.8 安装 RabbitMQ
- 10 个常见的 Linux 终端仿真器
- TC字符界面-菜单程序【原创】
- 垃圾分类智能化-垃圾分类机器人
- 异步udpserver接收rtp转html5(一)
- 高效的java异常处理
- 部署ganglia3.7
- mysql学习之mysql集群
- 3.Python标准库—math库的使用
- PMP专题练习-整合管理
- Matlab线性拟合和非线性拟合
- BLC 以及 线性化
- ubuntu16.04安装翻译软件stardict
- c++ 栈 stack 用法
- 杯具的无线鼠标安装记
- 苹果授权登录Sign In With Apple亲测通过版[100%成功]
- 电子计算机技发展趋势,现代电子信息技的现况及发展趋势.ppt
- camera sensor crosstalk 详细介绍
- 基于JSP的婚恋交友网