我正在創建一個Web應用程序,它將使用iText填充PDF表單。要創建PDF表單,我首先使用Microsoft Word創建模板,保存模板,然後在Adobe Acrobat Xi Pro中打開該文件,添加我的表單域並將其保存爲PDF。問題是PDF不帶拖車保存,所以當我執行此:iText錯誤:java.io.IOException:未找到預告片
PdfReader reader = new PdfReader(templateName);
它拋出一個異常「java.io.IOException異常:拖車未找到」。我知道如果它有一個預告片,我可以閱讀PDF,因爲我試過閱讀其他PDF。所以看起來問題在於Acrobat沒有爲我的PDF添加預告片。即使我嘗試在Acrobat中從頭開始創建PDF表單,它也不會與預告片一起保存。
有沒有其他人遇到這個問題? Acrobat中是否有一些設置可以添加預告片?有沒有辦法讓iText在沒有預告片的情況下閱讀它?
==== ==== UPDATE
我必須有一箇舊版本的iText的,因爲當我下載了最新版本我能讀我的PDF文件。然而,在閱讀文件並加蓋後,我得到了關閉壓模的異常情況。代碼如下所示:
PdfReader reader = new PdfReader(templateName);
FileOutputStream os = new FileOutputStream(outputPath);
PdfStamper stamper = new PdfStamper(reader, os);
AcroFields acroFields = stamper.getAcroFields();
List<String> fields = getFieldNames(getContextCd());
for (String field : fields) {
acroFields.setField (field, StringUtil.checkEmpty(request.getParameter(field)));
}
stamper.setFormFlattening(true);
stamper.close();
我得到的錯誤是:
java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava /朗/字符串; Z)V 在com.itextpdf.xmp.impl.XMPMetaParser.createDocumentBuilderFactory(XMPMetaParser.java:423) 在com.itextpdf.xmp.impl.XMPMetaParser。(XMPMetaParser.java:71) 在com.itextpdf.xmp.XMPMetaFactory.parseFromBuffer(XMPMetaFactory .java:167) at com.itextpdf.xmp.XMPMetaFactory.parseFromBuffer(XMPMetaFactory.java:153) at com.itextpdf.text.pdf.PdfStamperIm p.close(PdfStamperImp.java:337) 在com.itextpdf.text.pdf.PdfStamper.close(PdfStamper.java:208)
我加入到我的類路徑中的唯一的jar文件是itextpdf-5.5.2。罐。我需要任何其他的罐子嗎?
向我們展示PDF。 Adobe Acrobat總是添加一個預告片。也許還有另外一個問題。另外:你正在使用哪個版本的iText?我記得過去我們對預告片的位置非常嚴格:我們實際上實現了規格,並且在某些時候我們不太嚴格,因爲並非所有的PDF都遵守規格(但是由Acrobat Professional創建的規格總是這樣)。 – 2014-09-10 13:23:53
如何顯示PDF?我很高興分享它,我只是不知道如何。 – Mike 2014-09-10 13:36:24
將它放在Dropbox等文件共享服務上並共享鏈接。屏幕截圖不會,我們需要PDF。 – 2014-09-10 13:42:18