ITextSharp保存没有字段的PDF

时间:2018-01-26 19:47:59

标签: c# pdf itext acrofields

我想以平面模式保存PDF文件。我已经尝试了所有在线解决方案,但从未在我的代码中运行。

我有一个用ITextSharp和Acrofields生成的文件。当我尝试设置选项pdf.FormFlattening = true;时,它对我的​​解决方案不起作用。

该文件是从使用Adobe Livecycle Designer

创建的“Adobe静态PDF表单”生成的

这是我的功能:

    using (var streamPdf = new MemoryStream())
    {
       PdfStamper pdf;
       using (var pdfReader = new PdfReader(Application.StartupPath + PathToFile + Template))
       using (pdf = new PdfStamper(pdfReader, streamPdf))
       {
          AcroFields pdfFormFields = pdf.AcroFields;
          foreach (var field in fields)
          {
             pdfFormFields.SetField(field.FieldName, field.FieldValue.Trim());
          }
       }
       foreach (var de in pdfReader.AcroFields.Fields)
       {
          pdfFormFields.SetFieldProperty(de.Key.ToString(),"setfflags",PdfFormField.FF_READ_ONLY,null);
       }
       pdf.FormFlattening = true;
       pdf.AcroFields.GenerateAppearances = true;
       pdf.Close();
       _pdf = streamPdf.ToArray();
   }
   string filename = "name.pdf";
   using (var fs = new FileStream(filename, FileMode.Create))
   {
      fs.Write(_pdf, 0, _pdf.Count());
      fs.Close();
   }

生成的文件是静态PDF,我需要没有字段的PDF。

感谢所有

0 个答案:

没有答案