Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Extraer datos de un PDF (https://www.clubdelphi.com/foros/showthread.php?t=97417)

CFPA86 20-04-2025 20:17:50

Extraer datos de un PDF
 
Hola a tod@s las foristas.
Regreso al foro después de tanto tiempo de no estar por acá, les pido disculpas por ello; nuevamente vengo en su ayuda para continuar con un proyecto (personal), el cual tiene una B.D. en paradox y realizado en Delphi 7, preciso de extraer unos datos que me vienen en un archivo PDF para poder incorporarlos a mi B.D. y así poder dar mas agilidad a mi proyecto y no tener que digitar dichos datos una y otra vez.
lo he intentado de muchas formas sean estas buscadas en el foro o sugeridas y aun no lo logro. Le agradezco al que me pueda dar una ayuda.
Se cuidan, chauuuuu

Casimiro Notevi 20-04-2025 23:31:17

Primero de todo debes comprobar si el pdf es de texto o son imágenes incrustadas al pdf.

Si son imágenes entonces te resultará bastante complejo.
Si es texto entonces hay varias alternativas.
¿Es texto?

CFPA86 21-04-2025 23:13:55

Es de texto el archivo PDF

pgranados 22-04-2025 00:08:29

Yo necesitaba algo similar a tu caso, termine haciendo un API con Python, para extraer el texto uso la libreria PDFMiner

Casimiro Notevi 22-04-2025 09:09:02

Si es texto, también puedes usar pdftotext.exe (de Xpdf) y capturar la salida.
uses ShellAPI;
Código Delphi [-]
procedure ExtractWithXpdf;
var
  CommandLine: string;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  CommandLine := 'pdftotext.exe documento.pdf salida.txt';
  
  FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
  StartupInfo.cb := SizeOf(TStartupInfo);
  
  if CreateProcess(nil, PChar(CommandLine), nil, nil, False, 
     CREATE_NO_WINDOW, nil, nil, StartupInfo, ProcessInfo) then
  begin
    WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
    CloseHandle(ProcessInfo.hProcess);
    CloseHandle(ProcessInfo.hThread);
    
    // Leer el archivo de texto resultante
    Memo1.Lines.LoadFromFile('salida.txt');
  end;
end;

CFPA86 22-04-2025 18:13:59

Les agradezco las respuestas tan oportunas al problema, CasiMiro NoTeVi, si no es mucho la molestia me explicas como aplicar el código que me acabas de enviar en mi programa.
Les pido disculpas por mi ignorancia, es que me siento muyyyyy desactualizado.
se cuidan.
chauuuu

pgranados 22-04-2025 22:18:20

Cita:

Empezado por CFPA86 (Mensaje 563937)
Les agradezco las respuestas tan oportunas al problema, CasiMiro NoTeVi, si no es mucho la molestia me explicas como aplicar el código que me acabas de enviar en mi programa.
Les pido disculpas por mi ignorancia, es que me siento muyyyyy desactualizado.
se cuidan.
chauuuu

Descarga el exe y con el codigo de Casimiro pasas el texto del pdf a un archivo .txt, y despues ese archivo .txt lo cargas en un memo y extraes la información que necesitas, la info la puedes extraer usando expresiones regulares

CFPA86 24-04-2025 15:11:37

Hola para tod@s, nuevamente les agradezco por su colaboracion y por sugerirme una idea para continuar con mi proyecto, les comentare en estos dias como me acaba de ir.
Se cuidan
Chauuuuu


La franja horaria es GMT +2. Ahora son las 13:21:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi