iTextSharp表格填充工作...有点

时间:2017-10-22 14:37:30

标签: c# pdf itext pdf-form

我有一个支持XFA的PDF文档,我想以编程方式填写。我正在使用C#和iTextSharp 5.5.12.0

该文档受密码保护,因此我设置了PdfReader.unethicalreading = true;

我正在使用的文件是N-400

当我在Adobe Acrobat Reader中查看时,填充的文档已正确设置了字段。但是,如果我在浏览器(例如IE或Chrome)中打开它,则字段为空。

我在追加模式下打开文件。

这是我的代码(SRC,XML和DEST是包含文件完整路径的字符串)。

        using (FileStream pdf = new FileStream(SRC, FileMode.Open))
        using (FileStream xml = new FileStream(XML, FileMode.Open))
        using (FileStream filledPdf = new FileStream(DEST, FileMode.Create))
        {
            PdfReader.unethicalreading = true;
            PdfReader pdfReader = new PdfReader(pdf);
            pdfReader.RemoveUsageRights();

            PdfStamper stamper = new PdfStamper(pdfReader, filledPdf, '\0', true);
            string[] fields = stamper.AcroFields.Fields.Select(x => x.Key).ToArray();
            for (int key = 0; key <= fields.Count() - 1; key++)
            {
                stamper.AcroFields.SetFieldProperty(fields[key], "setfflags", PdfFormField.FF_READ_ONLY, null);
            }
            stamper.Writer.CloseStream = false;

            stamper.AcroFields.Xfa.FillXfaForm(xml);
            stamper.Close();
            pdfReader.Close();
        }

0 个答案:

没有答案