Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   PDF Text lesen (https://www.delphipraxis.net/180111-pdf-text-lesen.html)

michael.cohrs 23. Apr 2014 16:56

PDF Text lesen
 
Hallo zusammen,
ich benutze Delphi 7 und versuche aus einer PDF Datei den Text zu lesen. Diesen Text möchte ich in einer Stringliste verwalten um ihn später mit einem anderen Dokument zu vergleichen. Der Ansatz auf der Seite http://www.swissdelphicenter.ch/de/showcode.php?id=2169 hat mir leider nicht geholfen da es mir nicht gelingt. Bei dem dort angegebenen Aufruf CreateOleObject('AcroExch.pdDoc') erhalte ich die Fehlermeldung Invalid Class String. Die Acrobat_TLB wurde eingebunden. auf der Maschine ist der Acrobat Reader 8.0 installiert. Hat vielleicht jemand eine Lösung mit möglicherweise kleinen Codesnipsel?

Vielen Dank:)

Michael

himitsu 23. Apr 2014 17:26

AW: PDF Text lesen
 
Ist halt bissl blöd, wenn direkt beim Tipp nicht steht wie alt der eigentlich ist. (wird wohl Absicht sein, da fast alle Tipps etwas "älter" sind)

21.03.2005

Es kann natürlich sein, daß aktuellere Versionen des Acrobat-Readers diese 9 Jahre alte Schnittstelle/Klasse inzwischen nicht mehr anbieten.

michael.cohrs 23. Apr 2014 18:35

AW: PDF Text lesen
 
Danke für die Antwort!

Ja leider ist der Tipp "etwas" älter:( Kennst Du vieleicht eine andere Möglichkeit das benannte Problem zu lösen?

Danke schön

michael

WM_CLOSE 23. Apr 2014 18:52

AW: PDF Text lesen
 
Es gibt verschiedene Libs, die PDF-Dateien öffnen können, zum Teil kostenpflichtig.

Dabei ist zu beachten, dass es mindestens 2 komplett verschiedene Arten im Dateiaufbau von PDF-Dokumenten gibt. Diese kannst du auf der Adobe-Webseite einsehen (Stichwort "PDF Specification").
Das bedeutet, dass manche Libs nur 1 Standard lesen können.
Außerdem werden manche Dateien von manchen Libs evtl. nicht richtig gelesen.

Wenn du eine dieser Libs verwendest, kannst du meistens davon ausgehen, dass sie auf dem Zielsystem immer vorhanden ist/funktioniert (sind ja dann in deinem Programm), was beim Adobe Reader nicht gegeben ist, wenn z.B. ein Update kommt, das alte Funktionen nicht mehr anbietet.

Die Lib-Variante ist imho vorzuziehen wenn:
-Das Deployment (Setup auf dem Zielsystem) einfacher sein soll
-Nur ein bestimmter Typ von PDF-Dateien gelesen werden soll. (Dateien die von einem bestimmten Programm erzeugt werden und immer den gleichen Aufbau haben.)

PS:
Ich sehe gerade, dass du explizit von Adobe Acrobat sprichst. Meinst du wirklich den (kostenpflichtigen) Adobe Acrobat oder den Adobe Reader?

michael.cohrs 23. Apr 2014 19:11

AW: PDF Text lesen
 
Hallo:)

ich meine den Adobe Reader, ich kann davon ausgehen das dieser auf jedem System installiert ist.
Der Aufbau der Dateien ist immer gleich. Leider fehlt es mir an Kenntnissen zum Einbinden der
"Libs":( Könntest Du mir hierbei ein wenig behilflich sein?

Danke und viele Grüße
Michael

Bernhard Geyer 23. Apr 2014 20:21

AW: PDF Text lesen
 
Zitat:

Zitat von michael.cohrs (Beitrag 1256667)
Hallo zusammen,
ich benutze Delphi 7 und versuche aus einer PDF Datei den Text zu lesen. Diesen Text möchte ich in einer Stringliste verwalten um ihn später mit einem anderen Dokument zu vergleichen. Der Ansatz auf der Seite http://www.swissdelphicenter.ch/de/showcode.php?id=2169 hat mir leider nicht geholfen da es mir nicht gelingt. Bei dem dort angegebenen Aufruf CreateOleObject('AcroExch.pdDoc') erhalte ich die Fehlermeldung Invalid Class String. Die Acrobat_TLB wurde eingebunden. auf der Maschine ist der Acrobat Reader 8.0 installiert. Hat vielleicht jemand eine Lösung mit möglicherweise kleinen Codesnipsel?

Da du nun den Adobe Reader installierst hast aber die Lösung den Adobe Acrobat vorraussetzt wird dir diese Code nix bringen.

Für die Textextraktion schau dir mal PDFBox an. Diese hat eine einfach zu verwendende API


Zitat:

Zitat von michael.cohrs (Beitrag 1256688)
ich meine den Adobe Reader, ich kann davon ausgehen das dieser auf jedem System installiert ist.

Diese ist nicht überall installiert. A) weil es alternative PDF-Viewer gibt und B) für ein Großteil der Anwendungsfälle man mittlerweile es reicht die Browser-Integrierten PDF-Viewer-Fähigkeiten zu verwenden.

michael.cohrs 24. Apr 2014 05:11

AW: PDF Text lesen
 
:(Guten Morgen,

ich kann in unserer Firma voraussetzen das der Adobe Reader auf jeder Maschine installiert ist, es geht um ein internes Firmenproblem. Gibt es denn so gar keine Möglichkeit den Text aus einer PDF zu lesen? :(

viele Grüße

Michael

mkinzler 24. Apr 2014 06:33

AW: PDF Text lesen
 
PDF ist ja nur ein Containerformat. Viele beinhalten statt Text aber nur Bilder der Seiten ( wenn eingescannt). In diesem Fall existiert dann kein Text, den Du so leicht auselesen kannst. Man müsste in diesem Fall einen Textindex (per OCR) erzeugen lassen (z.B. mit Vollversion von Adobe).
Diesen könnte man dann über den IFILTER auslesen. Dieser ist aber m.W. nicht mehr Teil des Readers.

Perlsau 24. Apr 2014 06:54

AW: PDF Text lesen
 
Zitat:

Zitat von michael.cohrs (Beitrag 1256725)
Gibt es denn so gar keine Möglichkeit den Text aus einer PDF zu lesen? :(

Vermutlich kann man das Kommandozeilen-Tool pdftotext via Delphi steuern und so aus PDF-Dateien, die garantiert Text enthalten, eine Textdatei generieren. Die Syntax meiner alten Version ist ganz einfach: pdftotext PdfDatei.pdf Textdatei.txt. Diverse parameter können zum Steuern wie z.B. der Angabe der ersten zu extrahierenden Seite oder dem Unterdrücken von Fehlermeldungen usw. eingesetzt werden. Funktioniert wie gesagt nur mit reinen Text-PDFs. Sobald Grafik oder undefinierbare Codes im PDF vorkommen, streikt das Tool.

Bernhard Geyer 24. Apr 2014 08:21

AW: PDF Text lesen
 
Zitat:

Zitat von michael.cohrs (Beitrag 1256725)
Gibt es denn so gar keine Möglichkeit den Text aus einer PDF zu lesen? :(

Ich habe doch eine Aufgeschrieben. Ist das wohl keine Möglichkeit?

Mit dem Adobe Reader gibt es (falls du dich darauf bezogen hast) keine Mögichkeit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz