Donnerstag, 31. März 2011

Unlesbarer Zeichensalat aus PDFs beim Kopieren

Immer mal wieder bekommt man ein PDF, aus dem man zwar grundsätzlich Text kopieren kann, allerdings erhält man beim Einfügen des kopierten Textes nur ein unlesbares Wirrwarr aus Zeichen und Symbolen (garbled text, gibberish). Das sieht dann gerne so aus:
0/+$!6/9! -#/-! &,$4/-5'8! 090-$+! 1$2$)&,$40! .*5)1!1$25%$! 1452$40!
/'1! &-#$4! 090-$+! 0&(-6/4$! %&+,&'$'-0! *0$1! .9! /,,) [Beispieldatei für Experimente]
Für dieses Phänomen kann es verschiedene Ursachen geben. Meist liegt es daran, dass:
  • entweder das PDF kaputt oder zumindest teilweise beschädigt ist oder
  • es fehlt etwas, z.B. eingebettete Schriften
  • bzw. der Text ist falsch oder inkompatibel kodiert (hier noch etwas mehr Informationen)
Um den Text doch noch aus einem solchen PDF zu bekommen, gibt es natürlich wiederum eine Reihe von Ansätzen, die unterschiedlich schwierig, zeitaufwendig und v.a. auch unterschiedlich erfolgreich sind. Man kann:
  • einen anderen PDF-Betrachter versuchen (bringt fast nie etwas – auch nicht auf einem anderen System)
  • man kann versuchen das PDF als Text aus dem Viewer zu speichern (klappt i.d.R. genauso wenig)
  • oder das PDF bei einem Online-Datei-Konverterdienst, wie Zamzar, Media-Converter, etc. (auch damit hatte i.d.R. wenig Erfolg)
  • man versucht das PDF mit OpenOffice mit der PDF-Import-Erweiterung zu laden (bei mir hat's nicht wirklich geklappt)
  • das PDF mit einem Tool wie pdftotext selbst in Text konvertieren [2] (wird wärmer, aber klappt auch oft nicht)
  • Einen generischen Druckertreiber verwenden, der statt einem Ausdruck eine Textdatei erstellt (schon deutlich wärmer, klappt aber auch längst nicht immer [1]))
  • das PDF erneut durch den Adobe Distiller jagen und Schriften neu einbetten lassen (das ist ein wirklich guter, erfolgversprechender Weg, aber: man braucht Adobe Pro, etwas Know-how und ggf. die betreffenden Schriften/Kodierungen...)
  • und letztlich, wenn gar nichts geht: das PDF in Bilder umwandeln / drucken und per OCR neu einlesen (klappt eigentlich immer, nur kann die Qualität des Ergebnis stark variieren. Je nach Software und Korrekturbedarf braucht man teilweise auch einiges an Zeit. [3])
  • am Einfachsten geht die Texterkennung mit Google Docs, man braucht einzig ein kostenloses Googlekonto und kann das betreffende PDF, auch ohne es zu Drucken / in Bilder umzuwanden, hochladen und in Text konvertieren lassen!

    Google DocsUploadOCR
Insgesamtwürde ich den letzten Lösungsansatz als den besten bezeichnen, der auch von jedermann durchzuführen ist. Eine eigene (teuere) OCR-Software ist Dank Google Docs nämlich nicht mehr nötig.
Wem noch weitere Tipps einfallen: Immer her damit. Und Lob kann auch nicht schaden. :)
Fußnoten:
[1] Anders als bei Windows, ist es am Mac m.M. recht schwer, einen Text-only Datei-Drucker einzurichten (Beschreibung für die Einrichtung eines Generic Text Printers unter XP hier - Als Hersteller muss in einem deutschen XP allerdings statt "Generic" nach "Standard" suchen.) Eine rudimentäre Anleitung für den Mac, die sich eher an Computerspezialisten richtet, habe ich hier gefunden. Diese Methode mit dem Geniric Text Printer lässt sich auch verwenden, um verschlüsselte PDFs zu drucken. Am Mac bietet sich aber als bessere Alternative die von mir beschriebene Lösung mit mupdf an.
[2] Am Mac kann man Text auch per Automator-Workflow aus PDFs extrahieren. Für unser Problem hilft dies zwar in der Regel auch nicht weiter, die Methode kann aber für verschiedene Aufgaben ab und an sehr praktisch sein.
[3] Wer selbst eine Leistungsfähige Texterkennungssoftware hat und damit bessere Ergebnisse erzielt, braucht natürlich nicht unbedingt Google Docs verwenden.
Da der Teufel bekanntlich im Detail steckt, noch einige Worte zum Schritt vor der eigentlichen Texterkennung per OCR-Software, dem Umwandeln eines PDFs in Bilder:
Es gibt mehr als genug Möglichkeiten eine PDF-Seite in ein Bild umzuwandeln. Wenn es aber um mehr als ein Bild geht, sollte man mit einer Stapelverarbeitung arbeiten.
Hier kann der Automator weiterhelfen. Eine Beschreibung des nötigen Workflows findet sich hier.
Wem damit nichts anfangen kann, der kann auch mit PDF2Image oder ImagesFromPdf, die im Prinzip auch nichts anderes machen:
Darauf folgt der lästige Schritt: Man muss die Bilder mit einem OCR-Programm seiner Wahl erkennen und korrigieren.
Wie gut das Ergebnis dann schließlich ist, hängt dann natürlich auch von der verwendeten Software ab.
Wer keine OCR-Software hat, und nur einzelne Bilder umwandeln möchte, dem kann ich noch newocr.com empfehlen.

Kommentare :

  1. Total genial. Habe bis gerade eben (2 Uhr morgens)versucht das Problem der Konvertierung zu lösen. Letztendes hat wirklich nur google docs geholfen. Würde Dich am liebsten umarmen, aber ich denke ich gehe doch mal lieber schlafen:-)

    AntwortenLöschen
  2. Funktioniert leider nicht mehr, zu mindestens finde ich nicht diese schönen Einstellmöglichkeiten wie auf dem Bild zu sehen sind. Bei mir lädt er die PDF einfach hoch und ich bekomme beim kopieren den gleichen schmock raus wie auf dem PC, es macht den Anschein das der Ersteller der PDF mit einem MAC gearbeitet hat, bei Windows kommen nur diese kleinen Rechtecke für jeden Buchstaben...

    AntwortenLöschen
  3. Schau mal in Google Drive! Upload in Google Drive => Datei dann dort öffnen mit Google Docs => Datei speichern als (.txt, ...).

    AntwortenLöschen