[英]How to copy an AcroForm using iText?
我有一個帶有acroform的pdf。 我正在使用iText打開此pdf並在表單字段中填入一些數據。 有時我需要生成比原始pdf更多的頁面。 為此,我創建了一個頁面,並使用以下代碼替換現有頁面:
OutputStream output = new FileOutputStream("C:\\newFile.pdf");
PdfStamper stamper = PdfHelper.openPdfStamper("C:\\template.pdf", output);
stamper.insertPage(NEW_PAGE_NUMBER, new Rectangle(0,0));
stamper.replacePage(stamper.getReader(), EXISTING_PAGE_NUMBER, NEW_PAGE_NUMBER);
執行此操作時,現有頁面中的字段不會復制到新頁面。
這是添加新頁面的好方法嗎? (新頁面必須等於現有頁面)
如何將表單字段復制到新頁面? 如何更改新的表單字段名稱,以便不會有重復的字段?
編輯:我要復制的頁面有一個表。 但是這個表只有十行。 如果用戶輸入了十個以上的項目,我想填充整個表格並創建一個新頁面來填充其他項目。
現在我正在制作該頁面的多個副本以避免這種溢出。 但我不認為這是一個優雅的解決方案,它不適用於非常大的輸入。
我使用了PdfCopyFields。 首先,我打開一個新的PdfCopyFields實例並調用SetFullCompression()。 然后我將模板加載到一個字節緩沖區中,對於每個“模板”頁面,我使用PdfStamper,設置表單字段,並將其輸出添加到Reader和讀取器中的PdfCopyFields。 就是這樣。 在我的測試中,它可以很好地縮放多頁,最終的pdf大小也不錯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.