2
正在使用itext从html内容创建pdf。我使用java字符串缓冲区以表格的形式构建html内容。一个Map包含键值对形式的文件的元数据值。我迭代这些键和值来构建html表。问题是地图中的一些元数据值是无意义/无效的符号。因此,pdf创建失败,出现以下例外。IText如果HTML包含特殊/非法字符,则Html中的PDF创建失败
java.io.IOException: Expected > for tag: <{1}/> near line 1, column 717
at com.lowagie.text.xml.simpleparser.SimpleXMLParser.throwException(SimpleXMLParser.java:568)
at com.lowagie.text.xml.simpleparser.SimpleXMLParser.go(SimpleXMLParser.java:331)
at com.lowagie.text.xml.simpleparser.SimpleXMLParser.parse(SimpleXMLParser.java:579)
at com.lowagie.text.html.simpleparser.HTMLWorker.parse(HTMLWorker.java:141)
Content which caused the exception is
“$é6莚ÆuCÅ ©À SÀF;r 1Ì/XQ‡,Ô<ÒÐ"‡(¢ËÄòÅ1¡Ø€ÌÅc
所以我的问题是这些字符是什么(非Ascii,utf-unsupported)?有什么方法可以在构建html时识别并跳过它们?
唯一不好字符是这里的<<,它不应该出现在你的HTML中。将它转换为正确的转义形式'<'应该可以解决它。 – usr2564301 2014-09-26 09:30:15
@Jongware:我正在转义所有可能的html字符。逃脱后的内容是 ““$é6莚ÆuCÅ©À\t SAF; R 1I/XQ‡,Ô< OD "‡(¢€ËÄòÅ1¡ØIAC” 即使如此,它失败.. – Vijay 2014-09-26 09:38:40
“失败” 是**不是一个有用的问题描述,你原来的错误是'Expected> for tag',当然你必须得到一个新的错误信息? – usr2564301 2014-09-26 09:51:12