Home / LinuxUser / 2009 / 12 / Scheibchenweise

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Scheibchenweise

Werkzeuge für PDF und Postscript (Teil 5)

Eingebettete Fonts

Viele Anwender vergessen, die verwendeten Fonts in ihr PDF-Dokument einzubetten. Öffnet man ein solches PDF-File auf einem anderen Computersystem, auf dem die verwendeten Fonts nicht vorliegen, so ersetzt der Viewer sie in der Darstellung durch eine mehr oder weniger passende Alternative. Dasselbe gilt für die Ausgabe auf Druckern, die die verwendeten Fonts nicht kennen.

Um zu prüfen, ob das PDF-File die Fonts enthält, liefert das Xpdf-Paket das Werkzeug pdffonts mit. Es ermittelt die verwendeten Schriftartdateien, deren Typ (Type 1, Truetype, CID) und deren Nutzung im Dokument.

Abbildung 4 zeigt, dass im vorliegenden PDF-File sechs verschiedene Type-1-Fonts zum Einsatz kommen, darunter Computer Modern Sans Serif 12pt (CMSS12) und Computer Modern Tele Type 8pt (CMTT8). Alle Fonts sind korrekt in das PDF eingebettet, wie das "yes" aus der Spalte "emb" bestätigt. Das "emb" steht hier als Abkürzung für "embedded" (deutsch: eingebunden, eingebettet).

Texte und Bilder extrahieren

Obwohl Postscript- und PDF-Dokumente primär für den Druck konzipiert wurden, finden sie zunehmend Eingang in Datenbanken und Archive. Automatische Verschlagwortung und Kategorisierung sind dabei aufgrund der Materialfülle unabdingbar geworden. Dateien, die vorwiegend aus eingebetteten Bilddaten und kaum Text bestehen, lassen sich meist nur manuell und mit erheblichem Aufwand klassifizieren. Auch in Sachen Barrierefreiheit erweisen sie sich als problematisch: Sie grenzen Sehbehinderte aus, da man den Inhalt nicht über die Kombination Screenreader [5] und Braille-Zeile auslesen kann. Es gibt keine Möglichkeit, in vertretbarer Zeit die Bilddaten angemessen zu interpretieren und in brauchbaren Text zu überführen.

Die Extraktion von Textbestandteilen gelingt für Postscript-Dokumente hingegen mit den Werkzeugen ps2ascii und pstotext aus dem Ghostscript-Paket ([6],[7]):

$ ps2ascii in.ps out.txt

Der erste Parameter bezeichnet die Postscript-Quelldatei. Aus Ihr extrahiert Ps2ascii den Text und schreibt ihn in das Ausgabefile, das der zweite Parameter benennt. Auch für PDF-Dokumente nutzen Sie Ps2ascii sowie darüber hinaus pdftotext aus dem Xpdf-Paket. Aufrufreihenfolge und Ergebnisse entsprechen jenen bei Ps2ascii:

$ ps2ascii in.pdf out.txt
$ pdftotext in.pdf out.txt

Die Qualität des extrahierten Textes variiert erheblich und hängt unter anderem von der Beschaffenheit der Ursprungsdatei ab. Fließtext bereitet kaum Probleme, Schwierigkeiten machen dagegen Worttrennungen, mehrspaltige Dokumente, von Text umflossene Bilder sowie Tabellen. Deren ursprüngliche Anordnung geht nahezu komplett verloren. Umlaute, Sonderzeichen und verwendete Encodings bereiten ebenso Kopfzerbrechen. Als Workaround akzeptiert Pdftotext eine Option -enc Encoding für die gewünschte Kodierung der Ausgabedatei. Sie wirkt allerdings nur sehr begrenzt.

Zum Extrahieren von Abbildungen und Bilddaten gibt es die Werkzeuge psrip[8] sowie pdfimages und pdftoppm (beide aus dem Xpdf-Paket). Das in Perl geschriebene Psrip benötigt als Parameter lediglich das Postscript-File:

$ psrip eingabe.ps
$ psrip -d bilder eingabe.ps

Die gefundenen Abbildungen speichert Psrip mit ihrem ursprünglichen Namen im aktuellen Verzeichnis. Über die Option -d Verzeichnis lässt sich auch ein Ordner zum Speichern angeben, im Listing oben ist es das Verzeichnis bilder. Das Ergebnis präsentiert Psrip wie in Abbildung 5.

Abbildung 5: Psrip präsentiert die gefundenen und extrahierten Bilddaten.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (3 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...