我正在使用iTextSharp使用XML来填充带有XML数据的XFA表格的PDF
以下代码。如果我将字节写入PDF文件,我可以打开它看看
XML属性(例如&
)中的字符显示为&
。
public static byte[] FillDynamicPdf(XElement templateXml, PdfReader reader)
{
using (var pdfStream = new MemoryStream())
using (var xmlStream = new MemoryStream())
{
templateXml.Save(xmlStream);
xmlStream.Position = 0;
using (var stamper = new PdfStamper(reader, pdfStream))
{
stamper.AcroFields.Xfa.FillXfaForm(xmlStream);
}
return pdfStream.ToArray();
}
}
但是,当我使用XFAFlattener(带有付费许可证)时
字节数组&
显示在最终的PDF中。我四处寻找
相当多,似乎无法找到任何人发布相同的问题或任何
良好的API文档。那里的人有同样的问题吗?看起来是这么回事
必须非常普遍。
这是我们展平过程的代码片段 - 可能是一些语法错误 因为我必须复制并粘贴代码中的相关行以使其适合 很好地在这个问题领域。
byte[] pdfStream = getFormFilledPDFBytes();
var outputStream = new MemoryStream();
var document = new Document();
var writer = PdfWriter.GetInstance(document, outputStream);
var reader = new PdfReader(pdfStream);
var xfaf = new XFAFlattener(document, writer);
xfaf.Flatten(reader);
var flatPdf = outputStream.ToArray();