我正在填写使用Acrobat Pro与iTextSharp & C#创建的PDF表单,并发现自己卡住时,试图勾选复选框字段。ItextSharp - 自动填充使用C#的pdf表格 - 问题与复选框
我已经为单选按钮和文本框工作,但似乎无法使复选框工作。 我已经在这种情况下“Q7B”证实了该复选框名称是杂技演员文件正确,可以使用下面的代码
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();
}
任何帮助将不胜感激。
布拉德
感谢您的帮助马克。在休息一下并仔细查看pdf文档后,我发现复选框的Export value属性有一个奇怪的值。将其设置为On并更改代码以匹配已解决问题fields.SetField(“Q7b”,“On”); – 2011-01-08 00:34:10
小心......无论通常提交表格是否需要“奇怪的价值”。如果你只是在内部使用它,没问题。但是,如果您尝试返回原始提交目标,则需要将该字段值再次转换回来。更容易恢复它并在你的代码中使用奇怪的值。 – 2011-01-08 01:07:39