ItextSharp – 使用C#自动填写pdf表单 – 复选框问题

我正在填写使用Acrobat pro和iTextSharp&C#创建的pdf表单,并且在尝试勾选复选框字段时发现自己卡住了。

我有它为单选按钮和文本框工作,但似乎无法使复选框工作。 我还确认了这个案例中的复选框名称“Q7b”在acrobat文档中是正确的,可以使用下面的代码在表单上找到它

private string getfieldnames(AcroFields fields) { StringBuilder sb = new StringBuilder(); foreach (string key in fields.Fields.Keys) { sb.Append(key + Environment.NewLine); } return sb.ToString(); } 

我用来更新复选框的代码如下

 using (MemoryStream pdfFlat = new MemoryStream()) { PdfReader pdfReader = new PdfReader(strPath); PdfStamper pdfStamp = new PdfStamper(pdfReader, pdfFlat); AcroFields fields = pdfStamp.AcroFields; //textfields fields.SetField("Initiating_Doctor", "Doctor A"); fields.SetField("Speciality", "Surgeon"); //Radiobuttons fields.SetField("PRELIM_Q1", "Yes"); fields.SetField("PRELIM_Q2", "No"); fields.SetField("PRELIM_Q3", "No"); fields.SetField("PRELIM_Q4", "No"); //checkbox - Set the checkbox to checked but this does not work. fields.SetField("Q7b", "Yes"); pdfReader.Close(); pdfStamp.FormFlattening = true; pdfStamp.FreeTextFlattening = true; pdfStamp.Writer.CloseStream = false; pdfStamp.Close(); } 

任何帮助将不胜感激。

布拉德

将字段值设置为复选框的导出值将导致检查它。 因此,如果导出值为“是”,则将字段值设置为“是”将勾选复选框。 如果导出值是其他值(例如“On”),则需要将字段值设置为该值以便勾选该框。

我也尝试使用On和Off复选框,它不起作用。 然后我在Adobe LiveCycle Designer中打开了。 在复选框绑定属性Changed On Value Of Value属性中。 将它们设置为是和否。 现在它正在为我工​​作。

复选框值通常为“开”和“关”。 无线电组可以使用他们想要的任何值(加上“关闭”)。

对于复选框,您需要传递“1”作为值。

试试以下

 fields.SetField("PRELIM_Q1", "1"); 

fields.SetField(“your_field”,“On”); 默认为我工作。