2017-12-31 37 views
1

Angenommen, ich erstelle eine PDF-Datei mit Apache FOP. Alle Zeichen in der PDF sollten Times New Roman Italic sein. Da es in meinem System keine solche Schriftart gibt, wird Apache FOP versuchen, die Schriftart in/data/fonts zu finden, die von fop.xconf gesetzt wird.Wie kursiv/fett Schriftarten automatisch in Apache FOP erstellen?

<directory>/data/fonts</directory> 

Allerdings gibt es nur eine Datei in/data/Schriftarten, die Times New Roman Regular.ttf ist. Ja, nein Times New Roman Italic.ttf und keine Times New Roman Bold.ttf.

ls /data/fonts 
'Times New Roman Regular.ttf' 

In diesem Fall berichtet Apache FOP, dass es nicht Times New Roman Italic Schrift finden konnte, und es fiel zurück auf die Standardschrift, die entweder nicht Times New Roman und nicht kursiv war.

Ich kann das Problem lösen, indem ich Times New Roman Italic.ttf in/data/fonts setze, aber was ist, wenn ich keine spezielle kursive/fette Version dieser Schriftart habe? AFAIK einige Schriftarten haben überhaupt keine speziellen fett/kursiven Versionen. Ist es möglich, dass Apache FOP den Kursiv-/Fettschrift-Stil automatisch aus der regulären Schriftart erstellt, auch wenn das Ergebnis nicht so gut ist wie der Kursiv-/Fettschrifttyp?

Antwort

1

Wenn Sie die FOP-Version 2.2 verwenden, gibt es eine Konfigurationsoption, die die automatische Erstellung von simulierten kursiven und fetten Glyphen ermöglicht: simulate-style.

In diesem Beispiel wird die vier Kombinationen von style und weight zum gleichen Truetype-Schriftart, emboldening und schräg die Glyphen bei Bedarf:

<font kerning="yes" embed-url="Times.ttf" simulate-style="true"> 
    <font-triplet name="Times" style="normal" weight="normal"/> 
    <font-triplet name="Times" style="italic" weight="normal"/> 
    <font-triplet name="Times" style="normal" weight="bold"/> 
    <font-triplet name="Times" style="italic" weight="bold"/> 
</font> 

Beachten Sie, dass es zu wichtig ist, all die verschiedenen font-triplet Elemente registrieren ; Wenn Sie nur <font-triplet name="Times" style="normal" weight="normal"/> haben, wird der Font-Ersetzungsmechanismus zuerst fett, kursiv und fett-kursiv zur registrierten normalen Variante und dann FOP wird die Stile simulieren (nichts tun).

Verwandte Themen