我正在尝试使用 java 将 html 文档转换为 PDF,而我发现的唯一解决方案是使用 iText (XMLWorkerHelper)。
它有效,但我的问题是它似乎忽略了 HTML 表单值,导致它们没有显示在最终的 pdf 中。例如,如果我的 html 中有一个“名称:[用文本框写的东西]”,
<input class="layout" readonly="readonly" name="Name"
id="Name" value="ABCD WXYZ" size="83" maxlength="60"
type="text" />
只有“名称:”会出现在 pdf 中。
关于如何解决这个(愚蠢的?)问题的任何提示?当然,即使使用不同的(开源)API。
附上我的代码:
private static void createPDF (){
String path = "myTest.pdf";
PdfWriter pdfWriter = null;
//create a new document
Document document = new Document();
try {
//get Instance of the PDFWriter
pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(path));
//document header attributes
//open document
document.open();
InputStream is = new FileInputStream("page.html");
// create new input stream reader
InputStreamReader isr = new InputStreamReader(is);
//get the XMLWorkerHelper Instance
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
//convert to PDF
worker.parseXHtml(pdfWriter, document, isr);
//close the document
document.close();
//close the writer
pdfWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
正如你所看到的,没有太多要编译的东西,所以我猜问题出在工人本身,也许我忽略了一些让它工作的东西。如果我尝试在任何随机在线服务上转换 html 页面,它会完美运行。
顺便说一句,我尝试将我的 html 源代码上传到 iText 演示(http://demo.itextsupport.com/xmlworker/),但它仍然存在这个问题......