当我们把PDF表单域填写完成后,可以将这些域设置为只读来阻止用户修改或删除表单域的内容。Spire.PDF组件支持以下两种方式将PDF表单域设置为只读:
- 将表单域扁平化(Flatten)
- 将表单域设置为只读(Read-only)
本文将介绍如何使用Spire.PDF将PDF文档中的所有/指定表单域扁平化以及将PDF文档中的所有/指定表单域设置为只读。
将表单域扁平化
我们可以使用PdfForm类的IsFlatten属性来将PDF文档中的所有表单域扁平化。代码示例如下:
C#
//加载PDF文档
PdfDocument document = new PdfDocument();
document.LoadFromFile("Form.pdf");
//获取文档中的现有表单域
PdfForm loadedForm = document.Form;
//扁平化所有表单域
loadedForm.IsFlatten = true;
//保存文档
document.SaveToFile("Flatten1.pdf");
VB.NET
'加载PDF文档
Dim document As New PdfDocument()
document.LoadFromFile("Form.pdf")
'获取文档中的现有表单域
Dim loadedForm As PdfForm = document.Form
'扁平化所有表单域
loadedForm.IsFlatten = True
'保存文档
document.SaveToFile("Flatten1.pdf")
此外,我们还可以通过PdfField类的Flatten属性来扁平化指定表单域:
C#
//加载PDF文档
PdfDocument document = new PdfDocument();
document.LoadFromFile("Form.pdf");
//获取文档中的现有表单域
PdfFormWidget form = document.Form as PdfFormWidget;
//扁平化指定表单域
PdfField field = form.FieldsWidget.List[0] as PdfField;
field.Flatten = true;
//保存文档
document.SaveToFile("Flatten2.pdf");
VB.NET
'加载PDF文档
Dim document As New PdfDocument()
document.LoadFromFile("Form.pdf")
'获取文档中的现有表单域
Dim form As PdfFormWidget = TryCast(document.Form, PdfFormWidget)
'扁平化指定表单域
Dim field As PdfField = TryCast(form.FieldsWidget.List(0), PdfField)
field.Flatten = True
'保存文档
document.SaveToFile("Flatten2.pdf")
将表单域设置为只读
将PDF文档中的所有表单域设置为只读,我们可以使用PdfForm类的ReadOnly属性:
C#
//加载PDF文档
PdfDocument document = new PdfDocument();
document.LoadFromFile("Form.pdf");
//获取文档中的现有表单域
PdfForm loadedForm = document.Form;
//将所有表单域设置为只读
loadedForm.ReadOnly = true;
//保存文档
document.SaveToFile("ReadOnly1.pdf");
VB.NET
'加载PDF文档
Dim document As New PdfDocument()
document.LoadFromFile("Form.pdf")
'获取文档中的现有表单域
Dim loadedForm As PdfForm = document.Form
'将所有表单域设置为只读
loadedForm.[ReadOnly] = True
'保存文档
document.SaveToFile("ReadOnly1.pdf")
将PDF文档中的指定表单域设置为只读,我们可以使用PdfField类的ReadOnly属性:
//加载PDF文档
PdfDocument document = new PdfDocument();
document.LoadFromFile("Form.pdf");
//获取文档中的现有表单域
PdfFormWidget form = document.Form as PdfFormWidget;
//将指定表单域设置为只读
PdfField field = form.FieldsWidget.List[0] as PdfField;
field.ReadOnly = true;
//保存文档
document.SaveToFile("ReadOnly2.pdf");
VB.NET
'加载PDF文档
Dim document As New PdfDocument()
document.LoadFromFile("Form.pdf")
'获取文档中的现有表单域
Dim form As PdfFormWidget = TryCast(document.Form, PdfFormWidget)
'将指定表单域设置为只读
Dim field As PdfField = TryCast(form.FieldsWidget.List(0), PdfField)
field.[ReadOnly] = True
'保存文档
document.SaveToFile("ReadOnly2.pdf")