Jestem w trakcie wypełniania formularza PDF utworzonego za pomocą programu Acrobat pro z iTextSharp & C# i utknąłem podczas próby zaznaczenia pola wyboru.ItextSharp - Autouzupełnianie formularza PDF przy użyciu C# - Problemy z Checkboxes
Mam działa na przyciski radiowe i pola tekstowe, ale nie wydaje się, aby pole wyboru działało. I potwierdziły również nazwę pola wyboru w tym przypadku „Q7b” jest poprawne w dokumencie Acrobat i można go znaleźć na formularzu za pomocą następującego kodu
private string getfieldnames(AcroFields fields)
{
StringBuilder sb = new StringBuilder();
foreach (string key in fields.Fields.Keys)
{
sb.Append(key + Environment.NewLine);
}
return sb.ToString();
}
Kod używam zaktualizować pole jest poniżej
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();
}
Każda pomoc zostanie bardzo doceniona.
Brad
Dzięki za pomoc Mark. Po zrobieniu przerwy i bliższym przyjrzeniu się dokumentowi pdf stwierdziłem, że właściwość Export value tego pola wyboru ma dziwną wartość. ustawienie tego na Włączone i zmiana kodu do dopasowania rozwiązała pola problemowe.SetField ("Q7b", "Włącz"); –
Ostrożnie ... że "dziwna wartość" może być konieczna wszędzie tam, gdzie normalnie jest składana. Jeśli używasz go tylko wewnętrznie, dobrze. Ale jeśli kiedykolwiek spróbujesz powrócić do pierwotnego celu przesyłania, musisz ponownie przetłumaczyć tę wartość pola. Łatwiej go cofnąć i użyć dziwnej wartości w kodzie. –
Dzięki za ostrzeżenie. Jest to rzecz wewnętrzna, więc ta wartość nie będzie miała wpływu na efekt. –