2012-07-03 83 views
3

我嘗試用C#填充PDF表單。但不知何故,它不起作用。問題:fields對象(在行:fields.SetField("Name", "Peter");)似乎是null用iTextSharp填充PDF-Form-Fields

這裏是我的代碼:

public static void FillForm() 
{ 
    String pdfTemplate = @"c:\Users\Hagen\Desktop\formular.pdf"; 
    String newFile = @"c:\Users\Hagen\Desktop\formular_fertig.pdf"; 
    PdfReader pdfReader = new PdfReader(pdfTemplate); 
    PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create)); 
    AcroFields fields = pdfStamper.AcroFields; 
    fields.SetField("Name", "Peter"); 
    pdfStamper.Close(); 
} 
+0

你的代碼完美地工作(複製/粘貼)在Adobe的Acrobat Pro創建的窗體。 – vbocan

回答

2

我記得有,當我第一次嘗試填寫表單域類似的問題。您擁有的行初始化pdfStamper;

PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create)); 

嘗試添加ReadWrite權限到壓模對象像這樣。

PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create, FileAccess.ReadWrite)); 

這可能是你的問題。我不記得我是如何自己解決這個問題的,但那是最初跳出來的。它可能很好地試圖在字段值中寫入,但壓模器沒有FileAccess來完成它。

希望這有助於