Home / LinuxUser / 2003 / 08 / The Answer Girl: Web-Inhalte mit nicht-lateinischen Zeichen ausdrucken

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
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(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.

Nichts mit WYSIWYG

The Answer Girl: Web-Inhalte mit nicht-lateinischen Zeichen ausdrucken

Fehler in Qt

Dann weigert sich der PostScript-Betrachter gv plötzlich mit einem Unrecoverable error, von der erzeugten ps-Datei überhaupt etwas anzuzeigen. Der Schuldige hierfür steckt tief im Qt-Quellcode versteckt, genaugesagt in der Datei src/kernel/qpsprinter.cpp: Enthält eine pfb-Datei Leerzeilen oder die Zeichenkombination CR/LF als Zeilenende, geht einiges schief. Dummerweise steckt in allen pfb-Fonts aus dem XType1-Paket jeweils eine Leerzeile. Qt-Hersteller Trolltech verspricht, diesen Fehler in Version 3.2 zu beheben, doch das hilft derzeit aktuellen Installationen leider nicht weiter.

Abbildung 4: Damit Qt richtig arbeitet, muss die markierte Leerzeile aus der Datei Advertisement.pfb entfernt und die Länge des ASCII-Teils am Dateianfang angepasst werden

Zum Glück gibt es einen Workaround, ohne Qt zu patchen: die problematischen Leerzeilen mit einem minimal-invasiven Editor wie vi aus den XType1-PFB-Dateien zu entfernen. Wie Abbildung 4 anhand der XType1-Datei Advertisement.pfb zeigt, bestehen "Postscript Font Binary"-Dateien aus menschenlesbaren ASCII-Teilen (oben) und Binärbestandteilen (die komischen Zeichen im unteren Teil). Die Zeilenumbrüche stellt vi als ein Zeichen ^M ([Strg-M]) dar. Das ist die Kontrollsequenz, die hinter CR steckt.

Um nach einer Leerzeile, also zwei aufeinanderfolgenden [Strg-M]-Sequenzen, zu suchen, gibt man im vi-Kommandomodus das Suchzeichen / und anschließend [Strg-V][Strg-M][Strg-V][Strg-M][Enter] ein. Die im ASCII-Teil gefundene ^M^M-Sequenz (nicht jedoch eventuelle weitere im Binärteil) reduziert der vi-Befehl x (Zeichen unter dem Cursor löschen) auf ein Zeilenumbruchszeichen. Doch ehe :wq speichernd den Editor verlässt, muss man noch die Länge des so um ein Zeichen verkürzten ASCII-Teils anpassen. Die steht am Dateianfang zwischen der Kontrollsequenz ^A und einer weiteren.

Wie um alles in der Welt kann eine Länge wie in Abbildung 4 den Wert Í haben? Das spielt zum Glück keine so große Rolle: Man muss diese "Anzahl" lediglich um eins erniedrigen, und da Í ein Zeichen aus dem ISO-8859- oder Latin-1-Zeichensatz ist, reicht es, in der Latin-1-Code-Tabelle den Vorgänger-Code von Í nachzuschlagen. man latin1 listet die Code-Tabelle auf; die ersten drei Spalten geben den Code des Zeichens aus Spalte vier im Oktal-, Dezimal- und Hexadezimal-Zahlensystem an; am Ende folgt eine Erklärung:

314   204   CC     Ì     LATIN CAPITAL LETTER I WITH GRAVE
315   205   CD     Í     LATIN CAPITAL LETTER I WITH ACUTE

Í in Abbildung 4 muss sich also lediglich per Copy&Paste in Ì verwandeln.

Bei anderen Fonts ist die Suche nach dem neuen Längen-Code einfacher: Steht an der entscheidenen Stelle ein großer Buchstabe aus dem lateinischen Alphabet, nimmt man seinen (ebenfalls großgeschriebenen) Vorgänger. So wird aus dem von vi als ~@^AL dargestellten Dateianfang in College-Bold.pfb die Sequenz ~@^AK oder aus ~@^AT in College-Italic.pfb ~@^AS.

Um zu testen, dass dabei nichts schiefging, entfernt man das Verzeichnis mit den nunmehr geänderten XType1-Fonts mit

xset -fp /home/pjung/XType1/

aus dem Font Path und fügt es mit xset +fp wie oben gezeigt wieder ein. Somit löscht X seinen Font-Cache und liest die Font-Dateien neu ein. Ruft man jetzt erneut xfontsel auf, lassen sich alle geänderten Fonts prüfend durchgehen.

Stimmt hier alles, ist der Weg zu kyrillischen Ausdrucken aus Konqueror und Opera frei. Einen Haken hat die Font-Auswahl dennoch: Da die kyrillischen Schriften zwar 7-Bit-ASCII-Zeichen, aber keine deutschen Umlaute enthalten, sehen deutschsprachige Seiten mit den neuen Default-Schriften plötzlich merkwürdig aus. Hier hat der Konqueror-Schriften-Dialog den großen Vorteil, dass man mit einem Mausklick wieder zu den Voreinstellungen kommt. Bei Opera mit seinem Font-Einstellungskonzept "eine Schrift pro HTML-Element" wäre ein solcher Knopf noch dringender, zumal man bei aufwändigen Seiten durchaus eine Menge ändern darf. Der Weg zum problemlosen, alphabetunabhängigen Ausdruck ist also noch weit.

Glossar

KOI8

Eine Zuordnungs- oder Code-Tabelle, die außer 7-Bit-ASCII-Zeichen (die im wesentlichen die Ziffern 0--9, die Buchstaben des amerikanischen Alphabets und einige Kontrollsequenzen wie CR und LF umfassen) auch kyrillischen Zeichen eine Kodierung zuordnet. Sie ist zwar eine sehr verbreitete, aber nicht die einzige kyrillische Codepage. KOI8-R umfasst das russische, KOI8-U das ukrainische Alphabet.

CR/LF

Die nach den gleichnamigen Aktionen bei der Schreibmaschine benannten ASCII-Zeichen Wagenrücklauf ("Carriage Return") und und Zeilenvorschub ("Line Feed") werden unter DOS und Abkömmlingen gleichzeitig durch den Druck auf die Enter-Taste am Ende einer Textzeile erzeugt. Unter Unix dient LF alleine als harter Zeilenumbruch, bei MacOS CR.

Infos

[1] Patricia Jung: "Sprechen Sie Russisch?", LinuxUser 04/2003, S. 66 ff.

[2] http://www.ibiblio.org/pub/academic/russian-studies/Software/PS/

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 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...