【问题标题】:Checking Checkboxes in a PDF with iText7 in .NET在 .NET 中使用 iText7 检查 PDF 中的复选框
【发布时间】:2020-02-13 20:53:57
【问题描述】:

我有一个示例 pdf,我正在以编程方式填写(使用 iText7):-

string name = TextBox1.Text.ToString();
string pdfTemplate = @"..\WebApplication1\Sample.pdf";
string newFile = @"..\WebApplication1\completed_sample.pdf";

PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
PdfFormField toSet;

// This doesn't work //
fields.TryGetValue("TypeofApplication.1", out toSet);
toSet.SetValue("/On");

// This works //
fields.TryGetValue("FullName", out toSet);
toSet.SetValue(name);

form.FlattenFields();
pdf.Close(); 

我可以填写 pdf 中的文本框,但不能填写单选按钮/复选框。

应用类型在我的cshtml 页面中有两个选项:

@Html.RadioButton("Application_Type", "New") New 
@Html.RadioButton("Application_Type", "Renew") Renewal 

当我查看我的值字典时,我看到有 3 个选项:

  1. 应用类型
  2. TypeofApplication.1
  3. TypeofApplication.2

如何将复选框设置为checked = true

我的逻辑如下:

if(dr.Application_Type == "New"){
    fields.TryGetValue("TypeofApplication.1", out toSet);
    toSet.SetValue("/On");}

但这显然行不通。

【问题讨论】:

  • 始终在应用标签之前阅读它们。 itext 适用于 iText 版本 7 之前的版本。
  • 我想最大限度地了解我的问题
  • 请分享 / 一个示例 pdf。
  • 我无法分享示例 pdf
  • 有没有办法查看字段的可能值?

标签: c# asp.net pdf itext7


【解决方案1】:

所以我想出这个的方式:-

1) 我打开了 pdf,将复选框设置为选中并将其保存在我的工作区文件夹中。
2)然后,我以编程方式打开文件并检查字段值:-

            string pdfTemplate = @"..\WebApplication1\Sample.pdf";

            PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
            PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
            IDictionary<String, PdfFormField> fields = form.GetFormFields();
            PdfFormField toSet;
            fields.TryGetValue("TypeofApplication", out toSet);
            var x = toSet.GetValueAsString();

现在,我知道 x 的值,也就是选中的字段。 (新的或更新的)。我使用这种技术来查找任何给定复选框、单选按钮列表等的所有可能值。

【讨论】:

    猜你喜欢
    • 2017-10-15
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    相关资源
    最近更新 更多