2012-03-09 96 views
1

我使用iTextSharp來填充PDF中的字段。我希望PDF在用戶打開時保持可編輯狀態(即我不能將PDF壓扁)。爲什麼我的PDF字段在Adobe Reader中保持空白?

問題是,當我戳記PDF並在Adobe Reader中查看值時,這些字段保持空白。 如果我戳的PDF,並平坦它,然後查看值然後這些字段確實有價值。

如何填充字段並保持PDF可編輯?

這裏是我的方法的ASP.NET MVC行動:

public ActionResult GetPdfTWOWithSurname() 
{ 
     PdfHelpers _pdfHelper = new PdfHelpers(Server, Url, "~/Content/newForm.pdf"); 
     var outStream = new MemoryStream(); 
    var pdfReader = new PdfReader(_pdfHelper.GetPdfBytes()); 
     var pdfStamper = new PdfStamper(pdfReader, outStream, '\0', true); //The 'true' value is important. Otherwise the document loses some dynamic features. 
    pdfStamper.Writer.CloseStream = false; 
    pdfStamper.FormFlattening = false; //Allow editing after close. 


    var fields = pdfStamper.AcroFields; 

    //Fill in text fields... 
     fields.SetField("topmostSubform[0].Page2[0].InvestorDetails_Surname[0]", "This is a surname"); 
    pdfStamper.Close(); 

    //Get outStream bytes and return... 
    outStream.Seek(0, SeekOrigin.Begin); 
    byte[] outBytes = new byte[outStream.Length]; 
    outStream.Read(outBytes, 0, (int)outStream.Length); 

    return File(outBytes, "application/pdf", "ThePdfFileTWO.pdf"); 
} 

注意,這個PDF啓用的讀者,我認爲它保持這樣即使在保存以來的Adobe閱讀器顯示「擴展」工具箱當我打開文件。這些字段仍然可編輯。

另請注意,PDF仍然是可編輯的,並且字段在Foxit PDF閱讀器中具有值...。

請幫助

回答

0

我有,如果PDF與使用Adobe Acrobat創建具有擴展功能的同樣的問題,它只是發生。我發現的唯一選擇是重新創建表單,以便彈出框無法彈出。 GL

相關問題