Sjekker avmerkingsboksene i en PDF med iText7 i .NET

stemmer
0

Jeg har en prøve pdf, at jeg fyller ut programma som sådan (ved hjelp 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(); 

Jeg er i stand til å fylle ut tekstboksene i pdf, men ikke for å fylle ut radio knapper / boksene.

Type program har to alternativer i min cshtmlside:

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

og når jeg ser gjennom mine verdier ordbok, ser jeg at det er 3 alternativer:

  1. TypeofApplication
  2. TypeofApplication.1
  3. TypeofApplication.2

Hvordan setter jeg boksene som checked = true.

Min logikk er som følger:

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

Men dette åpenbart ikke fungerer.

Publisert på 13/02/2020 klokken 23:53
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Så slik jeg funnet ut dette: -

1) Jeg åpnet pdf, satt av i boksen som sjekket og lagret det i mitt arbeidsområde mappe.
2) Da jeg programma åpnet filen og inspisert feltverdi som sådan: -

            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();

Nå, jeg vet verdien av x, som er merket av feltet. (Ny eller Forny). Jeg brukte denne teknikken til å finne alle mulige verdier for en gitt boksen, radiobutton liste, et cetera.

Svarte 14/02/2020 kl. 02:15
kilden bruker

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