C# 在PDF中创建和填充域

yizhihongxing

C# 在PDF中创建和填充域攻略

步骤 1: 导入依赖库

在开始前,请确保你已经安装了以下依赖库:

using iTextSharp.text;
using iTextSharp.text.pdf;

步骤 2: 创建PDF并添加表单域

首先,我们需要创建一个空的PDF文件,并且添加表单域。

// 创建一个空白PDF文档
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("output.pdf", FileMode.Create));
document.Open();

// 创建表单
PdfContentByte cb = writer.DirectContent;
PdfFormField formField;

// 创建文本域
formField = PdfFormField.CreateTextField(writer, false, false, 100);
formField.SetWidget(new Rectangle(100, 700, 200, 750), PdfAnnotation.HIGHLIGHT_INVERT);
formField.FieldName = "textfield";
formField.DefaultValue = "默认文本";
cb.AddAnnotation(formField);

// 创建复选框
formField = PdfFormField.CreateCheckBox(writer);
formField.SetWidget(new Rectangle(100, 650, 120, 670), PdfAnnotation.HIGHLIGHT_INVERT);
formField.FieldName = "checkbox";
formField.Checked = true;
cb.AddAnnotation(formField);

// 创建单选框
formField = PdfFormField.CreateRadioButton(writer, true);
formField.SetWidget(new Rectangle(100, 600, 120, 620), PdfAnnotation.HIGHLIGHT_INVERT);
formField.FieldName = "radiobutton";
formField.ValueAsName = "选项一";
cb.AddAnnotation(formField);

// 创建下拉框
formField = PdfFormField.CreateCombo(writer, false);
formField.SetWidget(new Rectangle(100, 550, 200, 570), PdfAnnotation.HIGHLIGHT_INVERT);
formField.FieldName = "dropdown";
formField.Options = new string[] { "选项一", "选项二", "选项三" };
cb.AddAnnotation(formField);

// 创建列表框
formField = PdfFormField.CreateList(writer, false);
formField.SetWidget(new Rectangle(100, 500, 200, 520), PdfAnnotation.HIGHLIGHT_INVERT);
formField.FieldName = "listbox";
formField.Options = new string[] { "选项一", "选项二", "选项三" };
cb.AddAnnotation(formField);

// 关闭PDF文档
document.Close();

该示例中,我们创建了一个空白的PDF文档,并为其添加了文本域、复选框、单选框、下拉框和列表框五种表单域。

步骤 3: 读取并填充表单域

接下来,我们将展示如何读取并填充已存在的表单域。

// 打开已有的PDF文档
PdfReader reader = new PdfReader("input.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileStream("output.pdf", FileMode.Create));

// 获取表单域
AcroFields formFields = stamper.AcroFields;

// 填充文本域
formFields.SetField("textfield", "填充的文本");

// 填充复选框
formFields.SetField("checkbox", "是");

// 填充单选框
formFields.SetField("radiobutton", "选项一");

// 填充下拉框
formFields.SetField("dropdown", "选项二");

// 填充列表框
formFields.SetField("listbox", "选项三");

// 关闭PDF文档
stamper.Close();
reader.Close();

该示例中,我们打开了一个已存在的PDF文档,并使用AcroFields对象获取表单域。然后,我们使用SetField方法填充了文本域、复选框、单选框、下拉框和列表框。

以上就是使用C#创建和填充PDF表单域的完整攻略,你可以根据自己的需求来进行相应的调整和扩展。完成上述步骤后,你将能够在PDF中创建和填充各种类型的表单域。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 在PDF中创建和填充域 - Python技术站

(0)
上一篇 2023年6月28日
下一篇 2023年6月28日

相关文章

  • shell通过正则匹配ip地址实例代码

    当使用Shell脚本编写时,可以使用正则表达式来匹配IP地址。下面是一个完整的攻略,包含了两个示例说明。 步骤1:编写正则表达式 首先,我们需要编写一个正则表达式来匹配IP地址。IP地址由四个数字组成,每个数字的范围是0到255。以下是一个匹配IP地址的正则表达式示例: ^([0-9]{1,3}\\.){3}[0-9]{1,3}$ 步骤2:编写Shell脚本…

    other 2023年7月30日
    00
  • c盘满了怎么清理?

    C盘是我们日常使用的计算机系统所在的系统盘,在我们平时的使用过程中会逐渐积累大量的文件,导致C盘空间不足。如果C盘空间不足,系统可能会崩溃、出现冻结、运行缓慢等问题。为了解决这些问题,我们需要及时清理C盘。 以下是C盘满了的实用清理方法和建议: 一、清理系统临时文件 Windows操作系统会产生大量的系统临时文件,不仅会占用C盘空间,而且会影响系统运行速度。…

    其他 2023年4月16日
    00
  • ubuntu查看和写入系统日志

    Ubuntu系统日志是记录系统事件和错误的重要工具。在Ubuntu中,可以使用systemd日志系统来查看和写入系统日志。以下是一个完整攻略,介绍了如在Ubuntu中查看和写入系统日志。 步骤1:查看系统日志 要查看系统日志,可以使用journalctl命令。以下是一个示例: journalctl 上述命令将显示所有系统日志。您可以使用以下选项来过滤日志: …

    other 2023年5月6日
    00
  • Fedora 9官方最终稳定版下载地址集合

    Fedora 9官方最终稳定版下载地址集合攻略 Fedora 9是一款流行的Linux发行版,本攻略将为您提供Fedora 9官方最终稳定版的下载地址集合。请按照以下步骤进行操作: 步骤一:访问Fedora官方网站 首先,您需要访问Fedora官方网站以获取Fedora 9的下载地址。您可以在浏览器中输入以下网址进行访问: https://getfedora…

    other 2023年8月4日
    00
  • 日常整理linux常用命令大全(收藏)

    日常整理Linux常用命令大全(收藏) 回答者以Markdown形式记录了对Linux命令的整理与总结,包括Linux常用命令、Shell脚本、网络命令、常用工具等方面。 Linux常用命令 回答者整理记录Linux常用命令,建议先掌握这些命令。 常用命令包括: 目录操作: ls #查看目录内容 cd dir #切换到目录dir mkdir dir #创建新…

    other 2023年6月26日
    00
  • 逆水寒九灵什么属性重要 基本属性对九灵加成数据测试介绍

    当然,下面是关于逆水寒九灵基本属性加成数据测试的完整攻略,包含两个示例说明: 基本属性对九灵加成数据测试介绍 首先,选择一个九灵,例如「风灵」作为测试对象。 确定九灵的基本属性,包括攻击力、防御力、生命值等。 创建一个测试角色,并记录下其基本属性。 使用测试角色攻击一个固定的目标,记录下造成的伤害。 将测试角色装备上九灵「风灵」,并记录下装备后的基本属性。 …

    other 2023年10月17日
    00
  • vant快速上手

    Vant是一款基于Vue.js的移动端UI组件库,提供了丰富的组件和样式,可以快速构建高质量的移动端应用。以下是关于Vant快速上手的详细攻略: Vant快速上手 以下是使用Vant快速上手的步骤: 安装Vant 可以使用npm或yarn安装Vant: npm install vant -S 或 yarn add vant 引入Vant 在Vue.js项目中…

    other 2023年5月9日
    00
  • JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例

    JS代码屏蔽F12、右键、粘贴、复制、剪切、选中等操作,是一种常见的前端安全措施,可以避免恶意用户通过浏览器的开发工具获取网页的源代码和敏感信息。在下面的回答中,我将提供一些实现JS的屏蔽操作的方法和示例代码,并进行一些解释说明。 1.屏蔽F12和右键操作 通过下面的JS代码可以屏蔽F12和右键操作: document.onkeydown = functio…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部