C# 使用ITextSharp复选框
我正在使用ITextSharp填写我的pdf,但我不知道如何选中复选框 我有不同的情况:C# 使用ITextSharp复选框,c#,pdf,itextsharp,C#,Pdf,Itextsharp,我正在使用ITextSharp填写我的pdf,但我不知道如何选中复选框 我有不同的情况: 我只有一个盒子。如果我得到的值为“true”,我会检查它,否则不会 我有两个盒子,“是”和“不是”。如果该值为真,我将选择是,否则,我将选择否 我有多项选择。例如,我有“Title”,可能值为“Mr”、“Mrs”和“Miss”。我想勾选对应于我得到的值的框(我将得到“Mr”、“Mrs”或“Miss”) 事实上,我就是这么做的: if (Output.AcroFields.Fields.ContainsKey
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());
}
}
但复选框从不打勾。文本字段有效,但这三种情况不起作用。你知道吗?问题不清楚。复选框可以有两个可能的值。其中一个值总是
Off
(在ISO-32000-1中定义)。另一个值可以是任何值。你可以使用我对这个问题的回答来找出可能的值:
我可以把你的问题解释为:我想创建一个包含两个以上状态的复选框。这是不可能的:你有一个“开”状态和一个“关”状态
也许你想创建一个选择字段。选择字段类似于一个下拉框,你可以从列表中选择一个值
也许您正在寻找一系列复选框:
[ ] Mr.
[ ] Mrs.
[ ] Ms.
在这种情况下,您将有三个不同的复选框。您可以将/Yes
作为每个复选框的值,但通常,对于“开”值,您将有类似/Mr
、/Mrs
和/Ms
的内容
如果您有一个现有的PDF,您必须使用我的答案来检查哪个值适用于
更新:你写我有两个框,“是”和“否”。如果值为真,我选择“是”,否则,我选择“否”。这没有什么意义。一个复选框就足够了。如果你想说“是”,应该选中它。如果你想说“否”,该值应该是
/Off
(对于“关闭”状态,不允许使用“否”值).这3个案例不起作用。我已经更新了我的问题。你的问题仍然不清楚。是什么让你认为“开”状态的值是开的?
?我在其他一些答案上看到了这一点。我以前从未使用过IText,所以我不知道它是如何工作的。我会尝试你的答案。我已经有了一个现有的PDF。我只是想填充它。我设法做到了填充文本框(firstname、lastname等),但不要填充勾选框(如标题、您是否未成年人?)我的问题答案是检查现有PDF以找出可以使用哪些值。您应该阅读我的答案并在对其进行评论之前尝试。