【问题标题】:Check box using ITextSharp使用 ITextSharp 的复选框
【发布时间】:2015-11-06 10:25:34
【问题描述】:

我正在使用 ITextSharp 填写我的 pdf,但我不知道如何选中复选框。

我有不同的情况:

  1. 我只有 1 个盒子。如果我得到的值为“true”,我会检查它,否则不会。
  2. 我有 2 个框,“是”和“否”。如果值为真,我选择是,否则,我选择否。
  3. 我有多项选择。例如,我有“Title”,可能的值是“Mr”、“Mrs”和“Miss”。我想选中与我得到的值对应的框(我会得到“先生”、“夫人”或“小姐”。

其实我就是这样做的:

if (Output.AcroFields.Fields.ContainsKey(m.Item1))
{
    // Boolean or not (have to treat differently)
    if (Input.Data[m.Item2] is Boolean)
    {
        Output.AcroFields.SetField(m.Item1, (bool)Input.Data[m.Item2] ? "On" : "Off"); // I've tried "True", "On", "true"
    }
    else
    {
        Output.AcroFields.SetField(m.Item1, Input.Data[m.Item2].ToString());
    }
}

但复选框永远不会被勾选。文本字段有效,但不是这 3 种情况。有什么想法吗?

【问题讨论】:

  • 这 3 种情况都不行。我已经更新了我的问题
  • 你的问题还不清楚。是什么让你认为“on”状态的值是On
  • 我在其他答案中看到了这一点。我以前从未使用过 IText,所以我不知道它是如何工作的。我会试试你的答案

标签: c# pdf itextsharp


【解决方案1】:

问题不清楚。一个复选框可以有两个可能的值。其中一个值始终是Off(在 ISO-32000-1 中定义)。另一个值可以是任何值。您可以使用我对这个问题的回答找出可能的值:Checking off pdf checkbox with itextsharp

我可以将您的问题解释为:我想创建一个包含 2 个以上状态的复选框。这是不可能的:你有一个“开”状态和一个“关”状态。

也许您正在寻找创建一个选择字段。选择字段类似于下拉框,您可以在其中从列表中选择一个值。

也许您正在寻找一系列复选框:

[ ] Mr.
[ ] Mrs.
[ ] Ms.

在这种情况下,您将拥有三个不同的复选框。您可以将 /Yes 作为每个复选框的值,但通常情况下,您将有类似 /Mr/Mrs/Ms 的“on”值。

如果您有现有的 PDF,则必须使用我对 Checking off pdf checkbox with itextsharp 的回答来检查适用的值

更新:你写 我有 2 个框,“是”和“否”。如果该值为真,我检查是,否则,我检查否。 这真的没有意义。一个复选框就足够了。如果您想说是,则应进行检查。如果要说 No,则值应为 /Off(No 不是“关闭”状态的允许值)。

【讨论】:

  • 我已经有一个现有的 PDF。我只想填充它。我设法填充了文本框(名字、姓氏等),但没有填充复选框(如标题、你是未成年人吗?等)。
  • 我对@9​​87654323@ 问题的回答是关于检查现有的PDF 以找出可以使用的值。在发表评论之前,您应该阅读我的答案并尝试一下
猜你喜欢
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 2017-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多