我正在填写使用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(); }
任何帮助将不胜感激.
布拉德
解决方法
将字段值设置为复选框的导出值将导致检查.因此,如果导出值为“是”,则将该字段的值设置为“是”将勾选复选框.如果导出值是其他值(例如“开”),则需要将字段值设置为该值,才能勾选该框.