下面是使用C#程序给PDF文件添加编辑域的完整攻略:
准备工作
在开始添加编辑域之前,我们需要准备一些工作。首先,我们需要下载和安装iTextSharp,这是一个开源的PDF编辑库。其次,我们需要安装Adobe Acrobat DC,这是一个非常流行的PDF编辑器,我们后续需要用它来验证PDF文件中添加的编辑域是否有效。
添加编辑域
一旦我们准备好了工作,我们就可以开始添加编辑域了。下面是代码示例:
using iTextSharp.text;
using iTextSharp.text.pdf;
public static void AddEditFieldToPdf(string inputFile, string outputFile, string fieldName)
{
using (var existingPdf = new PdfReader(inputFile))
{
using (var stamper = new PdfStamper(existingPdf, new FileStream(outputFile, FileMode.Create)))
{
var textField = new TextField(stamper.Writer, new iTextSharp.text.Rectangle(100, 100, 200, 200), fieldName);
var field = textField.GetTextField();
stamper.AcroFields.AddTextField(field, true);
}
}
}
以上代码将在指定的PDF文件中添加一个名为fieldName
的编辑域,坐标范围为(100, 100)
和(200, 200)
。请注意,这些值是以PDF页面的左下角为原点,其他的坐标信息也需要以此为基准。
验证编辑域
添加编辑域之后,我们需要验证它是否有效。我们可以使用Adobe Acrobat DC打开修改后的PDF文件,然后点击“表单”按钮来查看表单元素。如果我们添加的编辑域正常工作,我们应该可以在表单中看到一个名为fieldName
的文本框,我们可以使用鼠标点击它并在其中输入内容。
除了验证编辑域是否有效之外,我们还可以使用以下代码获取已经添加的编辑域列表:
using iTextSharp.text.pdf;
public static List<string> GetFormFields(string inputFile)
{
var result = new List<string>();
using (var reader = new PdfReader(inputFile))
{
var fields = reader.AcroFields;
foreach (var field in fields.Fields)
{
result.Add(field.Key);
}
}
return result;
}
以上代码将返回指定PDF文件中所有的表单域名。
示例
下面是两个示例说明,分别演示了在新建PDF文件中添加一个简单文本字段和动态地创建和添加一个列表字段。
示例1:添加文本字段
public static void AddTextField(string outputFile, string fieldName, string value)
{
using (var document = new Document())
{
using (var writer = PdfWriter.GetInstance(document, new FileStream(outputFile, FileMode.Create)))
{
document.Open();
var textField = new TextField(writer, new Rectangle(50, 700, 150, 750), fieldName)
{
Text = value
};
document.Add(new Paragraph(textField.ToString()));
document.Close();
}
}
}
以上代码将在新建的PDF文件中添加一个名为fieldName
的简单文本字段,坐标范围为(50, 700)
和(150, 750)
,字段值为value
。
示例2:添加列表字段
public static void AddListField(string outputFile, string fieldName, params string[] options)
{
using (var document = new Document())
{
using (var writer = PdfWriter.GetInstance(document, new FileStream(outputFile, FileMode.Create)))
{
document.Open();
var comboBoxField = new ComboBox(writer, new Rectangle(50, 700, 150, 750), fieldName, options)
{
Editable = false
};
document.Add(new Paragraph(comboBoxField.ToString()));
document.Close();
}
}
}
以上代码将在新建的PDF文件中添加一个名为fieldName
的列表字段,坐标范围为(50, 700)
和(150, 750)
,选项列表为options
数组中的元素。此外,我们还将设置列表为不可编辑(Editable = false
)。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用C#程序给PDF文件添加编辑域 - Python技术站