Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

545
Vistas
¿Cómo extraer nombres de campo y propiedades del formulario PDF?

Tengo más de 40 formularios y quiero asegurarme de que los campos comunes tengan los mismos nombres. Esto me sería de gran ayuda para almacenar y ordenar las entradas.

Aparte de eso, quiero asegurarme de que el formato sea coherente en todos los formularios. ¿Hay alguna manera de que pueda extraer estos datos de los formularios pdf, preferiblemente en un archivo de Excel, para poder verificar / hacer correcciones?

Las propiedades que busco son:

  1. Id. de campo
  2. Nombre del campo
  3. Tipo de campo
  4. Fuente
  5. Tamaño de fuente
  6. Color de fuente
  7. Alineación
  8. multilínea
  9. Formato de fecha
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El ARCHIVO DE DATOS del formulario (FDF o XFDF ampliado) se exporta fácilmente desde el PDF y se puede manipular desde el espacio en blanco para importarlo a un PDF y completar los campos automáticamente. De alguna manera, similar al PDF, puede contener medios binarios, pero se basa predominantemente en texto, por lo que es fácil de analizar.

Podría verse así, por lo que es muy fácil de importar a otras aplicaciones.

 %FDF-1.4 %âãÏÓ 1 0 obj << /FDF << /F (BrunnoFormExample.pdf) /Fields [<< /T (Address 1 Text Box) /V (questions) >> << /T (Address 2 Text Box) /V (stackoverflow.com) >> << /T (City Text Box) /V (My Capitol @ WWW) >> << /T (Country Combo Box) /V (Austria) >> << /T (Driving License Check Box) /V /Yes >> << /T (Family Name Text Box) /V (Miranda Marques) >> << /T (Favourite Colour List Box) /V (Violet) >> << /T (Gender List Box) /V (Man) >> << /T (Given Name Text Box) /V (Brunno) >> << /T (Height Formatted Field) /V (150) >> << /T (House nr Text Box) /V (70970330) >> << /T (Language 1 Check Box) /V /Off >> << /T (Language 2 Check Box) /V /Yes >> << /T (Language 3 Check Box) /V /Off >> << /T (Language 4 Check Box) /V /Yes >> << /T (Language 5 Check Box) /V /Off >> << /T (Postcode Text Box) /V (HTTPS2) >>] /ID [<5E0A553555622A0516E9877CA55217A6> <90A86CDE1915E44BE48046FECF63C769>] /UF (BrunnoFormExample.pdf) >> /Type /Catalog >> endobj trailer << /Root 1 0 R >> %%EOF

SIN EMBARGO, son solo los datos de campo, por lo que no puede cambiar el estilo o el color, esos son parte de los datos de la página PDF y, por lo tanto, para cambiar el contenido de una página, necesita un editor / API completo con capacidades de análisis y modificación, en lugar de función de importación y exportación. Hay muchos editores de PDF GUI con capacidades de API o SDK, como Windows Foxit Phantom, pero debe usar su opción favorita para la plataforma o el lenguaje de programación, por lo tanto, para JS puede usar iText Aspose o Spire, etc.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Diría que definitivamente puede hacer la parte 1, extraer nombres de campo.

La forma más fácil es abrir cada uno y simplemente usar la herramienta 'Preparar formulario' y 'Exportar datos'. Puede elegir un "archivo de texto", que es un archivo de texto delimitado por tabuladores que puede abrir/importar en Excel. Haz eso más de 40 veces para cada archivo.

Después de eso, hay JavaScript y probablemente pueda obtener campos de formulario, no estoy seguro. He hecho lo contrario, usando Javascript para importar datos a un formulario, así que supongo que es posible lo contrario. Escribí un Gist sobre esto hace un tiempo, muestra cómo exportar datos de formulario a través de la interfaz de usuario e importar datos al formulario a través de JS. También tiene el enlace al SDK de PDF de Adobe para comprender lo que se puede hacer en JavaScript, e incluí otros enlaces que me ayudaron a comprender el "entorno" JS dentro de Acrobat.

Después de JavaScript, vienen soluciones muy personalizadas que involucran herramientas gratuitas y de pago escritas por proveedores de código abierto y cerrado. En el lado de pago o gratuito, UniDOC tiene su producto UniPDF. Deberá saber cómo leer/escribir Go, pero se puede hacer, incluso la segunda parte de su pregunta, obteniendo propiedades en los campos. Tienen un nivel gratuito que le permite procesar 100 documentos por mes antes de tener que pagar.

Hice un PDF muy simple con dos campos de formulario: una fecha y un texto de varias líneas. Usé su ejemplo de análisis , pdf_all_objects.go, para obtener un volcado de esos dos campos. Detectar el formato de fecha es bastante sencillo:

 .../Subtype/Widget/T(My_date_field)/Type/Annot>><</JS(AFDate_FormatEx\("mm/dd/yyyy"\);)/S/JavaScript>><</JS(AFDate_KeystrokeEx\("mm/dd/yyyy"\);)/S/JavaScript>>

Ver si el campo de texto era multilínea o no es más difícil. No hay una palabra clara "multilínea". En cambio, es un valor bit a bit que se combina con OR junto con otros valores. Tuve que guardar el campo como multilínea y no multilínea y luego diferenciar los flujos de objetos para detectar la sutil diferencia:

 @@ -150,7 +150,7 @@ Decoded: ========================================================= 26: 27 0 *core.PdfIndirectObject *core.PdfObjectDictionary -Dict("AA": Dict(), "DA": /Helv 12 Tf 0 g, "F": 4, "FT": Tx, "Ff": 4096, "MK": Dict(), "P": Ref(17 0), "Rect": [159.063000, 604.518000, 309.063000, 626.518000], "Subtype": Widget, "T": My_multiline, "Type": Annot, ) +Dict("AA": Dict(), "DA": /Helv 12 Tf 0 g, "F": 4, "FT": Tx, "Ff": 12582912, "MK": Dict(), "P": Ref(17 0), "Rect": [159.063000, 604.518000, 309.063000, 626.518000], "Subtype": Widget, "T": My_multiline, "Type": Annot, )

"Ff": 12582912 vs "Ff": 4096 es la diferencia entre multilínea y no.

/Helv 12 Tf 0 es "Helvética de 12 puntos, negro".

Así que... factible, pero difícil.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda