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/ ) にアップロードしようとしましたが、まだ問題があります...