Forum: PC-Programmierung Tabelle aus einem PDF Dokument extrahieren


von Kolja L. (kolja82)


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)


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:

Lesenswert?

Ich hab sie mal angehängt, aber wie gesagt, zu viele Spalten...

von Huh (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch der Rohtext. Vielleicht nützt es was...

von c.m. (Gast)


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:

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:

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:

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)


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)


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)


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)


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)


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)


Lesenswert?

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

von Huh (Gast)


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)


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)


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)


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)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.