我使用iText将html转换为pdf,但我不断在parseXHtml
处抛出RuntimeWorkerException。这是我的代码:
Document tempDoc = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(tempDoc, out);
tempDoc.open();
XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, tempDoc, new ByteArrayInputStream(html.getBytes()));
tempDoc.close();
我不太熟悉HTML和XHTML之间的差异,所以我对如何处理这个问题感到有些不知所措。 Here's the html source if it helps
答案 0 :(得分:14)
错误消息非常清楚,标题中的<meta>
标记未关闭,在HTML
但XHTML
无效<meta ... />
这就是你的意思将其解析为。您需要关闭这些{{1}}
答案 1 :(得分:0)
如果您使用的是XMLWorkerHelper,请确保使用/&gt;来正确结束图像,断点标记。
答案 2 :(得分:0)
对于类似的错误消息-
invalid nested tag body found, expected closing tag meta
原来我正在解析的XHTML在底部有一个<script>
部分,其中包含JS代码,例如:
<script>
function my_func(var) {
...
}
</script>
在删除该代码后(通过简单的字符串操作),我能够使.parseXHtml
正常工作。
答案 3 :(得分:0)
您必须关闭每个标签。 示例-HTML
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
有效。
但是在xhtml中,您必须使用
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
因此关闭html中的每个标签(例如meta标签,col标签,img标签等)。
答案 4 :(得分:0)
记住要关闭所有元标记
<meta ... />