我正在打印到使用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();
}
}
也不是相同的字段。它们是否出现在读者或专业人士中只是随机的。
我希望在用户去阅读器/专业版中编辑文件时显示所有字段。