Vérification dans les cases à cocher un fichier PDF avec iText7 dans .NET

voix
0

J'ai un échantillon pdf, que je suis en train de remplir par programme en tant que tel (en utilisant 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(); 

Je suis en mesure de remplir les zones de texte dans le pdf, mais pas de remplir les boutons radio / cases à cocher.

Type d'application a deux options dans ma cshtmlpage:

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

et quand je regarde à travers mes valeurs du dictionnaire, je vois qu'il ya 3 options:

  1. Type d'application
  2. TypeofApplication.1
  3. TypeofApplication.2

Comment puis-je configurer les cases à cocher checked = true.

Ma logique est la suivante:

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

Mais cela ne fonctionne évidemment pas.

Créé 13/02/2020 à 23:53
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Donc, la façon dont je me suis dit ceci: -

1) J'ai ouvert le pdf, décochez la case en vérifié et mémorisé dans mon dossier de l' espace de travail.
2) Ensuite, j'ai ouvert le fichier programme et inspecta la valeur du champ en tant que tel: -

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

Maintenant, je connais la valeur de x, qui est le champ contrôlé. (Ou renouveler). J'ai utilisé cette technique pour trouver toutes les valeurs possibles pour une case donnée, liste RadioButton, et ainsi de suite.

Créé 14/02/2020 à 02:15
source utilisateur

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