• <menu id="w2i4a"></menu>
  • logo Spire.PDF教程

    文檔首頁>>Spire.PDF教程>>PDF管理控件Spire.PDF使用教程:創(chuàng)建 PDF 表單域并設置屬性

    PDF管理控件Spire.PDF使用教程:創(chuàng)建 PDF 表單域并設置屬性


    Spire.PDF是一個專業(yè)的PDF組件,能夠獨立地創(chuàng)建、編寫、編輯、操作和閱讀PDF文件,支持 .NET、Java、WPF和Silverlight。Spire.PDF的PDF API擁有豐富的功能,如安全設置(包括數字簽名)、PDF文本/附件/圖片提取、PDF文件合并/拆分、元數據更新、章節(jié)和段落優(yōu)化、圖形/圖像描繪和插入、表格創(chuàng)建和處理、數據導入等等。>>下載Spire.PDF最新試用版

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

    Adobe Acrobat Form (AcroForm) 是表單域的集合,用來以交互方式從用戶那里收集信息。Spire.PDF支持創(chuàng)建多種交互式表單域,例如:文本域、單選按鈕、復選框、列表框、組合框,并在特定的表單域添加提示文本(Tooltip),方便用戶輸入正確信息。

    創(chuàng)建表單域

    //創(chuàng)建PDF文檔并添加一頁
    PdfDocument pdf = new PdfDocument();
    PdfPageBase page = pdf.Pages.Add();
    
    //設置font, brush
    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f,FontStyle.Regular), true);
    PdfBrush brush = PdfBrushes.Black;
    
    //定義一些坐標變量并賦初值
    float x = 10;
    float y = 10;
    float tempX = 0;
    float tempY = 0;
    
    //添加文本框
    string text = "文本框: ";
    page.Canvas.DrawString(text, font, brush, x, y);
    tempX = font.MeasureString(text).Width + 15;
    tempY = font.MeasureString(text).Height + 15;
    PdfTextBoxField textbox = new PdfTextBoxField(page, "TextBox");
    textbox.Bounds = new RectangleF(tempX, y, tempX * 2, 15);
    textbox.BorderWidth = 0.75f;
    textbox.BorderStyle = PdfBorderStyle.Solid;
    pdf.Form.Fields.Add(textbox);
    
    //添加復選框
    text = "復選框: ";
    y += tempY;
    page.Canvas.DrawString(text, font, brush, x, y);
    tempX = font.MeasureString(text).Width + 15;
    tempY = font.MeasureString(text).Height + 15;
    PdfCheckBoxField checkbox = new PdfCheckBoxField(page, "CheckBox");
    checkbox.Bounds = new RectangleF(tempX, y, 15, 15);
    checkbox.BorderWidth = 0.75f;
    checkbox.Style = PdfCheckBoxStyle.Cross;
    pdf.Form.Fields.Add(checkbox);
    
    //添加列表框
    text = "列表框: ";
    y += tempY;
    page.Canvas.DrawString(text, font, brush, x, y);
    tempX = font.MeasureString(text).Width + 15;
    tempY = font.MeasureString(text).Height + 15;
    PdfListBoxField listbox = new PdfListBoxField(page, "ListBox");
    listbox.Bounds = new RectangleF(tempX, y, tempX * 2, tempY * 2);
    listbox.BorderWidth = 0.75f;
    for (int i = 0; i < 3; i++)
    {
        //添加項目到列表框
        string tempText = string.Format("Text {0}", i);
        string tempValue = string.Format("Value {0}", i);
        listbox.Items.Add(new PdfListFieldItem(tempText, tempValue));
    }
    pdf.Form.Fields.Add(listbox);
    
    //添加單選按鈕
    text = "單選按鈕: ";
    y += tempY * 2 + 15;
    page.Canvas.DrawString(text, font, brush, x, y);
    tempX = font.MeasureString(text).Width + 15;
    tempY = font.MeasureString(text).Height + 15;
    PdfRadioButtonListField radiobutton = new PdfRadioButtonListField(page, "RadioButton");
    for (int i = 0; i < 3; i++)
    {
        PdfRadioButtonListItem item = new PdfRadioButtonListItem(string.Format("rb{0}", i));
        item.BorderWidth = 0.75f;
        item.Bounds = new RectangleF(tempX + i * 20, y, 15, 15);
        radiobutton.Items.Add(item);
    }
    pdf.Form.Fields.Add(radiobutton);
    
    //添加組合框
    text = "下拉列表框: ";
    y += tempY;
    page.Canvas.DrawString(text, font, brush, x, y);
    tempX = font.MeasureString(text).Width + 15;
    tempY = font.MeasureString(text).Height + 15;
    PdfComboBoxField combobox = new PdfComboBoxField(page, "ComboBox");
    combobox.Bounds = new RectangleF(tempX, y, tempX, 15);
    combobox.BorderWidth = 0.75f;
    for (int i = 0; i < 3; i++)
    {
        //添加項目到下拉列表框
        string tempText = string.Format("Text {0}", i);
        string tempValue = string.Format("Value {0}", i);
        combobox.Items.Add(new PdfListFieldItem(tempText, tempValue));
    }
    pdf.Form.Fields.Add(combobox);
    
    //保存文檔
    pdf.SaveToFile("PDF表單域.pdf");

    PDF管理控件Spire.PDF使用教程:創(chuàng)建 PDF 項目符號列表和多級編號列表

    添加提示文本(Tooltip)

    //創(chuàng)建PDF文檔并添加一頁
    PdfDocument pdf = new PdfDocument();
    PdfPageBase page = pdf.Pages.Add();
    
    //設置font, brush
    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f, FontStyle.Regular), true);
    PdfBrush brush = PdfBrushes.Black;
    
    //定義一些坐標變量并賦初值
    float x = 10;
    float y = 50;
    float tempX = 0;
    float tempY = 0;
    
    //添加文本框
    string text = "滿意指數: ";
    page.Canvas.DrawString(text, font, brush, x, y);
    tempX = font.MeasureString(text).Width + 15;
    tempY = font.MeasureString(text).Height + 15;
    PdfTextBoxField textbox = new PdfTextBoxField(page, "TextBox");
    textbox.Bounds = new RectangleF(tempX, y, tempX * 2, 15);
    textbox.BorderWidth = 0.75f;
    textbox.BorderStyle = PdfBorderStyle.Solid;
    
    //添加文本提示信息
    textbox.ToolTip = "請輸入0-5之間的數字";
    
    //添加文本域到fields collection并保存文檔
    pdf.Form.Fields.Add(textbox);
    pdf.SaveToFile("添加文本信息.pdf");

    PDF管理控件Spire.PDF使用教程:創(chuàng)建 PDF 項目符號列表和多級編號列表


    C# 將 PDF 表單域設置為只讀

    當我們把PDF表單域填寫完成后,可以將這些域設置為只讀來阻止用戶修改或刪除表單域的內容。Spire.PDF組件支持以下兩種方式將PDF表單域設置為只讀:

    • 將表單域扁平化(Flatten)
    • 將表單域設置為只讀(Read-only)

    將表單域扁平化

    可以使用PdfForm類的IsFlatten屬性來將PDF文檔中的所有表單域扁平化。代碼示例如下:

    //加載PDF文檔
    PdfDocument document = new PdfDocument();
    document.LoadFromFile("Form.pdf");
    
    //獲取文檔中的現有表單域
    PdfForm loadedForm = document.Form;
    
    //扁平化所有表單域
    loadedForm.IsFlatten = true;
    
    //保存文檔
    document.SaveToFile("Flatten1.pdf");

    此外,我們還可以通過PdfField類的Flatten屬性來扁平化指定表單域:

    //加載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");

    將表單域設置為只讀

    將PDF文檔中的所有表單域設置為只讀,我們可以使用PdfForm類的ReadOnly屬性:

    //加載PDF文檔
    PdfDocument document = new PdfDocument();
    document.LoadFromFile("Form.pdf");
    
    //獲取文檔中的現有表單域
    PdfForm loadedForm = 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");

    如果你有任何問題或意見,可在下方評論區(qū)留言,點擊資源列表查看更多教程資源~


    *想要購買正版授權的朋友可以咨詢在線客服哦~

    掃描關注“慧聚IT”微信公眾號,及時獲取更多產品最新動態(tài)及最新資訊

    1562572142.jpg

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();