Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   Leer de un archivo pdf en Android para extraer una información concreta (https://www.clubdelphi.com/foros/showthread.php?t=94348)

terb 19-12-2019 08:28:00

Leer de un archivo pdf en Android para extraer una información concreta
 
Hola a todos,

¿Alguien sabe como leer de un archivo PDF en Android para extraer una información concreta o exportarla a otro formato (texto , rtf, word...) para así poderlo leer?

Gracias.

Neftali [Germán.Estévez] 19-12-2019 15:44:50

Que yo sepra, con las librerías estandard de Delphi no se puede.
Deberás buscar librerías externas para poder hacerlo.

TiammatMX 19-12-2019 19:40:42

Cita:

Empezado por terb (Mensaje 534857)
...para así poderlo leer?...

Explica, ¿no se puede leer el PDF? ¿Convertirlo a otro formato PARA LEERLO? Entonces, ¿en dónde queda el carácter UNIVERSAL Y ESTANDARIZADO del formato PDF? :eek::eek::eek::eek:

O ya estoy de plano muy anticuado con mis conceptos.

Javierus 20-12-2019 11:09:30

Es universal, porque puede representar cualquier documento "impreso". Y estandarizado porque lo está.
Pero no está orientado a la distribución de información sino de documentos fieles al impreso, por lo que dos textos como por ejemplo "factura Nº" y a su lado "123456", que están evidentemente relacionados semánticamente, en el formato no tienen por qué estar relacionados: solo es importante que al visualizarlo se muestren como está previsto.

Hay herramientas que te extraen el texto con cierta similitud estructural a cómo aparece en pantalla, es decir, si dos cosas se muestran consecutivas, pues en el texto son consecutivas. Pero no siempre: depende de cómo se haya creado el PDF; quizás el texto a la derecha esté unos píxeles más arriba o abajo, y esto resulte en que la conversión a texto lo deje en líneas diferentes.

Igual que una página HTML puede presentar una información, pero internamente tener una estructura semánticamente muy distinta del aspecto que se muestre en pantalla, que dependerá también de CSS, etc etc

Incluso XML, que no tiene absolutamente nada que ver con los otros, porque es un sistema de información estructurada, necesita de herramientas (librerías) adecuadas para manejarlo eficientemente. Aunque te las hagas tú.

/fin del rollo :)

Neftali [Germán.Estévez] 20-12-2019 11:23:28

Se me ocurre que hay servidores Online que te permiten hacerlo.
No se si puedes encontrar alguno que se ajuste a lo que necesitas. De esta forma tal vez no dependas de componentes.

terb 26-12-2019 18:55:53

Primero de todo gracias por contestar.

He probado los componentes de Gnostice concretamente el ejemplo que instala en C:\Users\XXX\Documents\Gnostice\Document Studio Delphi\Demos\Delphi\FMX\1. Document Viewer
Y lo he modificado para usar el TgtDocumentConverter y convertir un Pdf a texto pero no se por qué no funciona / no crea ningún archivo .txt y tampoco da ninguna excepción:

Código:

procedure TForm1.lbFilesChange(Sender: TObject);
var
sFileName:string;
DateTimeNow: TDateTime;
DateTimeFile:string;
sPath:string;
sGetDownloadsPath:string;
sException:string;
begin
  try
    try
      lbFiles.Visible := False;
      // Enable buttons back for Mobile
      ActionFileLoad.Enabled := True;

      //Add
      FFileName := FDocDir + PathDelim + lbFiles.Items[lbFiles.ItemIndex];
      DateTimeNow :=  Now;
      DateTimeFile := FormatDateTime('dd_mm_yy_hh_nn_ss',DateTimeNow);
      sFileName := 'demo'+DateTimeFile+'.txt';
      gtDocumentConverter1.InputDocuments.AddDocument(FFileName,'');
      sGetDownloadsPath := TPath.Combine(TPath.GetDownloadsPath,'');
      gtDocumentConverter1.ConvertToFile('.txt',True,True,sGetDownloadsPath, sFileName);
      ShowMessage('Conversion completed');
      //End Add
      DocViewer.LoadFromFile(FFileName);
    except on E: Exception do
      sException:=E.Message;
    end;
  finally
  end;
end;

He visto la funcionalidad de esta clase esta en VCL pero no la veo para FMX. En este link:
gnostice.com/docs/xtremedocumentstudio_delphi/frames.html?frmname=topic&frmfile=vcl_gtxDocumentConverter_TgtDocumentConverter.html

Entonces…
Me surge otra duda … es posible ejecutar un programa java de consola desde Delphi?
Porque la funcionalidad de extraer texto de un Pdf creo recordar que era posible hacerla en Java.

Buenas fiestas y gracias.


La franja horaria es GMT +2. Ahora son las 17:21:27.

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