欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#設(shè)置PDF表單不可編輯以及提取表單數(shù)據(jù)的操作

 更新時(shí)間:2024年06月14日 10:48:28   作者:Eiceblue  
PDF表單是PDF中的可編輯區(qū)域,允許用戶填寫指定信息,當(dāng)表單填寫完成后,有時(shí)候我們可能需要將其設(shè)置為不可編輯,以保護(hù)表單內(nèi)容的完整性和可靠性,本文將給大家介紹C#設(shè)置PDF表單不可編輯以及提取表單數(shù)據(jù)的操作,需要的朋友可以參考下

PDF表單是PDF中的可編輯區(qū)域,允許用戶填寫指定信息。當(dāng)表單填寫完成后,有時(shí)候我們可能需要將其設(shè)置為不可編輯,以保護(hù)表單內(nèi)容的完整性和可靠性?;蛘咝枰獜腜DF表單中提取數(shù)據(jù)以便后續(xù)處理或分析。

之前文章詳細(xì)介紹過(guò)如何使用免費(fèi)Spire.PDF庫(kù)通過(guò)C# 創(chuàng)建、填寫表單,本文將繼續(xù)介紹該免費(fèi).NET PDF庫(kù)支持的另外兩種操作PDF表單的功能,即:

  • 使用C# 設(shè)置PDF表單不可編輯(PDF扁平化)
  • 使用C# 提取PDF表單數(shù)據(jù)

免費(fèi)庫(kù)安裝(2種方法):

Free Spire.PDF for .NET 免費(fèi)庫(kù)支持兩種安裝方式:

https://www.e-iceblue.com/Download/download-pdf-for-net-free.html

使用C# 設(shè)置PDF表單不可編輯(PDF扁平化)

PDF 表單如文本框、復(fù)選框、組合框等都是可編輯或可更改狀態(tài),如何想要鎖定這些區(qū)域,我們需要將PDF表單設(shè)置為不可編輯狀態(tài),即PDF扁平化。在Free Spire.PDF中, 我們可以通過(guò)將其提供的 PdfDocument.Form.IsFlatten 屬性設(shè)置為 "true" 來(lái)鎖定PDF表單不可編輯。

簡(jiǎn)單代碼示例:

using Spire.Pdf;
 
namespace FlattenAllFormFields
{
    class Program
    {
        static void Main(string[] args)
        {
            //加載PDF文件
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("PDF表單.pdf");
 
            //設(shè)置所有表單不可編輯
            pdf.Form.IsFlatten = true;
 
            //保存生成文件
            pdf.SaveToFile("扁平PDF.pdf");
        }
    }
}

以上示例一鍵鎖定了PDF文件中的所有表單,如果僅需鎖定某個(gè)指定的表單域,可以參考如下代碼片段:

            //獲取PDF表單
            PdfFormWidget formWidget = (PdfFormWidget)pdf.Form;
 
            //通過(guò)表單名獲取指定表單域
            PdfField form = formWidget.FieldsWidget["姓名"];
 
            //通過(guò)索引獲取指定表單域
            PdfField form = formWidget.FieldsWidget.List[0] as PdfField;
 
            //設(shè)置表單不可編輯
            form.Flatten = true;

使用C# 提取PDF表單數(shù)據(jù)

在Free Spire.PDF中,每種表單域都提供了對(duì)應(yīng)的類。要實(shí)現(xiàn)PDF表單數(shù)據(jù)的提取,我們需要先確定表單域的類型,然后再使用相應(yīng)類下的屬性來(lái)提取它們的值。

完整C#示例代碼:

using Spire.Pdf;
using Spire.Pdf.Fields;
using Spire.Pdf.Widget;
using System.IO;
using System.Text;
 
namespace ExtractFormFieldValues
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //加載PDF文件
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("PDF表單.pdf");
 
            //創(chuàng)建StringBuilder對(duì)象
            StringBuilder sb = new StringBuilder();
 
            //獲取PDF表單
            PdfFormWidget formWidget = doc.Form as PdfFormWidget;
 
            //遍歷表單
            for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
            {
                PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
 
                //獲取文本框的名稱和值
                if (field is PdfTextBoxFieldWidget)
                {
                    PdfTextBoxFieldWidget textBoxField = field as PdfTextBoxFieldWidget;
                    string name = textBoxField.Name;
                    string value = textBoxField.Text;
                    sb.Append("文本框名稱: " + name + "\r\n");
                    sb.Append("文本框內(nèi)容: " + value + "\r\n");
                }
 
                //獲取列表框的名稱、項(xiàng)目和選定項(xiàng)
                if (field is PdfListBoxWidgetFieldWidget)
                {
                    PdfListBoxWidgetFieldWidget listBoxField = field as PdfListBoxWidgetFieldWidget;
                    string name = listBoxField.Name;
                    sb.Append("列表框名稱: " + name + "\r\n");
                    sb.Append("列表框項(xiàng)目: \r\n");
 
                    PdfListWidgetItemCollection items = listBoxField.Values;
 
                    foreach (PdfListWidgetItem item in items)
                    {
                        sb.Append(item.Value + "\r\n");
                    }
                    string selectedValue = listBoxField.SelectedValue;
                    sb.Append("列表框選定項(xiàng): " + selectedValue + "\r\n");
                }
 
                //獲取組合框字段的名稱、項(xiàng)目和選定項(xiàng)
                if (field is PdfComboBoxWidgetFieldWidget)
                {
                    PdfComboBoxWidgetFieldWidget comBoxField = field as PdfComboBoxWidgetFieldWidget;
                    string name = comBoxField.Name;
                    sb.Append("組合框名稱: " + name + "\r\n");
                    sb.Append("組合框項(xiàng)目: \r\n");
                    PdfListWidgetItemCollection items = comBoxField.Values;
 
                    foreach (PdfListWidgetItem item in items)
                    {
                        sb.Append(item.Value + "\r\n");
                    }
                    string selectedValue = comBoxField.SelectedValue;
                    sb.Append("組合框選定項(xiàng): " + selectedValue + "\r\n");
 
                }
 
                //獲取單選按鈕的名稱和所選項(xiàng)
                if (field is PdfRadioButtonListFieldWidget)
                {
                    PdfRadioButtonListFieldWidget radioBtnField = field as PdfRadioButtonListFieldWidget;
                    string name = radioBtnField.Name;
                    sb.Append("單選按鈕名稱: " + name + "\r\n");
                    string selectedValue = radioBtnField.SelectedValue;
                    sb.Append("單選按鈕選定項(xiàng): " + selectedValue + "\r\n");
                }
 
                //獲取復(fù)選框的名稱和狀態(tài)
                if (field is PdfCheckBoxWidgetFieldWidget)
                {
                    PdfCheckBoxWidgetFieldWidget checkBoxField = field as PdfCheckBoxWidgetFieldWidget;
                    string name = checkBoxField.Name;
                    sb.Append("復(fù)選框名稱: " + name + "\r\n");
                    bool status = checkBoxField.Checked;
                    if (status)
                    {
                        sb.Append("復(fù)選框狀態(tài): 已選中 \r\n");
                    }
                    else
                    {
                        sb.Append("復(fù)選框狀態(tài): 未選中 \r\n");
                    }
                }
 
                sb.Append("\n");
            }
 
            //將提取的數(shù)據(jù)寫入txt文件
            File.WriteAllText("提取PDF表單.txt", sb.ToString());
            doc.Dispose();
        }
    }
}

提取PDF表單數(shù)據(jù)的效果圖:

總結(jié)

免費(fèi)Spire.PDF支持多種對(duì)PDF表單的操作,使用它,我們可以通過(guò)C# 輕松實(shí)現(xiàn)鎖定PDF表單以確保表單不被篡改或編輯,或者通過(guò)C# 快速提取PDF表單數(shù)據(jù)并用于各種用途,如數(shù)據(jù)分析、報(bào)告生成等。

以上就是C#設(shè)置PDF表單不可編輯以及提取表單數(shù)據(jù)的操作的詳細(xì)內(nèi)容,更多關(guān)于C#設(shè)置PDF表單不可編輯的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論