使用c#代码中的列表以编程方式填充/填充pdf模板中的列表框

时间:2017-07-19 11:33:23

标签: c# itext

所以我在我的pdf模板中有一个列表框,我将其命名为“qte”,以及其他一些文本字段,我使用Itextsharp填充字段,填充文本字段工作正常但列表框不是

这里有一些代码:

stamper.AcroFields.SetField("Client", label2.Text);
stamper.AcroFields.SetField("Qte", label2.Text);
stamper.AcroFields.SetField("Qte", label2.Text);
stamper.AcroFields.SetField("Qte", label2.Text);
stamper.AcroFields.SetField("Qte", label2.Text);
stamper.AcroFields.SetField("Qte", label2.Text);

我所了解的是,列表的填充方式与文本字段不同,也可能与压模不同。 有人可以给我解决方案吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

根据评论,我现在明白,你正在将“填写选择字段”的概念与“设置列表选项”的概念混淆。

假设您有一个名为language的列表字段,其中包含以下选项:

  • 选项:“英语”;价值:“en”
  • 选项:“法语”;价值:“fr”
  • 选项:“荷兰语”;值:“nl”

在这种情况下,您可以填写以下字段:

stamper.AcroFields.SetField("language", "nl");

以下行不会执行任何操作:

stamper.AcroFields.SetField("language", "de");

它不会执行任何操作,因为值"de"language选择字段无效。

在我看来,您不一定要填写“选择”字段,但是您希望使用新值填充列表。

例如:

string[] languages = new string[] { "English", "French", "Dutch", "German" };
string[] exportvalues = new string[] { "en", "fr", "nl", "de" };
stamper.AcroFields.SetListOption("language", languages, exportvalues);

现在,字段language将有四个选项而不是三个:

  • 选项:“英语”;价值:“en”
  • 选项:“法语”;价值:“fr”
  • 选项:“荷兰语”;值:“nl”
  • 选项:“德语”;价值:“de”

这将导致以下行选择正确的选项:

stamper.AcroFields.SetField("language", "de");

现在我已经完成了答案,我发现这个问题之前已经得到了回答:Adding listchoices to Pdfform with c# code