使用ITextSharp复选框

时间:2015-11-06 10:25:35

标签: c# pdf itextsharp

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

我有不同的情况:

  1. 我只有一盒。如果我得到的值是“真”,我检查它,否则不是。
  2. 我有2个盒子,“是”和“否”。如果值为true,我选中Yes,否则,我选中No。
  3. 我有多种选择。例如,我有“标题”,可能的值为“先生”,“太太”和“小姐”。我想查看对应于我得到的价值的方框(我会得到“先生”,或“太太”,或“小姐”。
  4. 实际上,这就是我的工作:

    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种情况。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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

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

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