最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

免費庫安裝(2種方法):

Free Spire.PDF for .NET 免費庫支持兩種安裝方式:

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中, 我們可以通過將其提供的 PdfDocument.Form.IsFlatten 屬性設(shè)置為 "true" 來鎖定PDF表單不可編輯。

簡單代碼示例:

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文件中的所有表單,如果僅需鎖定某個指定的表單域,可以參考如下代碼片段:

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

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

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

完整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對象
            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");
                }
 
                //獲取列表框的名稱、項目和選定項
                if (field is PdfListBoxWidgetFieldWidget)
                {
                    PdfListBoxWidgetFieldWidget listBoxField = field as PdfListBoxWidgetFieldWidget;
                    string name = listBoxField.Name;
                    sb.Append("列表框名稱: " + name + "\r\n");
                    sb.Append("列表框項目: \r\n");
 
                    PdfListWidgetItemCollection items = listBoxField.Values;
 
                    foreach (PdfListWidgetItem item in items)
                    {
                        sb.Append(item.Value + "\r\n");
                    }
                    string selectedValue = listBoxField.SelectedValue;
                    sb.Append("列表框選定項: " + selectedValue + "\r\n");
                }
 
                //獲取組合框字段的名稱、項目和選定項
                if (field is PdfComboBoxWidgetFieldWidget)
                {
                    PdfComboBoxWidgetFieldWidget comBoxField = field as PdfComboBoxWidgetFieldWidget;
                    string name = comBoxField.Name;
                    sb.Append("組合框名稱: " + name + "\r\n");
                    sb.Append("組合框項目: \r\n");
                    PdfListWidgetItemCollection items = comBoxField.Values;
 
                    foreach (PdfListWidgetItem item in items)
                    {
                        sb.Append(item.Value + "\r\n");
                    }
                    string selectedValue = comBoxField.SelectedValue;
                    sb.Append("組合框選定項: " + selectedValue + "\r\n");
 
                }
 
                //獲取單選按鈕的名稱和所選項
                if (field is PdfRadioButtonListFieldWidget)
                {
                    PdfRadioButtonListFieldWidget radioBtnField = field as PdfRadioButtonListFieldWidget;
                    string name = radioBtnField.Name;
                    sb.Append("單選按鈕名稱: " + name + "\r\n");
                    string selectedValue = radioBtnField.SelectedValue;
                    sb.Append("單選按鈕選定項: " + 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é)

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

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

相關(guān)文章

  • 淺解關(guān)于C#多線程的介紹

    淺解關(guān)于C#多線程的介紹

    本篇文章小編將為大家介紹,淺解關(guān)于C#的多線程,有需要的朋友可以參考一下
    2013-04-04
  • C#讀取Excel的三種方式以及比較分析

    C#讀取Excel的三種方式以及比較分析

    這篇文章主要介紹了C#讀取Excel的三種方式以及比較分析,需要的朋友可以參考下
    2015-11-11
  • 3種方法實現(xiàn)WindowsForm切換窗口

    3種方法實現(xiàn)WindowsForm切換窗口

    這篇文章主要介紹了3種方法實現(xiàn)WindowsForm切換窗口,文中講解非常詳細,示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • WPF實現(xiàn)動畫效果(一)之基本概念

    WPF實現(xiàn)動畫效果(一)之基本概念

    這篇文章介紹了WPF實現(xiàn)動畫效果之基本概念,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C#中dotnetcharting的用法實例詳解

    C#中dotnetcharting的用法實例詳解

    這篇文章主要介紹了C#中dotnetcharting的用法,以實例形式詳細分析了基于dotnetcharting的圖表繪制的各種常用方法,是非常實用的技巧,需要的朋友可以參考下
    2014-10-10
  • WPF調(diào)用Matlab函數(shù)的方法

    WPF調(diào)用Matlab函數(shù)的方法

    這篇文章主要為大家詳細介紹了WPF調(diào)用Matlab函數(shù)的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • C#實現(xiàn)winform窗口抖動效果的示例代碼

    C#實現(xiàn)winform窗口抖動效果的示例代碼

    在WinForms應(yīng)用程序中,實現(xiàn)窗口抖動效果可以為用戶界面增添一些趣味性和互動性,想象一下,當(dāng)你點擊一個按鈕時,窗口會輕微地“顫抖”幾下,就像它在對你表示不滿或提醒你注意某些事情,這個效果可以通過定時改變窗口的位置來實現(xiàn),需要的朋友可以參考下
    2024-12-12
  • 深入理解C# 委托與事件

    深入理解C# 委托與事件

    本文主要介紹了深入理解C# 委托與事件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2008-05-05
  • C#泛型與非泛型性能比較的實例

    C#泛型與非泛型性能比較的實例

    C#泛型與非泛型性能比較的實例,需要的朋友可以參考一下
    2013-04-04
  • C#中public變量不能被unity面板識別的解決方案

    C#中public變量不能被unity面板識別的解決方案

    這篇文章主要介紹了C#中public變量不能被unity面板識別的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論

怀宁县| 东兰县| 昭苏县| 新余市| 盘锦市| 固安县| 沿河| 兴仁县| 龙山县| 荥阳市| 和平县| 镇康县| 汪清县| 湘潭市| 嵊州市| 扶风县| 黔西| 黄山市| 安仁县| 梓潼县| 民乐县| 兰溪市| 马龙县| 灵武市| 萝北县| 新安县| 治县。| 英山县| 宣威市| 洞口县| 比如县| 阳山县| 德安县| 长子县| 水城县| 五莲县| 蒙阴县| 香港 | 福建省| 巩义市| 客服|