当前位置: 首页 > 知识库问答 >
问题:

自动化Adobe PDF表单导入/导出数据功能

禹德水
2023-03-14

在Adobe AcROAT席XI中,编辑PDF表单时,存在以下函数

工具-

导入数据获取一个XML文件,并将数据导入PDF。Export显然是根据输入到当前表单中的数据创建一个XML文件。

我需要在一个虚拟环境中模拟这个功能。Net应用程序。(最好是基于网络的)。

是否有任何第三方库(iTextSharp?)可以获取一个PDF文件和一个XML文件,并输出一个从XML导入数据的PDF?或者使用Acrobat本机库是自动化的最佳选择?

有没有人用第三方库或Adobe组件做过类似的事情?

注意:我需要导入/导出的PDF表单不是在内部创建的。具体来说,我需要用专利局创建的PDF表格来完成这项工作。(SB08a信息披露声明)

http://www.uspto.gov/patents/process/file/efs/guidance/updated_IDS.pdf

谢谢

共有1个答案

康锦
2023-03-14

我发现我可以从ITextSharp库中获得我需要的行为。

    /// <summary>
    /// Exports XFA data from a PDF File.
    /// </summary>
    /// <param name="populatedPDFForm">a readable stream of the PDF with a populated form</param>
    /// <returns>A stream containing the exported XML form data</returns>
    public static System.IO.MemoryStream Export(System.IO.Stream populatedPDFForm)
    {
        System.IO.MemoryStream outputStream = new System.IO.MemoryStream();
        using (iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(populatedPDFForm))
        {
            var settings = new System.Xml.XmlWriterSettings { Indent = true };
            using (var writer = System.Xml.XmlWriter.Create(outputStream, settings))
            {
                reader.AcroFields.Xfa.DatasetsNode.WriteTo(writer);
            }
        }
        return outputStream;
    }

    /// <summary>
    /// Imports XFA Data into a new PDF file.
    /// </summary>
    /// <param name="pdfTemplate">A PDF File with an unpopulated form.</param>
    /// <param name="xmlFormData">XFA form data in XML format.</param>
    /// <returns>a memorystream containing the new PDF file.</returns>
    public static System.IO.MemoryStream Import(System.IO.Stream pdfTemplate, System.IO.Stream xmlFormData)
    {
        System.IO.MemoryStream outputSteam = new System.IO.MemoryStream();
        using (iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(pdfTemplate))
        {
            using (iTextSharp.text.pdf.PdfStamper stamper = new iTextSharp.text.pdf.PdfStamper(reader, outputSteam))
            {
                stamper.Writer.CloseStream = false;
                stamper.AcroFields.Xfa.FillXfaForm(xmlFormData);
            }
        }
        return outputSteam;
    }
 类似资料:
  • 我得到了以下.js文件,它在我的网站的每个页面上都被调用,并且自动将表转换为DataTables: 当我导出一个表(即excelHtml5、pdfHtml5或print)时,我希望导出的文档标题显示该表的data-exporttitle属性(如果该表具有该属性),否则显示默认值。当前和默认情况下,标题显示页面标题。 如何修改上面的脚本才能做到这一点呢? 如果这个信息有任何帮助,我的网站上的一些页面

  • 数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。 数据导出 接口 POST https://cloud.minapp.com/userve/v1/table/:table_id/export/ 其中 table_id 是数据表的 ID 请求参数 参数 类型 必填 说明 file_type String 是 导出文件的格式,支持 csv、json 格式 mode St

  • 数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。 数据导出 接口 POST https://cloud.minapp.com/oserve/v1/table/:table_id/export/ 其中 table_id 是数据表的 ID 请求参数 参数 类型 必填 说明 file_type String 是 导出文件的格式,支持 csv、json 格式 mode St

  • 通过Three.js模型数据导入导出过程的学习,可以让你对Threejs解析加载外部模型的过程更为了解。 Threejs导出模型信息 你可以通过下面代码导出模型的各类信息,然后在浏览器控制台打印出来模型数据,然后复制浏览器控制台模型数据粘贴到json文件中,最后可以尝试加载解析这些Threejs导出的json文件。之所以这么做,是为了让你理解其它三维软件,比如3dmax、blender软件导出的三

  • 通过对数据表的导入导出,可以实现 MySQL 数据库服务器与其它数据库服务器间移动数据。导出是指将 MySQL 数据表的数据复制到文本文件。数据导出的方式有多种,本节主要介绍使用 SELECTI...INTO OUTFILE 语句导出数据。 在 MySQL 中,可以使用 SELECTI...INTO OUTFILE 语句将表的内容导出成一个文本文件。SELECT...INTO OUTFILE 语句

  • 我是docker的新手,在运送数据容器时遇到了一个问题。好的,通常我们会发送图像,用户可以根据需要从该图像中启动容器,对吗? 现在我也想运送一些数据——所以我做了一个数据容器: 接下来,我简单地启动了一个bash,并将一些数据插入到我的数据容器中 现在我想允许我的团队成员使用相同的数据(脱机),所以我想“发送”我的数据容器给他们。因此我使用 但是当我重新导入这个 我不能使用这个“容器”,因为它似乎