`

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  
这种情况吧

相关推荐

    java测试工具html转pdf

    不过,可以结合其他工具如Flying Saucer来实现HTML到PDF的转换。 2. **Flying Saucer**:这是一个开源的Java库,它能够将HTML、CSS和XHTML渲染成PDF。Flying Saucer使用了开源Web浏览器引擎Itext来完成转换,能够...

    【Java】利用HTML生成PDF之问题整理

    在Java中,有许多库可以帮助我们实现这个功能,如iText、 Flying Saucer 和 Apache PDFBox。这些库提供了API,可以解析HTML并将其转换为PDF文档。iText是一款强大的PDF处理库,而Flying Saucer则专门用于将HTML转换...

    JAVAj将页面生成PDF

    1. **HTML to PDF转换库**:Java中有很多库可以帮助我们完成这个任务,如iText、Flying Saucer、PDFBox等。其中,Flying Saucer是一个广泛使用的库,它能够将HTML、CSS和图片转换为高质量的PDF文档。iText则主要针对...

    html转为图片,java后端

    在`pom.xml`文件中,你可以找到所有必要的依赖,如Flying Saucer和IText,这两个库是实现HTML转图片的关键。 2. **Flying Saucer库**: Flying Saucer是一个开源库,能够将HTML、CSS渲染成PDF或图片。在这个项目中...

    convert:word文档转换系统

    Flying Saucer是一个可以将HTML渲染为PDF的库,如果转换系统有将Word转为HTML然后再转为PDF的需求, Flying Saucer则会在此过程中提供支持。它可以解析HTML,然后按照指定的CSS样式生成高质量的PDF输出。 在实现这...

    Java企业人事管理

    Apache POI用于处理Excel文件,iText或Flying Saucer处理PDF。 12. **测试**:单元测试和集成测试是保证系统质量的关键。JUnit和Mockito用于后端测试,而Selenium或Protractor则用于前端UI测试。 13. **持续集成/...

    进销存管理系统.rar

    Java可以借助JFreeChart等库生成图表,而iText或Flying Saucer用于创建PDF格式的报表,便于打印和导出。 7. **单元测试与持续集成**:Java的JUnit和Mockito等工具用于编写单元测试,保证代码质量;而Jenkins、...

Global site tag (gtag.js) - Google Analytics