【问题标题】:Fill PDF form data from Excel with Adobe Acrobat Pro使用 Adob​​e Acrobat Pro 从 Excel 填写 PDF 表单数据
【发布时间】:2012-02-18 04:15:30
【问题描述】:

是否可以使用 Excel 数据源填写 PDF 表单域? (想想 1000 个 pdf)

对于 Excel 中的每一行,根据模板“myForm.pdf”创建一个新的空白 pdf,并将 Excel 中列中的匹配值填充到“myForm.pdf”中的字段中,然后将其保存为“myForm(i) .pdf"

最后将所有的 pdf 合并成一个 PDF 文档。

只要概念成立,适用于 Adob​​e 的 VBA 或 Javascript 就可以。如果不是太多,一些手动零件是可以的。

显然没有太多教程,所以我非常感谢这里的任何专业知识。

谢谢!

【问题讨论】:

  • vb.net 代码有帮助吗?我没有专业的 Adob​​e,所以我从未在 VBA 中尝试过,但我确信在 VBA 中是可能的。
  • 构建一个 vb.net 应用程序,从 excel 中获取数据集并将其转储为 pdf?我宁愿看 c# .net 代码,因为我实际上不太了解 vb.net 并且不想转换它。
  • 好的,让我看看能不能把它转换成 C#。今天晚些时候将发布代码。
  • 听起来不错。感谢您的帮助。
  • 我也添加了 C# 标签,以便您获得更多回复 :)

标签: c# excel adobe vba


【解决方案1】:

正如承诺的那样:)

久经考验

// Add reference to iTextSharp.dll. Freely available on the web. Free to use for non commercial applications.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.xml;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Original Pdf
            string PDFFile = "C:\\MyOriginalPDF.pdf";

            // New Pdf
            string newPDFFile = "C:\\NewPDFFILE.pdf";

            PdfReader pdfReader = new PdfReader(PDFFile);
            PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newPDFFile, FileMode.Create));

            AcroFields pdfFFields = pdfStamper.AcroFields;

            // Fill PDF Form Fields
            pdfFFields.SetField("FieldName1", "Value1");
            pdfFFields.SetField("FieldName2", "Value2");
            //
            // And So on

            // Use this to remove editting options by setting it to false
            // To keep editing option leave it as TRUE
            pdfStamper.FormFlattening = true;

            // close the pdf
            pdfStamper.Close();
        }
    }
}

编辑:要从 C# 与 Excel 交互,我建议访问下面提到的链接。

主题:VB.NET 和 Excel

链接VB.NET and Excel

要将 VB.Net 代码转换为 C#,请使用以下链接 :)

主题:将 C# 代码转换为 VB.Net 和反之亦然

链接http://www.developerfusion.com/tools

如果您仍然被卡住,请告诉我,我们会从那里拿走它... :)

更多编辑!!!

受您帖子的启发,我终于在我的博客上写了一篇文章。现在您所要做的就是复制整个代码并将其转换为 C# 并进行相关更改以满足您的需求:)

主题:使用 VB.Net 从 Excel 文件中填充/检索 PDF 表单字段中的数据

链接http://www.siddharthrout.com/index.php/2018/08/28/fillretrieve-data-from-pdf-form-fields-using-vb-net-from-an-excel-file/

【讨论】:

  • 非常酷的图书馆!出色的工作和博客上的出色工作。 100分当之无愧。非常感谢悉达多。
【解决方案2】:

您的问题是针对 Adob​​e Acrobat Pro,但我们最终使用了具有相同问题的替代工具。 在我的公司,我们经常使用PDF Mail Merger 来处理我们必须批量填写和发送的所有类型的 PDF 表格。我们发现它非常易于使用。

用法:

您将被引导完成 4 个步骤:

  1. 上传PDF文件
  2. 上传 Excel 文件
  3. 在编辑器中,您可以拖放 PDF 上的占位符
  4. 点击开始PDF填写过程

优点:

  • 适用于任何类型的 PDF 文件(不需要可填写的表单字段)
  • 支持多种电子表格格式(Microsoft Excel、Open Office 电子表格、CSV、TXT 等)
  • 新的 PDF 表单模板设置速度非常快
  • PDF 表单模板可以一键重复使用
  • 无需编程知识

缺点:

  • 如果使用免费计划,他们会在您的 PDF 文件上打印水印

截图:

Home Screen

Upload PDF file

Editor for drag'n'drop placeholders

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 2014-09-29
    相关资源
    最近更新 更多