使用Adobe Acrobat Pro从Excel填写PDF表单数据

时间:2012-01-24 22:05:33

标签: c# excel-vba adobe vba excel

是否有使用Excel数据源填写PDF表单字段? (想想1000 pdf)

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

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

只要概念成立,

Adob​​e的VBA或Javascript就可以了。如果不是太多,一些手动部件是可以的。

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

谢谢!

2 个答案:

答案 0 :(得分:6)

如所承诺的那样:)

已经过测试

// 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();
        }
    }
}

修改:要与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/2012/01/28/fillretrieve-data-from-pdf-form-fields-using-vb-net-from-an-excel-file/

答案 1 :(得分:0)

您的问题是针对 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