Page 1 of 2

leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 8:05 am
by goosfancito
Hola.
Una empresa nos envía archivos en PDF con datos que necesito extraer, como ser: nombre, dirección, productos, etc. esta empresa. no nos envía en formato XML solo en PDF. Hay alguna manera de poder extraer datos de ese PDF? o transformar ese PDF en XML?

gracias.

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 10:08 am
by Antonio Linares
Gustavo,

Revisa FWH\samples\pdfread.prg por si pudiera servirte

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 10:11 am
by Antonio Linares
Otra manera sería usar este código en python y llamarlo desde Harbour:
Code: Select all  Expand view
import PyPDF2

def extraer_texto_pdf(pdf_path):
    texto_extraido = ""

    # Abre el archivo PDF en modo binario
    with open(pdf_path, 'rb') as archivo_pdf:
        # Crea un objeto PDFReader
        lector_pdf = PyPDF2.PdfFileReader(archivo_pdf)

        # Recorre todas las páginas del PDF
        for pagina_numero in range(lector_pdf.numPages):
            # Obtiene el objeto de la página
            pagina = lector_pdf.getPage(pagina_numero)

            # Extrae el texto de la página
            texto_extraido += pagina.extractText()

    return texto_extraido

# Ruta al archivo PDF que deseas procesar
ruta_pdf = 'ejemplo.pdf'

# Llama a la función para extraer el texto
texto_extraido = extraer_texto_pdf(ruta_pdf)

# Imprime el texto extraído
print(texto_extraido)
 

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 10:23 am
by paquitohm
Hola Antonio,

¿ Hay alguna forma facil de llamar a un codigo python desde Harbour ?
¿ Se requiere tener python instalado supongo ? ¿ La minima expresion de python cual seria ?

En todo caso, lo que haré será investigar ese tema. Ese enlace puede ser un buen supletorio en determinados casos

Salu2

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 11:30 am
by goosfancito
al ejecutar. el ejemplo de pdfread
Application
===========
Path and name: X:\workshop\2024\pdf\bin\pdf.Exe (32 bits)
Size: 4,774,912 bytes
Compiler version: Harbour 3.2.0dev (r2104281802)
FiveWin version: FWH 21.11
C compiler version: Borland/Embarcadero C++ 7.6 (32-bit)
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 01/26/24, 12:29:23
Error description: (DOS Error -2147352567) WINOLE/1007 (0x800C0005): SPEAK
Args:
[ 1] = C c:\curl.txt
[ 2] = N 4

Stack Calls
===========
Called from: => TOLEAUTO:SPEAK( 0 )
Called from: Source\pdfread.prg => MAIN( 8 )

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 11:45 am
by goosfancito
El pdf que tengo, al abrirlo con el notepad dice
%PDF-1.3
%Äåòåë§ó ÐÄÆ
4 0 obj
<< /Filter /FlateDecode /Length 3182 >>
stream


por lo que lei en google habría que decodificarlo, es asi?
porque al ejecutar el programa (ahora lo ejecuta poniendo la ruta completa del pdf y del txt) el archivo txt queda vacío.

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 3:21 pm
by karinha
No te sirve SUMATRAPDF.exe ?

Regards, saludos.

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 4:43 pm
by Antonio Linares
paquitohm wrote:Hola Antonio,

¿ Hay alguna forma facil de llamar a un codigo python desde Harbour ?
¿ Se requiere tener python instalado supongo ? ¿ La minima expresion de python cual seria ?

En todo caso, lo que haré será investigar ese tema. Ese enlace puede ser un buen supletorio en determinados casos

Salu2


Querido Paco,

https://github.com/FiveTechSoft/harbour_python

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 6:33 pm
by paquitohm
Hola Antonio,

Gracias por tu respuesta
Lo de tener que instalar Python en cada maquina de los clientes me supone un inconveniente

¿ No habrá algunas libreria o algo asi para dejar en la carpeta de la aplicacion sin necesidad de instalar todo ?

Salu2

Re: leer y pdf y extraer datos

PostPosted: Fri Jan 26, 2024 8:43 pm
by goosfancito
karinha wrote:No te sirve SUMATRAPDF.exe ?

Regards, saludos.


no lo conozco voy a indagar. gracias!

Re: leer y pdf y extraer datos

PostPosted: Sat Jan 27, 2024 5:46 am
by Antonio Linares
paquitohm wrote:Hola Antonio,

Gracias por tu respuesta
Lo de tener que instalar Python en cada maquina de los clientes me supone un inconveniente

¿ No habrá algunas libreria o algo asi para dejar en la carpeta de la aplicacion sin necesidad de instalar todo ?

Salu2

Paco,

Ese es el mismo inconveniente que encontramos nosotros para usar IA que se basa en Python, de ahi que es un alivio que exista https://github.com/ggerganov/llama.cpp pero esto es solo para IA y no para Python en general.

Voy a buscar a ver si existe alguna solución para crear ejecutables con Python...

Re: leer y pdf y extraer datos

PostPosted: Sat Jan 27, 2024 5:49 am
by Antonio Linares
Paco,

La respuesta de la IA de Bing (copilot):
Sí, existen varias formas de crear archivos ejecutables en Python que se pueden ejecutar sin necesidad de tener instalado el intérprete de Python. Algunas de las herramientas más populares son:

PyInstaller: Permite crear ejecutables de un solo archivo o de una carpeta, y soporta múltiples sistemas operativos. También permite incluir recursos externos como imágenes o archivos .ui12.
py2exe: Es una herramienta específica para Windows que convierte los scripts de Python en archivos .exe. Tiene algunas limitaciones, como no soportar Python 3.7 o superior3.
cx_Freeze: Es una herramienta multiplataforma que crea ejecutables a partir de scripts de Python. Soporta Python 3.6 o superior, y permite incluir módulos adicionales3.
Para utilizar estas herramientas, es necesario instalarlas con el comando pip install <nombre de la herramienta>, y luego ejecutarlas con el nombre del script de Python que se quiere convertir en ejecutable. Cada herramienta tiene sus propios argumentos y opciones que se pueden consultar en su documentación oficial.

Re: leer y pdf y extraer datos

PostPosted: Sat Jan 27, 2024 9:23 am
by paquitohm
Gracias Antonio.

El uso de ejecutables externos es una solucion.
Asi podemos hacer un solo ejecutable python que sea multifuncional
Recientemente lo he hecho con powershell para envio de email: Le paso parametro de archivo .ini y el propio powershell graba en ese archivo .ini los datos resultantes (enviado/ no enviado) mientras el programa harbour espere con un timeout de 5 o que la seccion resultante haya sido escrita. Realmente funciona muy bien.
Un unico .exe multifuncion de python puede ser la solucion para interactuar sin montar todo el monario de python

Salu2

Re: leer y pdf y extraer datos

PostPosted: Sat Jan 27, 2024 11:36 am
by nageswaragunupudi
First try opening the file with
Code: Select all  Expand view
htmlView( FullName( cPdfFileName ) )

Re: leer y pdf y extraer datos

PostPosted: Sat Jan 27, 2024 3:38 pm
by karinha
Code: Select all  Expand view

// C:\FWH\SAMPLES\HTMLPDF.PRG

#include "FiveWin.ch"

STATIC oWnd

FUNCTION Main()

   LOCAL oBar

   DEFINE WINDOW oWnd TITLE "HtmlViewPdf"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar ACTION HtmlViewPdf()

   SET MESSAGE OF oWnd TO "HtmlViewPdf" NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd MAXIMIZED

RETURN NIL

FUNCTION HtmlViewPdf()

   HTMLVIEW( "C:\TEMP\FWINTRO.PDF" ) // USE ACROBAT

RETURN NIL

// FIN / END
 


Regards, saludos.