我正在填写使用Acrobat pro创建的pdf表单,其中包含iTextSharp& C#,在尝试勾选复选框字段时发现自己卡住了。
我让它适用于单选按钮和文本框,但似乎无法使复选框工作。 我还确认了复选框名称,在这种情况下,“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();
}
非常感谢任何帮助。
布拉德
答案 0 :(得分:16)
将字段值设置为复选框的导出值将导致检查它。因此,如果导出值为“是”,则将字段值设置为“是”将勾选复选框。如果导出值是其他值(例如“开”),则需要将字段值设置为该值以便勾选该框。
答案 1 :(得分:4)
我也尝试使用On和Off复选框,但它不起作用。然后我在Adobe LiveCycle Designer中打开了。在复选框绑定属性Changed On Value Of Value属性中。将它们设置为是和否。现在它正在为我工作。
答案 2 :(得分:2)
复选框值通常为“开”和“关”。无线电组可以使用他们想要的任何值(加“关”)。
答案 3 :(得分:2)
对于复选框,您需要将“1”作为值传递。
尝试以下
fields.SetField("PRELIM_Q1", "1");
答案 4 :(得分:0)
fields.SetField(" your_field"," On"); 默认为我工作。
答案 5 :(得分:0)
不确定是库还是我的PDF模板是如何创建的,但是我尝试了是/否,开/关,是/否...这些选项都不起作用。不过使用“ 1”和“ 0”还是可以的。
我建议您尝试使用这4个选项,直到找到适合您的值为止。