Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Text in PDF Tabelle suchen (https://www.delphipraxis.net/174780-text-pdf-tabelle-suchen.html)

ByTheTime 9. Mai 2013 15:51

Text in PDF Tabelle suchen
 
Moin,
ich suche eine Möglichkeit oder einen Komponenten den Text aus einer tabelle in einem PDF Dokument zu suchen. Das ganze hat folgenden Hintergrund. Ich bin auf einer Schule, die ihren Vertretungsplan (wo draufsteht, wenn eben Unterricht entfällt, verlegt wird, etc.) auch auf ihrer Website hat. Und da ich ja jeden morgen so super pünktlich dran bin, schaff ich es natürlich auch immer einen Blick darauf zu werfen :lol: Da ich ja eh an den PC muss um mir das Dokument anzuschauen, habe ich mir überlegt, ein Tool zu schreiben, was genau das macht. Die IT Experten unserer Schule haben extra ein System entwickelt, wodurch der Vertretungsplan durch eine Anmeldung sowie ein extra Passwort geschützt ist. Aber da man trotzdem auf einem Stinknormalen Link weitergeleitet wird (www.meineschule.de/blababla/vertretung.pdf), ist es schonmal kein Problem das Teil runterzuladen. Soweit bin ich auch schon. Allerdings weiß ich nicht, wie ich das jetzt mit Delphi auslese.
Der Plan sieht so aus (Name der Schule und Lehrer natürlich entfernt):
http://www.pic-upload.de/view-19261343/test.png.html
Mein Prgramm soll die Kurse (auf dem Bild sind es jetzt halt irgendwelche Klassen), die ich in einer Liste habe (z.B. E1, M3, D4, Ph5 - Englich Kurs 1, Mathe..., Deutsch..., Physik...) in dem Dokument suchen, dann schauen ob es der heutige Tag ist, wenn ja dann eben sagen was ausfällt oder ob nur der Raum geändert wird. Das ist ja alles ganh einfach mit Stringbefehlen in Delphi zu machen, aber das ganze erstmal in dieser Struktur, zumindestens so, das die Zeilen noch in Reih ud Glied sind, zu realisiern, ist mein Problem.

Lange Rede, kurzer Sinn: Ihr müsst mir auf die Sprünge helfen, das Dokument auszulesen :)

Danke,
Lukas

ByTheTime 9. Mai 2013 15:55

AW: Text in PDF Tabelle suchen
 
Oh man, also meineschule(dot)de ist NICHT meine Schule! :D Hab einfahc wahrlos mir eine Adresse ausgedacht :D Naje egal jetzt.

Sir Rufo 9. Mai 2013 16:24

AW: Text in PDF Tabelle suchen
 
1. Bilder hier direkt hochladen
2. PDF mal in einem Text-Editor öffnen - findest du dort die Informationen als Text?

MeierZwoo 9. Mai 2013 18:34

AW: Text in PDF Tabelle suchen
 
Das Grundproblem bei einer PDF ist, daß die Texte dort nicht in der Reihenfolge wie in der Ansicht folgen, und schon garnicht zeilenweise. Im Extremfall sind die einzelnen Wörter sogar in einzelne Zeichen mit Positionsangabe zerfleddert.

Um zum interpretieren des Inhalts die Zeilen in richtiger Anordnung und Folge wieder herzustellen, müssen auch alle Positionsangaben der Wörter oder Zeichen mitgelesen und das Ganze neu sortiert werden. Du kannst ja mal zur Anschauung mit dem Reader die Texte (in Datei) extrahieren lassen - dann siehst Du, was ich meine.

Und wenn die PDF binär erzeugt wurde (kein ASCII), wird das ein recht großer Aufwand für den erstrebten Zweck.

Und mit Pech wechseln zwischendurch die PDF-Versionen bzw. PDF-Writer/Treiber Versionen.

FF (Fiel Freude) :)

ByTheTime 9. Mai 2013 22:18

AW: Text in PDF Tabelle suchen
 
1. Okay, das mit den Bildern mach ich in Zukunft.
2. Also ich finde die Informationen so vor:
Code:
÷jô°î_¤²€FZ€ñ) h¤~Ði°ÿ‘ö:è( úúš5Ýߟ¶cÀdÀ1b¬*!d<ÊŒo.7y×ÁG¹ ð.ÐH|ä‚ý“—ï_uD@™€#ô¬3éxAÀ¤‚tKa§£,£¤Êr¿ R
n»R0H)0>%ƒ”‚ÃJÁ ¥ö?¾ªƒŽ’B*¯KábzgÓv˜8Gl…õ²hV`|Ã
{x”¾]=áaRøM– r”8HÎ:‚*Ô‚ôÏ{¤BEî÷EúÀäC>°H0>å‹ôÃúÀ"}ö?òÁNåƒ@ßÄéΑòEú€ñ)X¤>á‹ôAÀoä‹ôÙl¨`‘>Aú}`‘>y£›mK¯Õ*fë²CýkØËVebýY:#R&˜S8Fb1"áaNqx+#r”TB$×lp”XB‚Ô5χ   …ùÉkÄG…ùÉkÄG)%ð“‹)Ì*!Áàe
2
‡H\† :J#>´‘ 4Ê&¡&§¯ªWec͆oÆq!â«îÔ|¨«ê}¯áŒ»B¥âo¸¹î7wÚ>Ò¿R¢×?n¬YQ)Jjž%e4Çöÿvz˜Ä   @F£½O.a<Hg„O¸Œà(—yxJd ‰ÌÃSc8Èb¦Úh”¾=ä.N r—OÐ/.FƒÄEèÞÁ×[®¨Än2òQBÆ7\Q³e¡é†+]XÞ`äC™`’à‰‘áažp\50ðá (M„ýO|8Ê!AJž“ó“¾ >ÊÌO*ƒø(e~ràC   `æ   åA!Pòà   å@øp}F™$”ääÀGIÏŸQ³1ð‘F57êŸî|’>ÙCºWj])¾=>¹Ÿ|7>Û=ýä|<¾ËûãäÿÝÚ~endstream
endobj
26 0 obj
3409
endobj
29 0 obj
<</Length 30 0 R/Filter /FlateDecode>>
stream
xœ½ïoÛÆÇa[¶+E°›6–[Š]ÛR3ää5ÝV {ÓÍïʽêÖÅ*~³w÷å£ïxTÝ|&Ùü|yŸŽNúu–&›¥ú¿æ‹Ÿ>ŽªÙÿFlöa”Í~¥³¿ŽŠ*åy•HÆfÍV!
½9ûïèê;þ3úuT%\ÿ2»p¿þéãìÏw£w/gY–¤ùìîgõÙìVýV»)’’ÍOª2-fwGóµõµÁæÖöÃaýiíÅæÆ`mk
Also nur mal ein kleiner Ausschnitt, aber so sieht das aus... Und es sagt mir nicht viel :D

Also so wie ihr mir das jetzt erzählt scheint PDF ziemlich bescheiden zu sein. Da ich natürlich auch den Reader installiert habe, würde es mich interessieren, ob es soetwas wie OLE für PDF gibt, wie es auch für Office und Excel existiert.

MeierZwoo 9. Mai 2013 22:46

AW: Text in PDF Tabelle suchen
 
Zitat:

Zitat von ByTheTime (Beitrag 1214881)
Also so wie ihr mir das jetzt erzählt scheint PDF ziemlich bescheiden zu sein.

Im Gegenteil, PDF ist ein PostScript-Dialekt und sehr mächtig. Wenn es »bescheiden« wäre, wäre es kein Problem, deinen gewünschten Text auszulesen. Und mit den aktuellen Erweiterungen für Formulare ist es noch mächtiger geworden. Aber PDF ist keine db mit geordneten bzw. indizierten Datensätzen, wie Du es gerne hättest.

Nur, nochmal: In der Datei müssen die Ausgaben nicht geordnet vorliegen. Es ist einem Drucker oder Bildschirm ziemlich egal, in welcher Reihenfolge er Ausgabeelemente bekommt, wenn diese alle mit Koordinaten versehen sind. Ob zuerst unten, dann oben links, dann in der Mitte rechts ... ausgegeben wird, ist dem Endausgabegerät ziemlich wurscht. Deshalb braucht das PDF-erzeugende Tool auch keine Rücksicht auf solche »Ordnung« zu nehmen.

Wenn Du die PDF nicht komplett interpretierst, kommst du nicht an einzelne Elemente heran. Für das Interpretieren gibt es bestimmt fertige Units im Web. Allerdings fängt danach deine Arbeit erst richtig an - und wehe, der Aufbau, das Layout der PDF wird geändert *g

ByTheTime 10. Mai 2013 09:24

AW: Text in PDF Tabelle suchen
 
Ja gut, dann such ich mal weiter :) Hoffe ich finde irgendwas :D

p80286 10. Mai 2013 09:49

AW: Text in PDF Tabelle suchen
 
[QUOTE=ByTheTime;1214881]
Code:
   å@øp}F™$”ääÀGIÏŸQ³1ð‘F57êŸî|’>ÙCºWj])¾=>¹Ÿ|7>Û=ýä|<¾ËûãäÿÝÚ~endstream
endobj
26 0 obj
3409
endobj
29 0 obj
<</Length 30 0 R/Filter /FlateDecode>>
stream
xœ½ïoÛÆÇa[¶+E°›6–[Š]ÛR3ää5ÝV {ÓÍïʽêÖÅ*~³w÷å£ïxTÝ|&Ùü|yŸŽNúu–
Da hast Du doch Deinen Einstieg
mit obj fängt ein neues Objekt an und mit endobj endet es. Jetzt mußt Du nur noch die Doku des Dateiformates zu Rate ziehen und Du weißt was darin steht.
http://www.adobe.com/devnet/pdf/pdf_reference.html
ebenso könntest Du ja auch die Wikipedia fragen

Zitat:

Zitat von ByTheTime (Beitrag 1214881)
Also nur mal ein kleiner Ausschnitt, aber so sieht das aus... Und es sagt mir nicht viel :D

Ein Hex-Dump wäre u U etwas aussagekräftiger.

Zitat:

Zitat von ByTheTime (Beitrag 1214881)
Also so wie ihr mir das jetzt erzählt scheint PDF ziemlich bescheiden zu sein.

Nur weil hier der eine oder andere auch gerne über Adobe schimpft, heißt das noch lange nicht, daß die Grundidee, die dahinter steckt, "bescheiden" ist.

Zitat:

Zitat von ByTheTime (Beitrag 1214881)
Da ich natürlich auch den Reader installiert habe, würde es mich interessieren, ob es soetwas wie OLE für PDF gibt, wie es auch für Office und Excel existiert.

Da hilft Dir die Suchfunktion weiter.

@MeyerZwo :thumb:

Gruß
K-H

sx2008 10. Mai 2013 10:45

AW: Text in PDF Tabelle suchen
 
Also ohne richtiges Werkzeug wird das nichts.
Mal eben so mit Delphi in ein PDF reinzufassen und Daten zu entnehmen ist nicht so einfach.

Ein "g'scheites" Werkzeug wäre z.B. PDFMiner.
Mit dem Kommandozeilenscript pdf2txt.py kann man Text aus dem PDF extrahieren.
Dafür benötigt man Python und natürlich auch etwas Einarbeitungszeit.
Mit der Online-Demo kann man prüfen, was man aus dem PDF als Text zu erwarten hat.

Danach kann man den extrahierten Text oder XML mit einem Delphi Programm parsen und die gewünschten Infos rausziehen.
Den Gesamtaufwand würde ich auf 2 Wochen schätzen.

nahpets 10. Mai 2013 11:05

AW: Text in PDF Tabelle suchen
 
Hallo,

es gibt da ein Freewaretool pdftotext, mit dem aus PDF-Dateien Textdateien gemacht werden können. Dieses Programm könntest Du aus Delphi heraus per ShellExecute... aufrufen, um die von Dir heruntergeladene PDF-Datei zuerst einmal in eine Textdatei zu verwandeln. Aus dieser Textdatei kannst Du Dir dann per Delphiprogramm und Stringliste... die gewünschten Informationen suchen.

Der Aufruf des Programmes auf der Kommandozeile könnte so aussehen:

pdftotext -layout DiePDFDateiDerSchule.pdf DeineTextDatei.txt

Da dürften ein paar Stündchen für das komplette Parsen und Auswerten ausreichen.

Bitte Vorsicht bei der Suche nach pdftotext, es scheint da einige Stellen zu geben, an denen man dann direkt Viren und/oder Trojaner und Spyware geliefert bekommt.

Meine Version stammt von heute Morgen von dieser Seite: http://www.foolabs.com/xpdf/download.html

Der Download war allerdings sehr langsam. ftp://ftp.foolabs.com/pub/xpdf/xpdfbin-win-3.03.zip


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 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