`
cuiyaoonan2000
  • 浏览: 24700 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flying Saucer实现html转pdf(一些问题,持续更新)

阅读更多

Flying Saucer实现htmlpdf(及一些问题,持续更新)

关于Flying Saucer的使用官网上有详细的介绍.

官网地址:https://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html#the-problem-with-pdfs

 

中国人在使用Flying SaucerHtml转换成PDF的过程中有如下问题:

l  中文不显示的问题

l  <td>内容过长,转换成PDF后显示不全的问题

l  网上有大量文章给出的解决方案并不能解决问题

 

在研究如上的问题时,使用了2种类型的jar,第一种就是在官网上下载的jar如下图展示: 

 

另一种是下载别人修改源码后的jar如下:



 

关于中文不显示的问题,总结下有如下3种解决方案:

l  自己修改源码,解决该问题:未知

l  使用别人修改后的源码解决该问题:这个最方便了,推荐一个人的博客大家去看看,地址是:http://blog.csdn.net/shanliangliuxing/article/details/6833471

l  使用网上疯传的添加字体:这个添加字体的思路是在代码端和需要转换的html中都需要添加字体.但是我都试验过了没有一个成功!都在报错.

 

总结下貌似直接使用修改后的源码才是最省事的,但是本人非常想把添加字体这种形式搞通,所以如果有人是用该形式成功了请一定要告诉我(cuiyaonan2000@163.com)

 

 

关于<td>内容过长不能显示全的问题的解决思路:

l  修改源码:未知

l  使用别人修改后的源码:目前没发现有可用的

l  关于添加样式解决的思路:试验过了完全不起作用.

总结:暂时没法搞定.

补充:关于中文字符过长换行的问题,不仅td存在,div也存在其它标签一样,并且在添加了width的限制后该问题依然存在.

 

补充:在http://gaojunwei.iteye.com/blog/1996749一文中提供了一中解决办法,中文显示使用的是添加字体的方式,经测试是可以的.关于中文换行我测试了table和div,结果是table就算加了width也不能解决换行问题,div到是不用加div就能自动换行.

 

 

 

 

 

 

 

  • 大小: 15.3 KB
  • 大小: 14.4 KB
2
7
分享到:
评论
9 楼 cuiyaoonan2000 2015-01-07  
高军威 写道
cuiyaoonan2000 写道
高军威 写道
或者 不用<td> 换别的标签元素实现,也不可吗

你好我下载了你的代码,并且经过测试,如果在table上添加了width也是不能支持换行的,但是div不用加width都可以自动换行

我的第一个贴图 就是这个问题,所以换其他元素或是生成html时,让它换行;或者在深究代码改写一下(  


目前你的方案最好了
8 楼 高军威 2015-01-07  
cuiyaoonan2000 写道
高军威 写道
或者 不用<td> 换别的标签元素实现,也不可吗

你好我下载了你的代码,并且经过测试,如果在table上添加了width也是不能支持换行的,但是div不用加width都可以自动换行

我的第一个贴图 就是这个问题,所以换其他元素或是生成html时,让它换行;或者在深究代码改写一下(  
7 楼 cuiyaoonan2000 2015-01-07  
高军威 写道
或者 不用<td> 换别的标签元素实现,也不可吗

你好我下载了你的代码,并且经过测试,如果在table上添加了width也是不能支持换行的,但是div不用加width都可以自动换行
6 楼 高军威 2015-01-07  
cuiyaoonan2000 写道
高军威 写道
我使用 iText,你可以试试这个

你好,我看了下你的博客关于转成pdf 的文章,其中我下载了你的jar并且按照<<3.html静态文件生成pdf>> 这个例子做了下结果不显示中文.我想是因为没有在页面中加入对应的字体.不知道你页面是怎么写的. 还有就是Flying Saucer其实基于itext的.对比支持css要好,

需要安装字体,引用字体
http://yunpan.cn/cyqTTzpFwMURV  提取码 cd56 这是一个DEMO,Flying Saucer没用过改天瞧瞧
5 楼 cuiyaoonan2000 2015-01-07  
高军威 写道
我使用 iText,你可以试试这个

你好,我看了下你的博客关于转成pdf 的文章,其中我下载了你的jar并且按照<<3.html静态文件生成pdf>> 这个例子做了下结果不显示中文.我想是因为没有在页面中加入对应的字体.不知道你页面是怎么写的. 还有就是Flying Saucer其实基于itext的.对比支持css要好,
4 楼 高军威 2015-01-07  
我使用 iText,你可以试试这个
3 楼 高军威 2015-01-07  
cuiyaoonan2000 写道
高军威 写道
或者 不用<td> 换别的标签元素实现,也不可吗


补充:关于中文字符过长换行的问题,不仅td存在,div也存在其它标签一样,并且在添加了width的限制后该问题依然存在.




2 楼 高军威 2015-01-06  
或者 不用<td> 换别的标签元素实现,也不可吗
1 楼 高军威 2015-01-06  
这种情况吧

相关推荐

Global site tag (gtag.js) - Google Analytics