HTML字符串转PDF问题解决
本人使用的是itext2.0.8,依赖文件:core-renderer.jar、iText-2.0.8.jar、iTextAsian.jar可以网上自行下载
解决问题:
1、中文乱码
OutputStream os = new FileOutputStream(filename);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlstr);
ITextFontResolverfontResolver = renderer.getFontResolver();
fontResolver.addFont(“C:/Windows/Fonts/SIMSUN.TTC",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
http://www.doczj.com/doc/91b1bbf78bd63186bcebbca2.htmlyout();
renderer.createPDF(os);
os.close();
增加红色部分代码,SIMSUN.TTC是系统的宋体字体文件。
2、字体颜色
设置字体颜色不能用标签,需用标签,具体写法:
"★"。
3、自定义table列宽
在td或th标签内无论是写width=”10%”或style=”width:10%”再或者在table标签内增加非标准HTML属性columns="3" widths="50;10;40"都无效,正确的做法是用CSS来控制;
第一步:在HTML的head部分增加:
.scoreCss{width:13%;}
第二部:在需要设置宽度的td或th上应用样式
。
4、数组越界异常:Index 3,size 3
出现这种异常主要是由于HTML不规范,例如:
测试列1
测试列2
上面的HTML代码有一个空的tr;table的第一行定义了两列,而第二行没有指定列,就会报错;空行应改成
,即列数要统一。