Я заполняю форму pdf, созданную с использованием Acrobat pro с iTextSharp & C#, и обнаружил, что я застреваю при попытке поставить галочку в поле флажка.ItextSharp - Автозаполнение формы pdf с использованием C# - Проблемы с флажками
У меня есть работа для переключателей и текстовых полей, но, похоже, не работает. Я также подтвердил имя флажка в этом случае «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 для флажка имеет странное значение. установите для этого значение «Вкл.» и изменив код для соответствия, разрешили поля проблемы. SetField («Q7b», «On»); –
Осторожно ... эта «странная ценность» может быть необходима везде, где форма обычно отправляется. Если вы только когда-либо используете его внутри, отлично. Но если вы попытаетесь вернуться к исходной цели отправки, вам нужно будет снова перевести это значение поля. Легче вернуть его и использовать странное значение в коде. –
Спасибо за предупреждение. Это внутренняя вещь, поэтому изменение значения не будет иметь эффекта потока. –