C# 在PDF中创建和填充域

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日

相关文章

  • sql中去除重复的数据selectdistinct*fromtable

    SQL中去除重复的数据 在数据库中,我们常常需要对数据进行去重操作。SQL提供了一个非常方便的方法,即使用DISTINCT关键字。 SELECT DISTINCT语法 使用SELECT DISTINCT可以快速去除表中的重复行,其用法如下: SELECT DISTINCT column1, column2, … FROM table_name; colu…

    其他 2023年3月29日
    00
  • 注册表常用命令大全 通向程序的快捷途径

    注册表常用命令是Windows系统中的一个重要组成部分,它可以让用户方便地查找并操作系统中的各种设置和应用程序。下面是使用注册表常用命令的攻略: 1. 如何打开注册表 首先,让我们来看看如何打开注册表。有两种方法可以打开注册表: 方法一:使用“运行”方式打开 使用“运行”方式打开,步骤如下: 使用快捷键“Win + R”打开“运行”对话框; 在对话框中输入“…

    other 2023年6月25日
    00
  • win10打开图片显示文件系统错误怎么办?

    当我们在Windows 10中打开图片时,有时可能会遇到“文件系统错误”问题。这可能是由于文件损坏、文件系统错误或其他问题导致的,以下是解决该问题的详细攻略: 方案一:使用系统自带的图像查看器进行修复 找到您要查看的图片。 右键单击该图片并选择“打开方式”。 从弹出的选项列表中选择“照片”应用程序。 如果该程序无法打开图片,并出现“文件系统错误”,请按以下步…

    other 2023年6月27日
    00
  • iOS 8.2 Beta 5固件下载 已向开发者推送

    iOS 8.2 Beta 5固件下载教程 最近苹果向开发者推送了iOS 8.2 Beta 5固件,这个版本加入了很多新特性和BUG修复,对于iOS开发者来说是一个非常重要的更新。本文将详细讲解如何下载iOS 8.2 Beta 5固件。 步骤一:成为苹果开发者 首先你需要成为苹果开发者,因为只有成为苹果开发者才能下载iOS开发人员预览版。苹果目前提供有两种方式…

    other 2023年6月26日
    00
  • 轻松理解execl系列函数

    轻松理解Excel系列函数 Excel是各个行业中广泛使用的电子表格软件,大量的数据处理、统计工作都依靠Excel的各种函数来完成。为了更好地使用Excel,我们需要详细了解Excel的函数,包括各种函数的基本语法和用法。在这篇文章中,我们将简要介绍Excel系列函数的使用。 SUM函数 SUM函数是Excel中最基础的数学函数之一,用于求和。SUM函数可以…

    其他 2023年3月28日
    00
  • 详解Windows 配置Java环境变量的方法

    详解Windows 配置Java环境变量的方法 Java环境变量是指在Windows操作系统中,设置Java程序运行所需要的一些基本路径和环境变量,如JAVA_HOME、PATH等。在安装Java开发环境时,如果没有进行自定义安装,那么往往不会设置Java环境变量,这就需要我们手动配置。下面是Java环境变量配置的详细过程。 步骤一:查看Java安装路径 首…

    other 2023年6月27日
    00
  • C++函数的嵌套调用和递归调用学习教程

    C++函数的嵌套调用和递归调用学习教程 在C++中,函数的调用是非常常见的操作。函数的嵌套调用和递归调用是函数调用中比较复杂但又常见的操作之一。本文将详细介绍这两种调用方式的概念、使用方法以及相应的示例。 函数的嵌套调用 所谓函数的嵌套调用,即在一个函数内部调用另一个函数。这种调用方式可以很好地实现代码的模块化,减少冗余代码。 函数的嵌套调用应该注意以下几点…

    other 2023年6月27日
    00
  • iphone6s提示剩余空间不足怎么办 苹果6s出现内存不足解决方法

    iPhone 6s提示剩余空间不足怎么办 苹果iPhone 6s是一款功能强大的智能手机,但由于其存储空间有限,可能会出现内存不足的问题。在这篇攻略中,我将为您提供解决iPhone 6s内存不足问题的方法,并提供两个示例说明。 方法一:清理不必要的文件和应用 删除不需要的照片和视频:打开相册应用,浏览并删除您不再需要的照片和视频。您可以选择手动删除每个文件,…

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