国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用C# 創(chuàng)建、填寫、刪除PDF表單域

這篇具有很好參考價值的文章主要介紹了使用C# 創(chuàng)建、填寫、刪除PDF表單域。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

通常情況下,PDF文件是不可編輯的,但PDF表單提供了一些可編輯區(qū)域,允許用戶填寫和提交信息。PDF表單通常用于收集信息、反饋或進行在線申請,是許多行業(yè)中數據收集和交換的重要工具。

PDF表單可以包含各種類型的輸入控件,如文本框、復選框、下拉菜單、單選按鈕等。本文將介紹如何使用C# 和一個免費.NET庫來操作PDF表單,包括以下三個示例:

  • 創(chuàng)建PDF表單域
  • 填寫PDF表單域
  • 刪除PDF表單域

安裝免費.NET PDF庫Free Spire.PDF for .NET (可通過 NuGet安裝,或下載后手動引用dll)

PM> Install-Package FreeSpire.PDF

?

常見PDF表單域

Free Spire.PDF for .NET 支持創(chuàng)建、操作多種PDF表域,包括文本框、復選框、組合框、列表框和單選按鈕等。下表列出了一些常見的域及其在該免費庫中對應的類名。

表單域名? 類名
文本域 PdfTextBoxField
復選框 PdfCheckBoxField
組合框? PdfComboBoxField
列表框 PdfListBoxField
單選按鈕 PdfRadioButtonListField
普通按鈕 PdfButtonField
簽名域? PdfSignatureField

使用C# 創(chuàng)建PDF表單域

使用Free Spire.PDF制作表單域,需要先創(chuàng)建以上各表單域類的對象,然后通過 Bounds 屬性設置表單域的位置和大小,最后再通過PdfFormFieldCollection.Add() 方法將表單域繪制到PDF頁面指定位置處。

以下是如何在PDF中創(chuàng)建上述常見PDF表單域的C#代碼:

using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Fields;
using Spire.Pdf.Graphics;
using System.Drawing;
 
namespace CreateFillableFormsInPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            //創(chuàng)建PdfDocument對象
            PdfDocument pdf = new PdfDocument();
 
            //添加一頁
            PdfPageBase page = pdf.Pages.Add();
 
            //初始化x、y坐標
            float baseX = 60;
            float baseY = 20;
 
            //創(chuàng)建兩個畫刷
            PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.Brown));
            PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.Black));
 
            //創(chuàng)建字體
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("微軟雅黑", 11f, FontStyle.Regular), true);
 
            //添加文本框 
            page.Canvas.DrawString("姓名:", font, brush1, new PointF(10, baseY));
            RectangleF tbxBounds = new RectangleF(baseX, baseY, 150, 18);
            PdfTextBoxField textBox = new PdfTextBoxField(page, "姓名");
            textBox.Bounds = tbxBounds;
            textBox.Font = font;
            pdf.Form.Fields.Add(textBox);
            baseY += 30;
 
            //添加兩個復選框
            page.Canvas.DrawString("民族:", font, brush1, new PointF(10, baseY));
            RectangleF checkboxBound1 = new RectangleF(baseX, baseY, 15, 15);
            PdfCheckBoxField checkBoxField1 = new PdfCheckBoxField(page, "選項1");
            checkBoxField1.Bounds = checkboxBound1;
            checkBoxField1.Checked = false;
            page.Canvas.DrawString("漢族", font, brush2, new PointF(baseX + 20, baseY));
 
            RectangleF checkboxBound2 = new RectangleF(baseX + 70, baseY, 15, 15);
            PdfCheckBoxField checkBoxField2 = new PdfCheckBoxField(page, "選項2");
            checkBoxField2.Bounds = checkboxBound2;
            checkBoxField2.Checked = false;
            page.Canvas.DrawString("少數民族", font, brush2, new PointF(baseX + 90, baseY));
            pdf.Form.Fields.Add(checkBoxField1);
            pdf.Form.Fields.Add(checkBoxField2);
            baseY += 30;
 
            //添加列表框
            page.Canvas.DrawString("分公司:", font, brush1, new PointF(10, baseY));
            RectangleF listboxBound = new RectangleF(baseX, baseY, 150, 50);
            PdfListBoxField listBoxField = new PdfListBoxField(page, "分公司");
            listBoxField.Items.Add(new PdfListFieldItem("成都", "成都"));
            listBoxField.Items.Add(new PdfListFieldItem("武漢", "武漢"));
            listBoxField.Items.Add(new PdfListFieldItem("深圳", "深圳")); ;
            listBoxField.Bounds = listboxBound;
            listBoxField.Font = font;
            pdf.Form.Fields.Add(listBoxField);
            baseY += 60;
 
            //添加兩個單選按鈕
            page.Canvas.DrawString("性別:", font, brush1, new PointF(10, baseY));
            PdfRadioButtonListField radioButtonListField = new PdfRadioButtonListField(page, "性別");
            PdfRadioButtonListItem radioItem1 = new PdfRadioButtonListItem("選項1");
            RectangleF radioBound1 = new RectangleF(baseX, baseY, 15, 15);
            radioItem1.Bounds = radioBound1;
            page.Canvas.DrawString("", font, brush2, new PointF(baseX + 20, baseY));
 
            PdfRadioButtonListItem radioItem2 = new PdfRadioButtonListItem("選項2");
            RectangleF radioBound2 = new RectangleF(baseX + 70, baseY, 15, 15);
            radioItem2.Bounds = radioBound2;
            page.Canvas.DrawString("", font, brush2, new PointF(baseX + 90, baseY));
            radioButtonListField.Items.Add(radioItem1);
            radioButtonListField.Items.Add(radioItem2);
            pdf.Form.Fields.Add(radioButtonListField);
            baseY += 30;
 
            //添加組合框
            page.Canvas.DrawString("部門:", font, brush1, new PointF(10, baseY));
            RectangleF cmbBounds = new RectangleF(baseX, baseY, 150, 18);
            PdfComboBoxField comboBoxField = new PdfComboBoxField(page, "部門");
            comboBoxField.Bounds = cmbBounds;
            comboBoxField.Items.Add(new PdfListFieldItem("財務", "財務"));
            comboBoxField.Items.Add(new PdfListFieldItem("技術", "技術"));
            comboBoxField.Items.Add(new PdfListFieldItem("采購", "采購"));
            comboBoxField.Items.Add(new PdfListFieldItem("銷售", "銷售"));
            comboBoxField.Font = font;
            pdf.Form.Fields.Add(comboBoxField);
            baseY += 30;
 
            //添加簽名域
            page.Canvas.DrawString("簽名:", font, brush1, new PointF(10, baseY));
            PdfSignatureField sgnField = new PdfSignatureField(page, "簽名域");
            RectangleF sgnBounds = new RectangleF(baseX, baseY, 150, 80);
            sgnField.Bounds = sgnBounds;
            pdf.Form.Fields.Add(sgnField);
            baseY += 90;
 
            //添加按鈕
            page.Canvas.DrawString("按鈕:", font, brush1, new PointF(10, baseY));
            RectangleF btnBounds = new RectangleF(baseX, baseY, 50, 18);
            PdfButtonField buttonField = new PdfButtonField(page, "按鈕");
            buttonField.Bounds = btnBounds;
            buttonField.Text = "提交";
            buttonField.Font = font;
            PdfSubmitAction submitAction = new PdfSubmitAction("https://www.****.com");
            submitAction.DataFormat = SubmitDataFormat.Html;
            buttonField.Actions.MouseDown = submitAction;
            pdf.Form.Fields.Add(buttonField);
 
            //保存文件
            pdf.SaveToFile("PDF表單.pdf", FileFormat.PDF);
        }
    }
}

生成文件:

使用C# 創(chuàng)建、填寫、刪除PDF表單域

?

使用C# 填寫PDF表單域

填充表單域需要先獲取PDF中的所有表單字段,然后確定其表單類型,最后再填寫數據或從預定列表中選擇值。

以下是如何填充現(xiàn)有PDF表單域的C#代碼:

using Spire.Pdf;
using Spire.Pdf.Fields;
using Spire.Pdf.Widget;
 
namespace FillFormFields
{
    class Program
    {
        static void Main(string[] args)
        {
            //加載PDF表單
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("PDF表單.pdf");
 
            //獲取文檔中的表單
            PdfFormWidget form = (PdfFormWidget)pdf.Form;
 
            //獲取表單域集合
            PdfFormFieldWidgetCollection formWidgetCollection = form.FieldsWidget;
 
            //遍歷表單域
            for (int i = 0; i < formWidgetCollection.Count; i++)
            {
                //獲取指定域
                PdfField field = formWidgetCollection[i];
 
                //判斷該表單域是否為文本框
                if (field is PdfTextBoxFieldWidget)
                {
                    if (field.Name == "姓名")
                    {
                        //填充文本
                        PdfTextBoxFieldWidget textBoxField = (PdfTextBoxFieldWidget)field;
                        textBoxField.Text = "張三";
                    }
                }
 
                //判斷該表單域是否為單選按鈕
                if (field is PdfRadioButtonListFieldWidget)
                {
                    if (field.Name == "性別")
                    {
                        //為單選按鈕選定一個值
                        PdfRadioButtonListFieldWidget radioButtonListField = (PdfRadioButtonListFieldWidget)field;
                        radioButtonListField.SelectedIndex = 0;
                    }
                }
 
                //判斷該表單域是否為組合框
                if (field is PdfComboBoxWidgetFieldWidget)
                {
                    if (field.Name == "部門")
                    {
                        //為組合框選定一個值
                        PdfComboBoxWidgetFieldWidget comboBoxField = (PdfComboBoxWidgetFieldWidget)field;
                        int[] index = { 1 };
                        comboBoxField.SelectedIndex = index;
                    }
                }
 
                //判斷該表單域是否為復選框
                if (field is PdfCheckBoxWidgetFieldWidget)
                {
                    //設置復選框的"已選中"狀態(tài)
                    PdfCheckBoxWidgetFieldWidget checkBoxField = (PdfCheckBoxWidgetFieldWidget)field;
                    switch (checkBoxField.Name)
                    {
                        case "選項1":
                            checkBoxField.Checked = true;
                            break;
                    }
                }
 
                //判斷該表單域是否為列表框
                if (field is PdfListBoxWidgetFieldWidget)
                {
                    if (field.Name == "分公司")
                    {
                        //為列表框選定一個值
                        PdfListBoxWidgetFieldWidget listBox = (PdfListBoxWidgetFieldWidget)field;
                        int[] index = { 1 };
                        listBox.SelectedIndex = index;
                    }
                }
            }
 
            //保存文件
            pdf.SaveToFile("填充PDF表單域.pdf", FileFormat.PDF);
        }
    }
}

輸出結果:

使用C# 創(chuàng)建、填寫、刪除PDF表單域

?

使用C# 刪除PDF表單域

Free Spire.PDF支持通過索引或名稱刪除指定的表單域或刪除所有表單域。

以下是如何刪除PDF表單域的C#代碼:

using Spire.Pdf;
using Spire.Pdf.Fields;
using Spire.Pdf.Widget;
 
namespace RemoveFormFields
{
    class Program
    {
        static void Main(string[] args)
        {
            //加載PDF表單
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("PDF表單.pdf");
 
            //獲取文檔中的表單域
            PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
 
            //遍歷表單域
            for (int i = formWidget.FieldsWidget.List.Count - 1; i >= 0; i--)
            {
                //獲取指定表單域
                PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
 
                //刪除表單域
                formWidget.FieldsWidget.Remove(field);
            }
 
            //通過表單域名獲取指定表單
            //PdfField field = formWidget.FieldsWidget["name"];
            //刪除該表單域
            //formWidget.FieldsWidget.Remove(field);
 
            //保存PDF文件
            pdf.SaveToFile("刪除PDF表單域.pdf");
        }
    }
}

?


?

?

以上代碼演示了PDF表單的基本操作,包括添加文本框、復選框、組合框、單選按鈕等各種常見的表單域,填寫現(xiàn)有PDF表單,以及刪除PDF表單。Free Spire.PDF免費庫該支持其他多種PDF元素,點擊查看更多示例。文章來源地址http://www.zghlxwxcb.cn/news/detail-855432.html

到了這里,關于使用C# 創(chuàng)建、填寫、刪除PDF表單域的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Python使用Selenium自動實現(xiàn)表單填寫之龍年紀念幣預約

    Python使用Selenium自動實現(xiàn)表單填寫之龍年紀念幣預約

    聲明 :本文只做技術交流,不可用代碼為商業(yè)用途,文末有源碼下載,已測試可用。 Part 1 配置文件改寫(源碼 有詳細的注釋說明 讀取配置文件,自己組數據庫,錄入信息 配置文件 Part 2 主函數 每一期的xpath路徑都不一樣 所以需要提前去網站獲取 新的 Xpath 具體方法如下

    2024年02月01日
    瀏覽(39)
  • 使用C#如何監(jiān)控選定文件夾中文件的變動情況?

    1、前言 2、效果 3、具體實現(xiàn) ? 頁面設計 ? 全部代碼 ? FileSystemWatcher的介紹 ? FileSystemWatcher的構造函數 ? FileSystemWatcher的屬性 ? FileSystemWatcher的事件 4、總結 有時候我們會有監(jiān)控電腦上某一個文件夾中文件變動情況的需求,在本文中,我也會以一個具體的例子,說明在

    2024年02月04日
    瀏覽(24)
  • vue2:elementUI中Form 表單在特定情況下做動態(tài)rules添加刪除

    vue2:elementUI中Form 表單在特定情況下做動態(tài)rules添加刪除

    先看需求: (不想看的直接拉到最后) ?【需求說明】 6、如狀態(tài)為上架時,庫存為必填,下架狀態(tài)時,庫存為可填,前面無星號 實現(xiàn)方法:使用this.$set()和this.$delete() 上代碼: 由于設計商業(yè)隱私,代碼只上傳一部分: ? 表單data中原來的rules: 不添加上下架狀態(tài)的rules 在

    2023年04月08日
    瀏覽(25)
  • hadoop java 創(chuàng)建文件夾 彈出窗口填寫文件夾名稱

    在Hadoop中使用Java創(chuàng)建文件夾時,無法彈出窗口來填寫文件夾名稱,因為Hadoop是一個分布式系統(tǒng),運行在多臺計算機上,無法直接與用戶交互。 要創(chuàng)建文件夾,可以使用Hadoop的Java API中的Filesystem對象。以下是一個示例代碼,演示如何在Hadoop中創(chuàng)建文件夾: 此代碼創(chuàng)建了一個名

    2024年01月19日
    瀏覽(92)
  • Python使用Selenium自動實現(xiàn)表單填寫之龍年紀念幣預約(附源碼,源碼有注釋解析,已測試可用

    Python使用Selenium自動實現(xiàn)表單填寫之龍年紀念幣預約(附源碼,源碼有注釋解析,已測試可用

    聲明 :本文只做技術交流,不可用代碼為商業(yè)用途,文末有源碼下載,已測試可用。 Part 1 配置文件改寫(源碼 有詳細的注釋說明 讀取配置文件,自己組數據庫,錄入信息 配置文件 Part 2 主函數 每一期的xpath路徑都不一樣 所以需要提前去網站獲取 新的 Xpath 具體方法如下

    2024年02月01日
    瀏覽(57)
  • C#使用跨平臺的PdfSharpCore開源庫生成PDF文件

    C#使用跨平臺的PdfSharpCore開源庫生成PDF文件

    ????????在進行項目開發(fā)中,需要將C#程序的一些文本內容導出為PDF文件(能夠根據文本自動分行分頁),并且要求這個生成PDF文件的程序是可跨平臺的;實現(xiàn)類似效果: ①將程序的文本內容導出為PDF文件; ②能夠將文本內容自動分行分頁【且可添加頁眉、頁腳、頁碼、

    2024年02月16日
    瀏覽(27)
  • node使用fs模塊(四)—— 文件夾的使用(創(chuàng)建、讀取、刪除)

    node使用fs模塊(四)—— 文件夾的使用(創(chuàng)建、讀取、刪除)

    創(chuàng)建、讀取、刪除都有同步方法,方法后面加上sync即可。不過多解釋了。 參數1: path——讀取的文件路徑( 必填 ) 參數2: option——讀取的文件配置(可選) recursive 是否遞歸創(chuàng)建,默認為false 參數3: callback——讀取回調函數( 必填 ) 參數1: path——讀取的文件路徑(

    2024年02月06日
    瀏覽(34)
  • 怎樣控制鍵盤按鍵自動填寫網頁表單

    怎樣控制鍵盤按鍵自動填寫網頁表單

    瀏覽器中使用模擬鍵盤按鍵填寫網頁表單,不但可以完成數據輸入,輸入時還能真實地 觸發(fā)鍵盤元素綁定的鍵盤事件 。 打開木頭瀏覽器的工具菜單,進入項目管理容器,創(chuàng)建“填寫內容”步驟,并打開百度網站測試。 1、輸入鍵盤對應的字符,包括字母、數字和符號,但不

    2024年02月09日
    瀏覽(19)
  • 51-JS鼠標,鍵盤,表單,粘貼板,窗口事件,遍歷節(jié)點樹,DOM操作:創(chuàng)建/添加,刪除,替換

    1.鼠標事件 1.1雙擊事件 dblclick 1.2鼠標移入,鼠標移出 mouseover,mouseout ? ? ? ? ? ? 支持事件冒泡(會傳播) mouseenter,mouseleave ? ? ? ?不支持事件冒泡(不會傳播)

    2024年01月18日
    瀏覽(24)
  • 網頁表單文本框的自動填寫(四種方法)

    網頁表單文本框的自動填寫(四種方法)

    隨著應用系統(tǒng)從客戶端+服務器模式,逐漸發(fā)展成瀏覽器+服務器模式。越來越多的操作是基于瀏覽器來完成的,在輸入數據時可以方便的使用批量操作工具,提高工作效率。 在使用瀏覽器自動填寫網頁表單時,遇到最多的就是文本輸入框了。 1、通過修改元素的value屬性完成填

    2024年02月04日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包