使用 iTextSharp 生成 PDF 表单

发布于 2024-11-10 01:14:58 字数 96 浏览 0 评论 0原文

如何在 iTextSharp 中创建可填写的 PDF 文件。截至目前,我可以创建一个包含文本的 pdf 文件,但是我在创建可填充字段方面遇到了困难。任何帮助或示例代码将不胜感激。

How can i create a fillable PDF file in iTextSharp. As of right now I can create a pdf file with text in it, however I'm struggling in creating fillable fields. Any help or sample code would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

待天淡蓝洁白时 2024-11-17 01:14:59

试试这个:

AcroFields fields = pdf.AcroFields;
fields.SetField("field_1", "1");
fields.SetField("field_2", "2");

Try this:

AcroFields fields = pdf.AcroFields;
fields.SetField("field_1", "1");
fields.SetField("field_2", "2");
时光瘦了 2024-11-17 01:14:58

使用 Adobe LiveCycle Designer 等第三方软件制作 pdf 表单比使用 iTextsharp 编码更容易。您只需根据表单的需要放置一些文本框、复选框或单选按钮,设置其字体、字体大小和样式。它的数据类型。

记下所有字段名称(如“TextField1”等)。创建一个新的 Web 表单,其中包含一些向该字段提供数据的文本框。

然后,您可以使用如下代码轻松填写该表格:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        var reader = new PdfReader(Server.MapPath("~/Emptyform.pdf"));
        var output = new MemoryStream();
        var stamper = new PdfStamper(reader, output);
        stamper.AcroFields.SetField("TextField1", TextBox1.text);
        stamper.FormFlattening = true;
        stamper.Close();
        reader.Close();
        File.WriteAllBytes(Server.MapPath("~/Filledform.pdf"),output.ToArray());        
    }
}

It's more easy to make pdf form from third party softwares like Adobe LiveCycle Designer than coding with iTextsharp. You just have to put some textbox, checkbox or radio buttons as required with your form, setting its fonts, font size & its datatype.

Mark down all the field names(like "TextField1" etc). Create a new webform that contains some textboxes which feeds data to that fields.

You can then fill up that form easily with the code like below:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        var reader = new PdfReader(Server.MapPath("~/Emptyform.pdf"));
        var output = new MemoryStream();
        var stamper = new PdfStamper(reader, output);
        stamper.AcroFields.SetField("TextField1", TextBox1.text);
        stamper.FormFlattening = true;
        stamper.Close();
        reader.Close();
        File.WriteAllBytes(Server.MapPath("~/Filledform.pdf"),output.ToArray());        
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文