2017-07-12 486 views

回答

2

這在iText 7 Jump-start tutorialchapter 5中有解釋。再也沒有PdfStamper的課了。只有一個PdfDocument類用於創建文件以及以處理文件。

你的問題是非常不完整的。

您的代碼是用來填寫表單嗎?在這種情況下,你需要像這樣:

在C#
PdfDocument pdf = new PdfDocument(
    new PdfReader(src), new PdfWriter(dest)); 
PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true); 
Map<String, PdfFormField> fields = form.getFormFields(); 
fields.get("name").setValue("Abhishek Kumar"); 
pdf.close(); 

或者:

PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest)); 
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true); 
IDictionary<String, PdfFormField> fields = form.GetFormFields(); 
PdfFormField toSet; 
fields.TryGetValue("name", out toSet); 
toSet.SetValue("Abhishek Kumar"); 
form.FlattenFields(); 
pdf.Close(); 

是用你的代碼,以額外的內容添加到文檔?在這種情況下,你需要的東西是這樣的:

PdfDocument pdfDoc = 
    new PdfDocument(new PdfReader(src), new PdfWriter(dest)); 
Document document = new Document(pdfDoc); 
Rectangle pageSize; 
PdfCanvas canvas; 
int n = pdfDoc.getNumberOfPages(); 
for (int i = 1; i <= n; i++) { 
    PdfPage page = pdfDoc.getPage(i); 
    pageSize = page.getPageSize(); 
    canvas = new PdfCanvas(page); 
    // add new content 
} 
pdfDoc.close(); 

凡說// add new content,您可以添加內容到canvas

您是否在使用PdfStamper做其他事情?在這種情況下,你需要改善你的問題。

+0

謝謝,是的,我試圖填寫表單,從數據庫中獲取模板,填充它,然後將其保存在數據庫中。儘管我在Map fields = form.getFormFields();說找不到名字空間'Map <,>' –

+1

我認爲每個C#開發人員都應該知道Java中的C#等價於'Map'。我會更新我的答案。 –