RuntimeWorkerException:找到无效的嵌套标记头,预期结束标记元

时间:2014-08-25 17:38:19

标签: java html pdf itext html-to-pdf

我使用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

5 个答案:

答案 0 :(得分:14)

错误消息非常清楚,标题中的<meta>标记未关闭,在HTMLXHTML无效<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 ... />