使用itext将html生成pdf中文换行问题解决方案
2013-06-19 17:06
369 查看
这里使用的是itext2.0.8,高版本的itext使用请看/article/9937093.html,如果使用高版本的就不用看这篇文章了
研究了很久,翻了网上很多资料才解决这个问题,一开始也是跟着别人的解决办法走,但是我看到很多人都失败了,其实很多都是细节上的问题,在此把我成功的项目共享给大家。
1. 要解决中文问题,也就是需要iTextAsian.jar,但是我最后把这个jar包给删了,发现也能正确生成中文。所以有时网上说的不一定就是正确的。当然这个包只是在我的方法中没用到,因为我这里都用了宋体常规,代码中有句
String path = "C:\\Windows\\Fonts\\simsun.ttc";
fontResolver.addFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
是表明使用宋体常规,所以在html页面里也要加上,不加上中文无法显示
body {
font-family:SimSun;
}
2. 中文换行问题
如果是table就需要在style中加上table-layout:fixed; word-break:break-strict;才能正确换行显示
还有网上兄弟说遇见标点位置错误问题,我暂时没遇到,所以没做深入研究
3.使用html文件生成pdf是要注意几点:
代码:renderer.setDocumentFromString(new String(content, "UTF-8"));中的编码需要与文件编码保持一致
当使用UTF-8编码时,需要保存为UTF-8 No Bom的模式,不然会解析出错
另外core-render对html的格式要求很严格,不标准的html无法解析。
后面我会继续整理web环境下的pdf文件生成和高版本的itext将html生成pdf遇到的问题。。。
参考的文章:
http://downpour.iteye.com/blog/509417?page=3#comments
http://blog.csdn.net/shanliangliuxing/article/details/6833471#t0
研究了很久,翻了网上很多资料才解决这个问题,一开始也是跟着别人的解决办法走,但是我看到很多人都失败了,其实很多都是细节上的问题,在此把我成功的项目共享给大家。
1. 要解决中文问题,也就是需要iTextAsian.jar,但是我最后把这个jar包给删了,发现也能正确生成中文。所以有时网上说的不一定就是正确的。当然这个包只是在我的方法中没用到,因为我这里都用了宋体常规,代码中有句
String path = "C:\\Windows\\Fonts\\simsun.ttc";
fontResolver.addFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
是表明使用宋体常规,所以在html页面里也要加上,不加上中文无法显示
body {
font-family:SimSun;
}
2. 中文换行问题
如果是table就需要在style中加上table-layout:fixed; word-break:break-strict;才能正确换行显示
还有网上兄弟说遇见标点位置错误问题,我暂时没遇到,所以没做深入研究
3.使用html文件生成pdf是要注意几点:
代码:renderer.setDocumentFromString(new String(content, "UTF-8"));中的编码需要与文件编码保持一致
当使用UTF-8编码时,需要保存为UTF-8 No Bom的模式,不然会解析出错
另外core-render对html的格式要求很严格,不标准的html无法解析。
后面我会继续整理web环境下的pdf文件生成和高版本的itext将html生成pdf遇到的问题。。。
参考的文章:
http://downpour.iteye.com/blog/509417?page=3#comments
http://blog.csdn.net/shanliangliuxing/article/details/6833471#t0
相关文章推荐
- 使用itext将html生成pdf中文换行问题解决方案2
- 利用itext导出HTML到PDF,解决中文不显示和中文不换行的问题
- xhtmlrenderer进行HTML转PDF【解决中文、数字、英文过长自动换行问题】
- 使用iTextSharp 解析html生成pdf,xmlworker不支持中文的解决办法
- iText7 生成 PDF 文件,解决各种操作系统中文问题,控制指定位置显示图片、文字、图文混排
- 通过swagger2markup+asciidoctorj生成html和pdf文档并解决asciidoctorj生成的pdf文件中文显示不全问题(maven方式及java代码方式)
- 使用XMLWorkerHelper.getInstance().parseXHtml生成PDF时中文不显示或乱码问题
- ITEXT5.5.8转html为pdf文档解决linux不显示中文问题
- velocity 用模版生成HTML,PDF文件(解决了中文问题)
- itext应用HTML模版生成PDF并加水印,处理了中文问题
- [ASP.net MVC] 将HTML转成PDF档案,使用iTextSharp套件的XMLWorkerHelper (附上解决显示中文问题)
- java使用iText生成pdf:解决中文
- springMVC中itext生成PDF,根本上解决中文乱码以及不显示问题
- 最简单 iText 的 PDF 生成方案(含中文解决方案)HTML 转为 PDF
- 使用itext根据freemarks模版生成pdf,表格产生跨页问题解决方法
- 用itext生成pdf报表下篇(解决中文问题)
- iText+Flying Saucer生成pdf文档,中文不显示和不自动换行问题
- IText 导出PDF 中文问题解决
- 关于html编辑器的回车换行问题解决方案