html的强制换行在itextpdf,使用itext将html生成pdf中文换行问题解决方案

这里使用的是itext2.0.8,高版本的itext使用请看http://www.voidcn.com/article/p-ssihooui-bdu.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遇到的问题。。。

参考的文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值