Leer PDF en Fox y convertir datos en DBF

283 views
Skip to first unread message

Fernando Mora

unread,
Aug 14, 2022, 1:54:53 AM8/14/22
to Comunidad de Visual Foxpro en Español
Saludos comunidad!

Estoy construyendo una librería que tiene como tarea, leer los PDF y convertir los datos a DBF, estoy tratando de leer los PDF tal como indica el manual de Adobe (https://opensource.adobe.com/dc-acrobat-sdk-docs/standards/pdfstandards/pdf/PDF32000_2008.pdf) esto es usar la tabla de referencia de objetos, cargar objeto por objeto, descomprimir si esta comprimidos los datos del stream, etc. y leer LABEL por LABEL. Ya he podido convertir algunos PDF a DBF, estoy atascado en los PDF de versiones superiores a 1.5 (en especial 1.7) las tablas de referencia viene comprimidas, al descomprimir y leer tal como dice el manual, casi todas las referencia a los objetos son exactas, pero hay algunas referencias que no coinciden con la ubicación del objeto, y la diferencia con su posición real es exactamente de 256 caracteres. Es decir la ubicación que dice la tabla es por ej. 621, pero su ubicación real es 365, la diferencia 256, este problema se da en los PDF que tiene tablas de referencia codificadas y el objeto contenedor de la tabla trae un sub-objeto DecodeParms con un campo Predictor de valor 12. Lastimosamente el manual no habla casi nada de esto y menos tiene un ejemplo de este tipo. Alguien tiene alguna sugerencia de porque puede darse esta diferencia exacta de 256 caracteres? 

Cualquier sugerencia, agradecería mucho, y mas si leen el manual la parte de Cross-reference, y me hace notar algo que tal vez no este yo logrado entender, mas agradecido aún.

Fernando. 

arti...@gmail.com

unread,
Aug 16, 2022, 7:38:32 AM8/16/22
to Comunidad de Visual Foxpro en Español
Está muy interesante, lo estoy mirando...

Mauricio Fragoso

unread,
Aug 16, 2022, 10:49:18 AM8/16/22
to Comunidad de Visual Foxpro en Español
Yo de plano no me metí en tanto tecnicismo, pero tuve que procesar en México las famosas cédulas de situación fiscal para automatizar y validarlas.  Igual sirve para analizar facturas en pdf, porque al menos puedes validar si contienen el RFC de la parte interesada y demás validaciones.

Como lo resolví es con una línea de comando ptcmd.exe la cual extrae el contenido en formato texto y de ahí para la base de datos.

Lo tuyo es mas elegante, pero esto me solucionó el problema al instante.

Fernando Mora

unread,
Aug 21, 2022, 10:35:55 AM8/21/22
to Comunidad de Visual Foxpro en Español
Saludos Mauricio.
Hasta hace poco usaba convertidores en línea para extraer los datos de los PDF. Porque muy poco ocupaba realizar eso. Pero ahora se va a necesitar realizar conversiones de listados casi semanal, y son de varias instituciones, entonces, usar herramientas que arrojan texto, algunas son lentas, y luego el texto están en un orden que se pasa mucho tiempo ordenar para cargar a las Base de datos. Por esta razón tome la decisión de escribir un código que haga esta tediosa tarea de forma automatizada... leer los PDF no es lo complejo. Lo realmente complicado es detectar la ubicación correcta de las columnas... eso si que me ha tomado tiempo y revisar mucho listados en PDF de las instituciones que los emiten para adaptar esto. Y la verdad si es un dolor de cabeza. 

Luego de varias semanas, se ha logrado ajustar casi todos los listados, Ahora estoy con el problema de los textos codificados en hexadecimal con Encoding: Identity-H (supongo que H es de HORRIBLE jajaja) es todo un galimatias.. apenas estoy revisando esto y no entiendo nada. Pero no queda otro camino que seguir.

Fernando
Reply all
Reply to author
Forward
0 new messages