0
我們正在將我們的代碼庫從iText 2.1.7移植到iText 5.5.0(是的,我知道..我們有一點點時間了;-)。 嗯..「現在」是copyAcroForm已經渡渡鳥的方式,我在努力尋找替代驗證碼:copyAcroForm的替代方案是什麼?
File outputFile = new File...
Document document = new Document();
FileOutputStream fos = new FileOutputStream(outputFile);
PdfCopy subjobWriter = new PdfCopy(document, fos);
document.open();
PdfReader reader = new PdfReader(generationReader);
for (int i=1; i<=reader.getNumberOfPages(); i++) {
PdfImportedPage page = subjobWriter.getImportedPage(reader, i);
subjobWriter.addPage(page);
}
PRAcroForm form = reader.getAcroForm();
if (form != null)
subjobWriter.copyAcroForm(reader);
subjobWriter.freeReader(reader);
reader.close();
subjobWriter.close();
document.close();
fos.close();
,但還沒有真正發現任何東西。我讀了4.34左右的更新日誌,顯然我應該使用PdfCopy.addDocument()。我試過並且註釋掉了其他代碼,例如:
...
PdfReader reader = new PdfReader(generationReader);
reader.consolidateNamedDestinations();
subjobWriter.addDocument(reader);
subjobWriter.freeReader(reader);
subjobWriter.setOutlines(SimpleBookmark.getBookmark(reader));
...
但是這也沒有幫助。
問題是,除了複製表單(及其字段和內容)外,複製了原始PDF中的所有內容,或者更確切地說,它看起來像是整個表單已被展平。由於我可以找到的所有樣本都使用了不再存在的copyAcroForm()或已棄用的PdfCopyFields類,並且在itextpdf.com和「iText in Action,2nd edition」中的所有樣本都使用copyAcroForm() ),以及如何解決這個問題。任何想法的人?
羅格
啊謝謝布魯諾..是的,我一次添加,但顯然在錯誤的位置。您的示例工作,並表示讚賞,非常感謝!是否有計劃在iText行動的第三版(我會是一個快樂的購買者:-)? – Fuggly
是和不是。我正在寫一系列書籍,但不是出版商。他們將免費在LeanPub上提供:https://leanpub.com/u/itextsoftware我已經開始寫一本關於低級PDF的書,但正如你所看到的,我已經在收集有關高級PDF的書籍示例,高級PDF創建和操作。這個視頻教程已經給你一個你可以期待的印象:http://itextpdf.com/codenvy_webapp –
整潔!我會看看他們......謝謝你幫助我。還有一個最後一個問題:我看到XmpWriter.addRdfDescription()已被棄用。什麼是替代呢?是否有一個頁面可以查看已棄用方法的替代方案?或者我可以提出一個建議並添加一個Javadoc描述(如果可能的話),該描述鏈接到交互項,或者如果它的一個小改動,已經顯示了JavaDoc中的更改? – Fuggly