我正在尝试使用java将html文档转换为PDF,我找到的唯一解决方案是使用iText(XMLWorkerHelper)。
它有效,但我的问题是它似乎忽略了HTML表单值,导致它们没有在最终的pdf中显示。例如,如果我的html中有一个“名称:[在TextBox中写的东西]”,
<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/),但它仍然存在这个问题......