Forum: PC-Programmierung Tabelle aus einem PDF Dokument extrahieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Kolja L. (kolja82)


Bewertung
0 lesenswert
nicht lesenswert
Hallo

Eigentlich ist es ja kein Problem in einem PDF Dokument
eine Tabelle zu markieren
und den Inhalt in OpenOffice in die Spalten sortieren lasse.

Hier klappt es leider nicht,
da nach jedem Wert ein Zeilenumbruch entsteht:

https://www.oventrop.com//de/products/hbtd/db_1061704_de.pdf
Tabelle auf Seite 7

Kennt da jemand einen Zaubertrick?

von Huh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip konnte ich die Tabelle im OO einlesen.
Text in Spalten, getrennt mit Leerzeichen.

Jetzt kommt das ABER:
Häufig sind zu viele Leerzeichen drin. Z.B. die "11111" wird als "1 1 1 
1 1" erkannt und die Einsen landen deshalb in verschiedenen Spalten. Bei 
anderen Zahlen genauso. Mit manuellem Editieren kriegt man das hin. Da 
kannst du aber auch gleich abtippen...

von Huh (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab sie mal angehängt, aber wie gesagt, zu viele Spalten...

von Huh (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch der Rohtext. Vielleicht nützt es was...

von c.m. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
zur erklärung warum das nicht immer geht…

in einem PDF sind daten nicht gespeichert wie in einem textdokument, so 
von links nach rechts und von oben nach unten.
stattdessen gibt es eine objektliste, und positionierungsdaten "auf 
seite 0 an pos 100/434".
diese objekte können strings sein, teilstrings, pdf-tabellenzellen…
ein fürs auge "da stehender" string kann in wirklichkeit eine menge an 
teilstrings sein die einfach "hintereinander" in einer pdf-tabellenzelle 
plaziert sind.
so kann aus "123" beim einfügen in OO "1" "2" "3" werden.

fazit: pdf ist schön zum anschauen, aber nicht umbedingt (je nach 
generator) zum weiterverarbeiten.

von Huh (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
c.m. schrieb:
> so kann aus "123" beim einfügen in OO "1" "2" "3" werden.

Das war ein guter Tipp. Ich hab mal einen anderen PDF-Reader versucht. 
Dann in OO importiert und anschließend "Text in Spalten" angewendet.
Sieht schon besser aus :-)

von Huh (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ein klein wenig formatiert. Auf den ersten Blick scheint alles okay zu 
sein. Aber kontrolliere es bitte selbst nochmal.
Viel Spaß...

von cd ~ (Gast)


Angehängte Dateien:
  • 07.txt (6,13 KB, 79 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Erstmal drucken, als PDF :)
(huest, wg. "error" Error (512564): Unknown filter 'Crypt')


$pdftk printed.pdf burst
$pdftotext  -layout  -eol unix  -nopgbrk   pg_0007.pdf 07.txt

Obs stimmt habe ich jetzt nicht gprueft, sieht aber nicht schlecht aus.

von W.A. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
c.m. schrieb:
> in einem PDF sind daten nicht gespeichert wie in einem textdokument, so
> von links nach rechts und von oben nach unten.

Das sollte doch die Exportfunktion, die die Tabelle z.B. in die 
Zwischenablage befördert, klären. Wenn ein Textprogramm die Daten aus 
der Zwischenablage bekommt, erwarte ich als Benutzer, dass Textstück, 
die im PDF in einer Zeile stehen, im Textprogramm auch wieder als Zeile 
auftauchen. Was interessiert da die interne Struktur?

Da hat ADOBE noch einige Baustellen offen.

Genauso ist es schlimm genug, dass bei vielen PDF-Dokumenten die 
Suchfunktion nicht funktioniert. Wenn ich im PDF ein (markierbares) Wort 
lese, erwarte ich auch, dass die Suchfunktion des PDF-Readers die auch 
findet - ohne Rücksicht darauf, wie das PDF-Dokument intern strukturiert 
ist.

von cd ~ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Huh schrieb:
> Jetzt kommt das ABER:
> Häufig sind zu viele Leerzeichen drin. Z.B. die "11111" wird als "1 1 1
> 1 1" erkannt und die Einsen landen deshalb in verschiedenen Spalten. Bei
> anderen Zahlen genauso. Mit manuellem Editieren kriegt man das hin. Da
> kannst du aber auch gleich abtippen...

Kann der doch von alleine, "Merge Delimiters" auswaehlen.

von Huh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
cd ~ schrieb:
> Huh schrieb:
>> Jetzt kommt das ABER:
>> Häufig sind zu viele Leerzeichen drin. Z.B. die "11111" wird als "1 1 1
>> 1 1" erkannt und die Einsen landen deshalb in verschiedenen Spalten. Bei
>> anderen Zahlen genauso. Mit manuellem Editieren kriegt man das hin. Da
>> kannst du aber auch gleich abtippen...
>
> Kann der doch von alleine, "Merge Delimiters" auswaehlen.

Nein, kann er eben nicht. Das habe ich auch versucht.
Wenn "1 1 1 1" (ohne die Anführungszeichen) im Rohtext steht, wie soll 
er dann wissen, ob das Trenner zwischen den Spalten sind oder oder 
nicht?
Wie soll er wissen, daß es keine aufeinanderfolgenden Spalten sind, 
sondern eine zusammenhängende Zahl (mehrere Ziffern)?

Aber ich hab's ja schon lange geschafft:
Beitrag "Re: Tabelle aus einem PDF Dokument extrahieren"

von OCR (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Und wenn es ganz schlimm kommt benutzt doch OCR, die schert sich nicht 
drum wie das im PDF gespeichert ist. Muss ich immer dann benutzen wenn 
so ein Scherzkeks beim Erstellen Copy&Paste verboten hat und 
funktioniert einwandfrei...

von Huh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
OCR schrieb:
> Und wenn es ganz schlimm kommt benutzt doch OCR, die schert sich
> nicht
> drum wie das im PDF gespeichert ist. Muss ich immer dann benutzen wenn
> so ein Scherzkeks beim Erstellen Copy&Paste verboten hat und
> funktioniert einwandfrei...

Ja, das ist auch eine Möglichkeit.
Was hast du für eine OCR-Software, wenn ich mal fragen darf?

von OCR (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Abbyy Finereader, schon ein paar Jahre alt. V9 glaub ich war es. Benutze 
das nur auf Arbeit...

von Huh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
OCR schrieb:
> Abbyy Finereader, schon ein paar Jahre alt. V9 glaub ich war es.
> Benutze das nur auf Arbeit...

Danke, schau ich mir mal an. Dafür, daß ich sowas nur sehr selten 
brauche, war mir die Software immer zu teuer. Und kostenlose OCR, die 
auch was taugt, habe ich noch nicht gefunden...

von cd ~ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Huh schrieb:
> Wenn "1 1 1 1" (ohne die Anführungszeichen) im Rohtext steht, wie soll
> er dann wissen, ob das Trenner zwischen den Spalten sind oder oder
> nicht?

Seperator muss ja kein einzelnes Zeichen sein eg. ein "[space][space]"

"1[space]1[space]1[space]1"[space][space][space]"1"

daraus werden dann zwei Zellen, dann sollte das doch blos noch eine 
Sache des Zellformates sein.

von Huh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
cd ~ schrieb:
> daraus werden dann zwei Zellen

Alle Ziffern sollen aber in eine Zelle (als mehrstellige Zahl).
Andere Trenner bestehen teilweise auch aus einem Leerzeichen.
Wie soll er erkennen, ob das fälschlich eingefügte Leerzeichen 
(innerhalb einer Zahl) sind oder ob es sich tatsächlich um den 
Spaltentrenner handelt?

Schau dir mal den Rohtext an:
Beitrag "Re: Tabelle aus einem PDF Dokument extrahieren"

von Kolja L. (kolja82)


Bewertung
0 lesenswert
nicht lesenswert
Moin

Danke für die ganze Unterstützung :-)

Das komische ist jedoch, wenn ich die formatierte Tabelle jetzt als csv 
exportiere,
fehlen ab und zu die Anführungszeichen um die Werte.

Das ist doch eine krux...

von Huh (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kolja L. schrieb:
> Moin
>
> Danke für die ganze Unterstützung :-)
Kein Problem :-)
>
> Das komische ist jedoch, wenn ich die formatierte Tabelle jetzt als csv
> exportiere,
> fehlen ab und zu die Anführungszeichen um die Werte.
>
> Das ist doch eine krux...
Markiere die Zellen und formatiere sie entweder als "Text" oder als 
"Zahl".
Anschließend neu exportieren und - voilá.

Das liegt daran, daß einige Zellen als "Text" erkannt wurden und andere 
als "Zahl". Kommt jetzt darauf an, was du damit machen willst. Wenn du 
einfach nur ausdrucken willst, ist es egal. Wenn du aber mit den Werten 
in den Zellen weiterrechnen willst, nützt dir "Text" nichts, da mußt du 
sie als "Zahlen" formatieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.