Hallo LUG,
wo das Thema gerade durch die Liste geistert ... Ich ärgere mich seit geraumer Zeit mit der Extraktion des Text-Inhaltes von PDF-Dateien herum. Mit vielen PDF-Dateien, die man so in freier Wildbahn antrifft geht daß eigentlich relativ gut. Nur mit LaTeX-generierte PDF-Dateien sind regelmäßig sehr problematisch. Es gibt da welche, wo garnichts mehr herauszuholen ist (nur Schrott) und welche, die "nur" Probleme bei bestimmten Zeichen machen.
Konkret geht es um deutsche Umlaute (dasselbe trifft aber auch für die diversen anderen Sonderzeichen der europäischen Sprachen zu). Meine tex-Datei benutzt \usepackage[latin1]{inputenc} und ich gebe die Umlaute normal per Tastatur ein. Nach dem Erstellen der PDF-Datei mit pdftex liefert ein pdftotext (Teil von xpdf), oder Kopieren im Acrobat Reader nur noch Zeichensalat.
Ich hatte gehofft, daß sich das mit den 1.xx Versionen von pdftex gibt, aber es ist immer noch so. Es ist mir ja eigentlich auch egal, wie Tex intern mit den ganzen Zeichen umgeht, solange nur die Tabellen für die Rückkonvertierung der Zeichen in der PDF-Datei wieder richtig sind, so daß dort der Text mit Umlauten auch wieder herauskommt.
So ist z.B. eine Suche mit glimpse über einen Haufen von PDF-Dateien für Worte, die etwas mehr als 7bit-ASCII enthalten ziemlich sinnlos. Das nervt mich. Besonders weil jedes mit Word/Acrobat erstellte Dokument das ohne Probleme kann.
Freundlich Grüßend und auf den entscheidenden Hinweis hoffend,
Jens
Once upon a time, I heard Jens Lorenz say:
Nur mit LaTeX-generierte PDF-Dateien sind regelmäßig sehr problematisch.
Kann ich nicht nachvollziehen, weil geht bei mir ganz ordentlich, sowohl mit pdflatex, als auch mit dvipdf. Kannst Du mal ein Minimal-Beispiel schicken, bei dem es bei Dir nicht geht.
hej så länge.
PS: Ich habe aber auch das pdftotext 2.0 aus der unstable.
Stefan Berthold wrote:
Once upon a time, I heard Jens Lorenz say:
Nur mit LaTeX-generierte PDF-Dateien sind regelmäßig sehr problematisch.
Kann ich nicht nachvollziehen, weil geht bei mir ganz ordentlich, sowohl mit pdflatex, als auch mit dvipdf. Kannst Du mal ein Minimal-Beispiel schicken, bei dem es bei Dir nicht geht.
Hängt an der Mail. Das ist mit pdftex 0.13 und pdftotext 0.92 gemacht.
Sicher, ich kann jetzt mit sed durchgehen und alle "a durch ä ersetzen usw., aber wer sagt mir, daß das nicht gerade richtige Anführungszeichen sind. Außerdem muß ich ja dazu Wissen, daß LaTeX zur Erzeugung des PDF eingesetzt wurde. Das ist bei dvipdf unmöglich.
hej så länge.
PS: Ich habe aber auch das pdftotext 2.0 aus der unstable.
Das bringt bei mir bloß anderen Unsinn. Manchmal werden auch einfach die Leerzeichen zwischen den Worten vergessen. (was sich für Volltextsuche fatal ist)
Jens
Once upon a time, I heard Jens Lorenz say:
pdftex 0.13 und pdftotext 0.92
This is pdfTeXk, Version 3.14159-1.10a-devel (Web2C 7.3.9) pdftotext version 2.00
Mit Deinem Beispiel bringt es bei mir auch Mist. Ich hatte vorhin nur die Datei probiert, die ich gerade sowieso bearbeite und da gings. Ich habe es mal auf ein paar Header eingekreist. Damit funktioniert es zumindest bei mir, was Dir aber nicht viel bringen sollte, wenn Du fremde PDFs mit ohne Quellcode hast.
Mein LaTeX-File liegt gerade auf http://www.inf.tu-dresden.de/~s0317793/sample.tex rum...
hej så länge.
Stefan Berthold wrote:
Once upon a time, I heard Jens Lorenz say:
pdftex 0.13 und pdftotext 0.92
This is pdfTeXk, Version 3.14159-1.10a-devel (Web2C 7.3.9) pdftotext version 2.00
Mit Deinem Beispiel bringt es bei mir auch Mist. Ich hatte vorhin nur die Datei probiert, die ich gerade sowieso bearbeite und da gings. Ich habe es mal auf ein paar Header eingekreist. Damit funktioniert es zumindest bei mir, was Dir aber nicht viel bringen sollte, wenn Du fremde PDFs mit ohne Quellcode hast.
Mein LaTeX-File liegt gerade auf http://www.inf.tu-dresden.de/~s0317793/sample.tex rum...
Hab's gerade mal getestet. Das funktioniert sogar mit meiner älteren Software einwandfrei, sowie ich t1enc mit einziehe. Danke!
Ich habe mal kurz gegoogelt: "t1enc schaltet auf 8bit-Zeichensatz um. Bei t1enc kann TeX auch deutsche Umlaute korrekt trennen."
... wenn ich jetzt noch wüsste, wie ich den schon vorhandenen Mist möglichst einfach wieder zu Text mache ...
hej så länge.
Freundlich Dankend,
Jens
On Sat, 23 Nov 2002 18:11:37 +0100 Jens Lorenz Lorej@gmx.de wrote:
Ich habe mal kurz gegoogelt: "t1enc schaltet auf 8bit-Zeichensatz um. Bei t1enc kann TeX auch deutsche Umlaute korrekt trennen."
Wenn Du Latex ohne T1-Kodierung verwendest (also mit OT1), werden Buchstaben mit Aktzenten (also auch die Umlaute) aus 7bit-Buchstaben und dem Aktzent zusammengesetzt. Das ist so natürlich für andere Programme nur mit Zusatzwissen extrahierbar und sollte somit i. a. nicht funktionieren. Das mit der Trennung ist auch auf die Zusammensetzung der Buchstaben zurückzuführen (AFAIR).
... wenn ich jetzt noch wüsste, wie ich den schon vorhandenen Mist möglichst einfach wieder zu Text mache ...
Ich schätze mit viel Handarbeit... IMO sollte es auch egal sein, aus welchem Format heraus Du eine automatische Umwandlung versuchst. Ein durch TeX zusammengesetzter Buchstabe ist in DVI, PS und PDF ein zusammengesetzer Buchstabe (und nicht die 8bit Variante). Außer natürlich es gibt irgendwo ein Progrämmchen, das genau diese Problematik betrachtet.
Carsten
Carsten Schurig wrote:
Hallo Carsten,
Ich habe mal kurz gegoogelt: "t1enc schaltet auf 8bit-Zeichensatz um. Bei t1enc kann TeX auch deutsche Umlaute korrekt trennen."
Wenn Du Latex ohne T1-Kodierung verwendest (also mit OT1), werden Buchstaben mit Aktzenten (also auch die Umlaute) aus 7bit-Buchstaben und dem Aktzent zusammengesetzt. Das ist so natürlich für andere Programme nur mit Zusatzwissen extrahierbar und sollte somit i. a. nicht funktionieren. Das mit der Trennung ist auch auf die Zusammensetzung der Buchstaben zurückzuführen (AFAIR).
Danke für die Erklärung. Da habe ich wenigstens schonmal einen Ansatz.
... wenn ich jetzt noch wüsste, wie ich den schon vorhandenen Mist möglichst einfach wieder zu Text mache ...
Ich schätze mit viel Handarbeit... IMO sollte es auch egal sein, aus welchem Format heraus Du eine automatische Umwandlung versuchst. Ein durch TeX zusammengesetzter Buchstabe ist in DVI, PS und PDF ein zusammengesetzer Buchstabe (und nicht die 8bit Variante). Außer natürlich es gibt irgendwo ein Progrämmchen, das genau diese Problematik betrachtet.
$> catdvi textest.dvi abcde?a?u?o??e`e??`??a "abc"
... du hast offensichtlich recht ...
$> dvips textest.ps $> ps2ascii textest.ps
abcde"a"u"oss'e`e'i`i'a"abc"
... Hm. Es scheint also so, als wenn ich in pdftotext reinschauen müsste und zusätzlich zum Code der Glyphen auch noch bestimmen müsste, welche aufeinanderfolgenden übereinander liegen, und damit dann in eine zusätzliche Konvertierungstabelle greifen. Nicht schön aber wenigstens ein möglicher Weg.
Falls es einen noch näher interessiert: Unter folgender URL gibt's ein typisches Beispiel für einen Vertreter von wissenschaftlichen Artikeln, die mit LaTeX erstellt wurden:
http://www-ai.informatik.uni-dortmund.de/DOKUMENTE/joachims_98a.pdf
Weder pdftotext v1.01 noch pdftotext v2.00 liefern sinnvolle Ergebnisse. Auch ist z.B. in keinem Fall das Wort "difficult" zu extrahieren. Es ist ja schön, wenn das Doppel-F für ein schönes Schriftbild besonders gesetzt wird (Ligatur ?), aber warum dann beim Text-Extrahieren kein Doppel-F mehr draus werden soll, kann ich nicht so recht verstehen.
Carsten
Danke,
Jens
Once upon a time, I heard Jens Lorenz say:
http://www-ai.informatik.uni-dortmund.de/DOKUMENTE/joachims_98a.pdf Weder pdftotext v1.01 noch pdftotext v2.00 liefern sinnvolle Ergebnisse.
Ich habe die Datei im Acrobat Reader 4 unter Linux geöffnet, in eine Datei gedruckt (da kommt aus historischen Gründen immer PostScript raus) und die dann mit ps2ascii (also dem ersten Tool, was ich gesehen habe) nach plain/text gewandelt. Ein grep nach difficult über diese Datei liefert ein positives Ergebnis:
dingx@fyr:/tmp$ ps2ascii test.ps | grep difficult | wc -l 1
Konstruierte Umlaute werden davon aber nicht richtig gewandelt.
Es ist ja schön, wenn das Doppel-F für ein schönes Schriftbild besonders gesetzt wird
Finde ich auch, ein großer Vorteil von LaTeX gegenüber Word und anderen Vertretern der WYWSIWYH(WhatYouWillSeeIsWhatYouHate)-Sparte.
hej så länge.
Stefan Berthold wrote:
Ich habe die Datei im Acrobat Reader 4 unter Linux geöffnet, in eine Datei gedruckt (da kommt aus historischen Gründen immer PostScript raus) und die dann mit ps2ascii (also dem ersten Tool, was ich gesehen habe) nach plain/text gewandelt. Ein grep nach difficult über diese Datei liefert ein positives Ergebnis:
Das geht sogar aus der Shell heraus. Der Acrobat- Reader hat unter Unix auch Kommandozeilenoptionen, die man nach Ausfuehren der folgenden beiden Zeilen auch in einer PDF-Datei anschauen kann:
acroread --helpall | a2ps -1 -o acroread.ps ps2pdf acroread.ps
Jedenfalls kann man mit Hilfe des Acrobat-Readers auch aus Shellscripten heraus PDF in PS umwandeln.
Stefan
.
Stefan Berthold wrote:
Once upon a time, I heard Jens Lorenz say:
http://www-ai.informatik.uni-dortmund.de/DOKUMENTE/joachims_98a.pdf Weder pdftotext v1.01 noch pdftotext v2.00 liefern sinnvolle Ergebnisse.
Ich habe die Datei im Acrobat Reader 4 unter Linux geöffnet, in eine Datei gedruckt (da kommt aus historischen Gründen immer PostScript raus) und die dann mit ps2ascii (also dem ersten Tool, was ich gesehen habe) nach plain/text gewandelt. Ein grep nach difficult über diese Datei liefert ein positives Ergebnis:
dingx@fyr:/tmp$ ps2ascii test.ps | grep difficult | wc -l 1
Das geht sogar direkt, weil ps2ascii Teil von ghostscript ist.
$> ps2ascii joachims_98a.pdf | grep difficult | wc -l 1
gut.
Konstruierte Umlaute werden davon aber nicht richtig gewandelt.
Ich sehe schon, es wird wohl nichts anderes übrig bleiben, als mit Hilfe von Statistiken über den Text herauszufinden, welche der x-Methoden denn nun am besten wirkt, oder ich packe alles in pdftotext hinein (was ich wahrscheinlich eh nicht schaffe).
Jens
Jens Lorenz wrote:
Hallo LUG,
Falls es einen noch näher interessiert: Unter folgender URL gibt's ein typisches Beispiel für einen Vertreter von wissenschaftlichen Artikeln, die mit LaTeX erstellt wurden:
http://www-ai.informatik.uni-dortmund.de/DOKUMENTE/joachims_98a.pdf
Wer das schlimmste sehen will, was einem bei sowas passieren kann, kann ja einfach mal diese pdf-Datei mit ghostscript wieder in PDF umwandeln.
$> ps2pdf joachims_98a.pdf test.pdf $> ps2ascii test.pdf
\Gamma \Theta \Delta \Xi \Lambda ...
Danach hilft auch acroread nicht mehr. In habe auch schon solche PDF-Dateien von irgendwo heruntergeladen.
Jens
Jens Lorenz wrote:
Wer das schlimmste sehen will, was einem bei sowas passieren kann, kann ja einfach mal diese pdf-Datei mit ghostscript wieder in PDF umwandeln.
Aber PDF wurde nicht als Format zur Verteilung von Quelltexten oder ASCII-Textauszuegen erfunden; manche Autoren wollen vielleicht gar nicht, dass da jemand ihre Dokumente einfach wieder in Text umwandeln kann. In den LaTeX-Newsgroups kommt regelmaessig die Frage, ob man aus PDF wieder einen LaTeX-Quelltext machen kann und die uebliche Antwort ist dann: kannst Du ein Glas Apfelmus in Aepfel zurueckverwandeln?
Stefan
.
Stefan Lagotzki wrote:
Jens Lorenz wrote:
Wer das schlimmste sehen will, was einem bei sowas passieren kann, kann ja einfach mal diese pdf-Datei mit ghostscript wieder in PDF umwandeln.
Aber PDF wurde nicht als Format zur Verteilung von Quelltexten oder ASCII-Textauszuegen erfunden;
Das ist mir bewußt. Aber immerhin werden eine ganze Reihe von Informationen inzwischen als PDF durch die Gegend geschickt. Auch hat der Acrobat Reader eine Option zum Durchsuchen von der aktuellen PDF-Datei und Anlegen von Indizes zum Suchen in einem ganzen Haufen von PDF-Dateien, wie auch zur Extraktion der Textinformationen.
Ich will ja auch garnicht an Quelltexte oder ASCII-Textauszüge, sondern ich wurde gerne sinnvoll in allen PDF-Dateien suchen können und das auch nach Worten mit Doppel-F und Umlauten.
manche Autoren wollen vielleicht gar nicht, dass da jemand ihre Dokumente einfach wieder in Text umwandeln kann.
Dafür gibt es eigentlich entsprechende Optionen im PDF. pdftotext extrahiert z.B. den Text nicht, wenn die entsprechende Option gesetzt ist. Solche Dateien sind für mich aber eh uninteressant.
In den LaTeX-Newsgroups kommt regelmaessig die Frage, ob man aus PDF wieder einen LaTeX-Quelltext machen kann und die uebliche Antwort ist dann: kannst Du ein Glas Apfelmus in Aepfel zurueckverwandeln?
Wie schon gesagt, ich will keinen LaTeX-Quelltext. Ich will den reinen Text in ein Suchmaschine füttern und Indizes aufzubauen.
Sicher nicht. Nur bei PDF ist dieser Weg explizit im Dateiformat vorgesehen (wie auch das verbieten dieses Weges). Insofern hinkt der Vergleich mit den Äpfeln und dem Apfelmuß etwas. Ich lasse mir es gerne gefallen, wenn du sagst, daß LaTeX nicht für das Erstellen von PDF gedacht war und deswegen mit LaTeX erzeugtes PDF so viele Probleme macht.
Stefan
Jens
Jens Lorenz wrote:
Sicher nicht. Nur bei PDF ist dieser Weg explizit im Dateiformat vorgesehen (wie auch das verbieten dieses Weges). Insofern hinkt der Vergleich mit den Äpfeln und dem Apfelmuß etwas. Ich lasse mir es gerne gefallen, wenn du sagst, daß LaTeX nicht für das Erstellen von PDF gedacht war und deswegen mit LaTeX erzeugtes PDF so viele Probleme macht.
Genau da liegt wohl das Problem. Es gibt einfach zu viele Wege, um aus LaTeX zu PDF zu kommen und nicht alle fuehren zu einem Dokument, wie Du es benoetigst. Die meisten Autoren meinen wohl, dass man das PDF ausdrucken soll. Zum Einschraenken der Benutzung von PDFs: Man kann zwar eine Option setzen, aber IMHO das Extrahieren nicht wirklich verbieten, weil die Verschluesselung auch geknackt werden kann. Es gaebe uebrigens auch noch die Moeglichkeit, den Text per OCR zu extrahieren.
Stefan
.
Am Sonntag, 24. November 2002 17:10 schrieb Stefan Lagotzki:
Es gaebe uebrigens auch noch die Moeglichkeit, den Text per OCR zu extrahieren.
Das Problem mit den Ligaturen bleibt dennoch erhalten. Mit "ff", "fi" oder dem großen I (iiihh..) und dem kleinen l (ell) treibt man jede arglose OCR-Software an den Rand des Möglichen. Zumindest hat gocr damit so seine Probleme. Erst die Verknüpfung mit einem Wörterbuch kann da Abhilfe schaffen. Spätestens bei Formeln oder Diagrammen dürfte dann das Ende der Fahnenstange erreicht sein.
Jens
am Sat, dem 23.11.2002, um 15:04:14 +0100 mailte Jens Lorenz folgendes:
Konkret geht es um deutsche Umlaute (dasselbe trifft aber auch für die diversen anderen Sonderzeichen der europäischen Sprachen zu). Meine tex-Datei benutzt \usepackage[latin1]{inputenc} und ich gebe die Umlaute normal per Tastatur ein. Nach dem Erstellen der PDF-Datei mit pdftex liefert ein pdftotext (Teil von xpdf), oder Kopieren im Acrobat Reader nur noch Zeichensalat.
Was spricht dagegen, den LaTeX-Quelltext zu verwenden?
Andreas, *frag ja nur*
Andreas Kretschmer wrote:
am Sat, dem 23.11.2002, um 15:04:14 +0100 mailte Jens Lorenz folgendes:
Konkret geht es um deutsche Umlaute (dasselbe trifft aber auch für die diversen anderen Sonderzeichen der europäischen Sprachen zu). Meine tex-Datei benutzt \usepackage[latin1]{inputenc} und ich gebe die Umlaute normal per Tastatur ein. Nach dem Erstellen der PDF-Datei mit pdftex liefert ein pdftotext (Teil von xpdf), oder Kopieren im Acrobat Reader nur noch Zeichensalat.
Was spricht dagegen, den LaTeX-Quelltext zu verwenden?
Andreas, *frag ja nur*
Das kann ich bei meinen eigenen Sachen machen, aber angenommen das Ziel ist ein Archiv von wissenschaftlichen Arbeiten, die ich so im Internet finde, wenn ich da jeden nach seinem Quelltext frage, dann wird das eine Menge unnötiger Arbeit (je nach größe sogar unmöglich)
Jens
lug-dd@mailman.schlittermann.de