动态XFA PDF表单

我有许多使用Livecycle Designer创建的Dynamic XFA PDF . 这些PDF用作各种人员完成的模板 . 当用户请求模板时,我们必须编写一个提交按钮,其中url指向.net应用程序以进行处理,并将包含数据库信息的某些字段更新为PDF .

我可以使用带有.net的iText(Sharp)更新动态xfa pdf,将其写入提交按钮并更新字段,然后使用iText(Sharp)处理返回的表单 .

我们现在正在使用Acroforms执行此操作,但也需要对Dynamic XFA表单执行相同操作 . 我找不到任何可能的确认信息 . 如果有可能有人有任何他们可以分享的代码,告诉我如何做到这一点?

回答(1)

2 years ago

您还可以实现将pdf的内容放在XmlDocument中并在处理XML时工作 . 这是我用来替换用文本框编写的一些占位符的代码 .

PdfReader pdfReader = new PdfReader(path_pdf);
using (PdfStamper pdfStamp = new PdfStamper(pdfReader, new FileStream(temp_path, FileMode.Create), '\0', true))
{
    pdfStamp.ViewerPreferences = PdfWriter.AllowModifyContents;
    XmlDocument xmlDocument = pdfReader.AcroFields.Xfa.DomDocument;
    string pdfContent = xmlDocument.InnerXml;
    string newpdfContent = pdfContent
        .Replace("$CONTENT_TO_REPLACE_1$", "some_content")
        .Replace("$CONTENT_TO_REPLACE_2$", "some_other_content")

    xmlDocument.InnerXml = newpdfContent;
    Stream stream = GenerateStreamFromString(newpdfContent);
    pdfStamp.AcroFields.Xfa.FillXfaForm(stream);
    pdfStamp.AcroFields.Xfa.DomDocument = xmlDocument;
    pdfStamp.Close();
}