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);
ITextFontResolver FontResolver();
fontResolver.addFont(“C:/Windows/Fonts/SIMSUN.TTC",
BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
renderer.layout();
pdf转html
os.close();
2、字体颜
设置字体颜不能用<font>标签,需用<span>标签,具体写法:
"<span style=\"color:red\">★</span>"。
3、自定义table列宽
在td或th标签内无论是写width=”10%”或style=”width:10%”再或者在table标签内增加非标准HTML属性columns="3"widths="50;10;40"都无效,正确的做法是用CSS来控制;
第一步:在HTML的head部分增加:
<style type=”text/css”mce_bogus=”1”>
.scoreCss{width:13%;}
</style>
第二部:在需要设置宽度的td或th上应用样式
<th align=“center”style=“background-color:#ededed;height:30px;”class=“scoreCss”>。
4、数组越界异常:Index3,size3
出现这种异常主要是由于HTML不规范,例如:
<table>
<tr>
<th>测试列1</th>
<th>测试列2</th>
</tr>
<tr></tr>
</table>
上面的HTML代码有一个空的tr;table的第一行定义了两列,而第二行没有指定列,就会报错;空行应改成<tr><td></td><td></td></tr>,即列数要统一。
5、td中文自动换行
在HTML的head部分增加:
<style type=”text/css”mce_bogus=”1”>
table{table-layout:fixed;word-break:break-strict;} </style>
这样table中的单元格内就会中文自动换行了
发布评论