使用C#代码压平 PDF 表单字段

压平表单字段是防止他人修改或删除 PDF 表单内容的一种有效方式。压平后,表单字段将失去编辑和填写功能,其内容会以普通文本的形式显示在文档中。本文将介绍如何在 C# 和 VB.NET 中实现 PDF 表单字段压平,包括压平指定表单字段以及一次性压平所有表单字段的方法。

安装 PDF 组件

在开始之前,需要先在 .NET 项目中添加相关 PDF 组件的 DLL 引用。您可以通过下载安装包获取 DLL 文件,也可以直接通过 NuGet 安装。

cs 复制代码
PM> Install-Package Spire.PDF

在 C# 和 VB.NET 中压平 PDF 指定表单字段

以下是压平 PDF 文档中指定表单字段的基本步骤:

  1. 初始化 PdfDocument 类的实例。
  2. 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
  3. 获取文档中的表单字段集合。
  4. 通过字段名称或索引获取指定的表单字段,例如使用 PdfFormWidget.FieldsWidget["fieldName"] 属性或 PdfFormWidget.FieldsWidget.List[fieldIndex] 属性。
  5. 使用 PdfField.Flatten 属性压平表单字段。
  6. 使用 PdfDocument.SaveToFile() 方法保存结果文档。

示例代码如下:

cs 复制代码
using Spire.Pdf;
using Spire.Pdf.Fields;
using Spire.Pdf.Widget;

namespace FlattenSpecificFormField
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 PdfDocument 实例
            PdfDocument pdf = new PdfDocument();

            // 加载 PDF 文档
            pdf.LoadFromFile("Form.pdf");

            // 获取表单字段集合
            PdfFormWidget formWidget = (PdfFormWidget)pdf.Form;

            // 通过字段名称获取指定表单字段
            PdfField form = formWidget.FieldsWidget["Address"];

            // 通过索引获取指定表单字段
            //PdfField form = formWidget.FieldsWidget.List[2] as PdfField;

            // 压平表单字段
            form.Flatten = true;

            // 保存结果文档
            pdf.SaveToFile("FlattenSpecific.pdf");
        }
    }
}

在 C# 和 VB.NET 中压平 PDF 所有表单字段

以下是压平 PDF 文档中所有表单字段的基本步骤:

  1. 初始化 PdfDocument 类的实例。
  2. 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文档。
  3. 通过 PdfDocument.Form.IsFlatten 属性压平文档中的所有表单字段。
  4. 使用 PdfDocument.SaveToFile() 方法保存结果文档。

示例代码如下:

cs 复制代码
using Spire.Pdf;

namespace FlattenAllFormFields
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建 PdfDocument 实例
            PdfDocument pdf = new PdfDocument();

            // 加载 PDF 文档
            pdf.LoadFromFile("Form.pdf");

            // 压平文档中的所有表单字段
            pdf.Form.IsFlatten = true;

            // 保存结果文档
            pdf.SaveToFile("FlattenAll.pdf");
        }
    }
}

总结

本文介绍了如何在 C# 中压平 PDF 文档中的所有表单字段。通过加载 PDF 文件并将 pdf.Form.IsFlatten 属性设置为 true,可以快速将可编辑的表单转换为不可编辑的普通内容。压平后的表单字段将无法再被填写、修改或删除,从而有效保护文档内容,避免信息被篡改。该方法适用于合同、申请表、发票以及其他需要固定表单内容的 PDF 文档场景。

相关推荐
爱喝水的鱼丶1 小时前
SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇)第三篇:SAP接口对接开发:实现数据的实时/批量校验交互
运维·数据库·学习·性能优化·sap·abap·经验交流
真香号1 小时前
记一次生产RocketMQ消息积压消费慢的排查与解决
数据库·rocketmq·java-rocketmq
数据库小学妹1 小时前
国产数据库技术成熟度实测:从Oracle兼容到高可用,四个维度评估能不能上生产
数据库·经验分享·oracle·性能优化·dba
俊哥工具1 小时前
电脑怎么玩手机APP?超简单新手教程
pdf·电脑·word·excel·音视频
JdSnE27zv2 小时前
数据库性能优化三:程序操作优化
数据库·sql·性能优化
AC赳赳老秦3 小时前
OpenClaw任务复盘自动化:统计每日完成工作、遗留问题,优化工作节奏
java·大数据·linux·运维·服务器·数据库·openclaw
AOwhisky3 小时前
学习自测(MySQL系列第一期、第二期)
linux·运维·数据库·学习·mysql·云计算
周杰伦fans3 小时前
C# CAD 二次开发:无需启动 AutoCAD 实现 DWG 转 DXF 的完整技术指南
开发语言·c#
我叫张小白。3 小时前
Redis BitMap实现用户签到功能
数据库·redis·缓存·fastapi
时尚IT男3 小时前
Python发票识别实战:从PDF中精准提取发票号与(小写)¥金额
开发语言·python·pdf