<td>
<html:text name="LIHF" property="documentNumber" styleId="documentNumber" disabled="true" styleClass="textarea168" />
</td>
XMLWorkerHelper.getInstance().parseXHtml(writer, document,new StringReader(newHTML));
错误
com.itextpdf.tool.xml.exceptions.RuntimeWorkerException: Invalid nested tag td found, expected closing tag input.
at com.itextpdf.tool.xml.XMLWorker.endElement(XMLWorker.java:134)
at com.itextpdf.tool.xml.parser.XMLParser.endElement(XMLParser.java:395)
at com.itextpdf.tool.xml.parser.state.ClosingTagState.process(ClosingTagState.java:70)
at com.itextpdf.tool.xml.parser.XMLParser.parseWithReader(XMLParser.java:235)
我正在使用:
我传递了字符串 -
String k = "<html><body> This is my Project </body></html>";
生成pdf。
一旦我传递了struts表单元素,它就会生成输入标签未关闭的错误。
答案 0 :(得分:1)
我看到3个错误:
<html:text ... />
是Struts标记,而不是HTML标记。 XMLWorker只能将呈现的HTML解析为PDF。在将XML提供给XMLWorker之前,Struts需要先解析它。这就是<html><body> This is my Project </body></html>
可行的原因,但<html:text ... />
或任何其他Struts标记都无法正常工作。要修复1和2,请将项目转换为Maven项目并将其添加到pom.xml
:
<dependencies>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.11</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.11</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-core</artifactId>
<version>1.3.10</version>
</dependency>
</dependencies>
要修复3,Struts需要先生成完整的HTML。我对Struts一无所知,所以我可以告诉你如何做到这一点。