Integration von eigenen Fonts in das XSL/FOP-FrameworkAutor: Dr. Frank Hoffmann, 02.01.2003 PDF-Ausgabe mit speziellen Schriften.
FOP benötigt metrische Informationen von Buchstaben (individuelle Buchstabengröße, Abstände, Unterscheidungen etc.), damit ein schrift-spezischer Satz erfolgen kann; die Angaben zur Buchstabengröße befinden sich bei Postscript-Font in den metrischen pfm-Files. Bei Truetype-Fonts dagegen sind die metrischen Angaben in den ttf-Files integriert; der hier vorgestellte Registrierungs-Prozess für eigene Postscript-Fonts verläuft bei TTF-Files analog.
mehr dazu siehe: http://xml.apache.org/fop/fonts.html
1. Erzeugung der metrisches Files
Aus den binären PFM-Files werden XML-Files für die metrischen Fonts erzeugt; dies geschieht mit der FOP-Class PFMReader. Der Aufruf der Class (hier FOP 0.20.4) benötigt zusätzliche Java-Bibliotheken (xerces, xalan etc.); beispielhaft wird eine entsprechende XML-Datei "Compacta.XML" aus der PFM-Datei "0783A___.PFM" erzeugt: C:\Programme\FOP\> java -cp build\fop.jar;lib\xercesImpl-2.0.1.jar; lib\xml-apis.jar;lib\xalan-2.3.1.jar; lib\batik.jar org.apache.fop.fonts.apps.PFMReader C:\psfonts\pfm\0783A___.PFM Compacta.XML
Das entstandene metrische XML-File sieht dann folgendermaßen aus: <?xml version="1.0" encoding="UTF-8" ?> <font-metrics type="TYPE1">
2. Registrierung der Fontfiles für FOP
Das XML-File verbleibt im FOP-Root-Verzeichnis C:\Programme\FOP\; die Registrierung erfolgt der Datei C:\Programme\FOP\conf\userconfig.xml, indem dort ein entsprechendes Font-Element hinzugefügt wird (weitere Syntaxbeispiele finden sich in der Datei selbst): .... <font metrics-file="Compacta.XML" kerning="yes" embed-file="C:\psfonts\0783A___.PFB"> <font-triplet name="CompactaBT" style="normal" weight="bold"/> </font> ....
Die Referenzierung auf eine lokale binäre Fontdefinitions-Datei (Postscript-Font, PFB) ermöglicht FOP das komplette Einbetten der entsprechenden Fontdatei; für das eigentliche Rendern der Seite werden nur die metrischen Angaben herangezogen.
3. FOP-Rendering mit neuen Fonts
Das Rendering mit einem neuen Font kann man mit einer mitgelieferten fo-Files ausprobieren, z.B. cid-fonts.fo; dafür tauscht man in der Datei die Font-Deklarationen per Suchen und Ersetzen aus, hier z.B. "Helvetica" gegen "CompactaBT".
Für FOP ist nun wichtig, das die neue Userkonfiguration userconfig.xml explizit aufgerufen wird: C:\Programme\FOP\> Fop -c conf\userconfig.xml cid-fonts.fo cid-fonts.pdf
Das Ergebnis ist eine PDF-Datei in der alle Überschriften im neuen Font CompactaBT erscheinen. |
![]() |
|
![]() |
|
Home |
Sitemap |
Druckversion |
Seitenanfang |
Impressum |
pressinfo
© 2001-2008 Hoffmann+Liebenberg GmbH, SNTL Publishing GmbH & Co KG
|
ZMS is a partner project of medvalue.net