Comprobación de casillas de verificación en un PDF con iText7 en .NET

votos
0

Tengo un pdf de la muestra, que estoy llenando a cabo mediante programación como tal (usando 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(); 

Soy capaz de llenar los cuadros de texto en el PDF, pero no para llenar los botones de radio / casillas de verificación.

Tipo de aplicación tiene dos opciones en mi cshtmlpágina:

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

y cuando miro a través del diccionario de mis valores, veo que hay 3 opciones:

  1. Tipo de aplicacion
  2. TypeofApplication.1
  3. TypeofApplication.2

¿Cómo se configuran como las casillas de verificación checked = true.

Mi lógica es la siguiente:

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

Pero esto, obviamente, no funciona.

Publicado el 13/02/2020 a las 23:53
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Por lo que la forma en que cuenta de esto: -

1) Abrí el pdf, puse la casilla de verificación como equipaje y lo ha guardado en mi carpeta de espacio de trabajo.
2) A continuación, mediante programación abrir el archivo e inspeccionó el valor del campo como tal: -

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

Ahora, sé que el valor de x, que es el campo comprobado. (Nueva o renovar). He utilizado esta técnica para encontrar todos los valores posibles para cualquier casilla dada, lista botón de radio, etcétera.

Respondida el 14/02/2020 a las 02:15
fuente por usuario

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