在VS2010中使用itextsharp v5.5.5.0设置图章FormFlattening = true时,不会将任何文件数据写入输出pdf。如果设置为false,则所有数据都存在&正确但仍可编辑(我不希望这样)。
PdfReader pdfTemplate = new PdfReader("..\\..\\pdf\\BFC-Template.pdf");
FileStream fileOutputStream = new FileStream("..\\..\\pdf\\BFC.pdf", FileMode.Create);
PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream);
stamper.AcroFields.SetField("FitID", "1234");
stamper.AcroFields.SetField("FitBy", "Fred Flintstone");
stamper.AcroFields.SetField("FitDate", "03/11/2015");
stamper.AcroFields.SetField("FitLocation", "Bedrock");
stamper.FormFlattening = true;
stamper.Close();
pdfTemplate.Close();
fileOutputStream.Close();发布于 2015-03-07 05:50:01
尝试添加:
stamper.AcroFields.GenerateAppearances = true;编辑:
如果您的表单是动态表单。你可能需要改变
stamper.AcroFields.SetField("FitID", "1234");至:
stamper.AcroFields.Xfa.DatasetsSom.Name2Node["FitID"].InnerText = "1234"发布于 2015-03-07 05:59:43
这并不重要,但是您可以尝试从pdfStamper字段实例化一个AcroFields对象。
PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream);
AcroFields pdfFields = pdfStamper.AcroFields;然后,您只需使用pdfFields设置每个字段:
pdfFields.SetField("FitID", "1234");
pdfFields.SetField("FitBy", "Fred Flintstone");
pdfFields.SetField("FitDate", "03/11/2015");
pdfFields.SetField("FitLocation", "Bedrock");
stamper.FormFlattening = true;
stamper.Close();我有这样的设置,它对我很有效。
https://stackoverflow.com/questions/28908081
复制相似问题