未展平的PDF未提供所有记录

时间:2019-05-03 12:22:39

标签: c# pdf itext

我正在打印到使用itextsharp在Adobe LiveCycle Designer中创建的pdf表单。当我标记FormFlattening = true时,将打印所有字段,但是当我标记FormFlattening = false时,当我在Adobe Reader或Adobe Pro中打开文件时,这些字段会被稀疏地打印到表单上。如果在浏览器中打开文件,则所有字段均应显示,但是我很难告诉最终用户在chrome中编辑PDF,然后打印为PDF,然后将该文件发送给需要的人。< / p>

private byte[] Generate(Student student)
    {
        var reader = new PdfReader(Server.MapPath("~/Content/pdf/template.pdf"));
        using (var ms = new MemoryStream())
        {
            using (var pdfStamper = new PdfStamper(reader, ms))
            {
                var pdfFormFields = pdfStamper.AcroFields;

                pdfFormFields.SetField("Id1", student.Id);
                pdfFormFields.SetField("HeaderName1", $"{student.LastName}, {student.FirstName}");
                pdfFormFields.SetField("CurrentYear1", $"Fall {DateTime.Now.Year}");
                pdfFormFields.SetField("SessionAssigned", student.SessionAssigned.ToString());

                pdfFormFields.SetField("StudentName", $"{student.FirstName} {student.MiddleName} {student.LastName}");

var xfa = pdfFormFields.Xfa;
                var xml = pdfFormFields.Xfa.DatasetsNode.FirstChild.OuterXml;
                using (var stringReader = new StringReader(xml))
                {
                    using (var xmlReader = XmlReader.Create(stringReader))
                    {
                        xfa.FillXfaForm(xmlReader);
                        pdfStamper.FormFlattening = false;
                    }
                }

            }

            return ms.ToArray();
        }
    }

也不是相同的字段。它们是否出现在读者或专业人士中只是随机的。

我希望在用户去阅读器/专业版中编辑文件时显示所有字段。

0 个答案:

没有答案