Kontrola zaškrtávací políčka ve formátu PDF s iText7 .NET

hlasů
0

Mám vzorek pdf, že jsem vyplňování programově jako takový (s použitím iText7): -

string name = TextBox1.Text.ToString();
string pdfTemplate = @..\WebApplication1\Sample.pdf;
string newFile = @..\WebApplication1\completed_sample.pdf;

PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
PdfFormField toSet;

// This doesn't work //
fields.TryGetValue(TypeofApplication.1, out toSet);
toSet.SetValue(/On);

// This works //
fields.TryGetValue(FullName, out toSet);
toSet.SetValue(name);

form.FlattenFields();
pdf.Close(); 

Jsem schopen vyplnit textová pole ve formátu PDF, ale ne vyplňovat přepínačů / políček.

Typ Aplikace má dvě možnosti v mé cshtmlstránce:

@Html.RadioButton(Application_Type, New) New 
@Html.RadioButton(Application_Type, Renew) Renewal 

a když se dívám přes mé hodnoty slovníku, vidím, že tam jsou 3 možnosti:

  1. Typ aplikace
  2. TypeofApplication.1
  3. TypeofApplication.2

Jak mohu nastavit políčka as checked = true.

Moje logika je následující:

if(dr.Application_Type == New){
    fields.TryGetValue(TypeofApplication.1, out toSet);
    toSet.SetValue(/On);}

Ale to samozřejmě nefunguje.

Položena 13/02/2020 v 23:53
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Tak, jak jsem přišel na to: -

1) Otevřel jsem pdf, nastavte políčko, jak kontrolovat a uloží ho do složky pracovního prostoru.
2) Pak jsem programově soubor otevřel a prohlédl hodnotu pole takto: -

            string pdfTemplate = @"..\WebApplication1\Sample.pdf";
            string newFile = @"..\WebApplication1\completed_sample.pdf";

            PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
            PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
            IDictionary<String, PdfFormField> fields = form.GetFormFields();
            PdfFormField toSet;
            fields.TryGetValue("TypeofApplication", out toSet);
            var x = toSet.GetValueAsString();

Teď vím, že hodnotu x, která je kontrolována pole. (New nebo obnovit). Použil jsem tuto techniku ​​najít všechny hodnoty možné, aby jakékoliv dané políčko, radioButton seznamu, et cetera.

Odpovězeno 14/02/2020 v 02:15
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more