我正在填寫使用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