Schriftersetzung bei Schrifteinbettung
Bei der Schrifteinbettung kann es vorkommen, dass die einzubettende Schrift gar nicht auf dem System vorhanden ist. Mittels Schriftersetzung lässt sich festlegen, welcher Font stattdessen verwendet werden soll.
Mit den vordefinierten Korrekturen werden auch unterschiedliche Schriftersetzungsrichtlinien mitausgeliefert:
- Fehlende Schriften einbetten: Arial mit Helvetica ersetzen und anders herum
- Fehlende Schriften einbetten: ähnliche Schriften ersetzen
- Fehlende Schriften durch Arial ersetzen wenn notwendig
Durch einen Klick auf den untersten Menü-Eintrag öffnet sich der Ordner, in welchem die Schriftersetzungs-Richtlinien als .cfg-Datei gespeichert sind. Es empfiehlt sich, diese nicht zu verändern, sondern zu kopieren und ggf. als Vorlage für eigene Schriftersetzungen zu verwenden.
Syntax für Schriftersetzungs-Richtlinien
Bitte verwenden Sie einfach einen Texteditor zur Erstellung und Bearbeitung dieser Dateien und speichern Sie diese als UTF-8 ab.
Alle Werte müssen mit Tabulatoren separiert sein. Raute-Zeichen "#" am Anfang einer Zeile bedeuten, dass diese Zeilen Kommentare sind und von der Verarbeitung nicht berücksichtigt werden.
Die folgenden Ersetzungsmodi sind verfügbar:
SubstituteFirst
Die erste Schrift in der Liste dieses Eintrags kann durch die folgenden Schriften ersetzt werden.
Notation:SubstituteFirst<tab>Zu ersetzende Schrift<tab>Schriftname<tab>Schriftnam<tab>Schriftname ...
Regular Expressions
Es ist möglich RegEx in SubstituteFirst Zeilen zu verwenden. Beispiel:SubstituteFirst '(.*)Bold(.*)Italic' 'Arial(.*)Bold(.*)Italic' '\1Regular' '\1'
Ein beliebiger Schriftname mit "Bold" und "Italic" und beliebigen Zeichen davor und dazwischen wird durch eine Schrift mit "Arial", "Bold" und "Italic" (und beliebigen Zeichen zwischen diesen Begriffen) ersetzt. Wenn eine solche Schrift nicht gefunden wird, wird eine Schrift, die den gleichen Anfang hat (referenziert durch \1) und danach "Regular" und wenn das auch nicht möglich ist, eine Schrift, die den gleichen Anfang hat.
Die Schriftersetzung mit RegEx wird dann verwendet, wenn die normale Ersetzung (ohne RegEx) nicht erfolgreich war.
SubstituteAll
Dieser Modus erlaubt es, eine Liste zu definieren, in der jeder Font jeden anderen ersetzen kann.
Wenn eine Schrift fehlt, wird versucht, diese durch die nächstfolgende Schrift in der Liste zu ersetzen.
Wenn auch diese fehlt, wird die zuvor stehende Schrift gesucht.
Fehlt auch diese, wird nach der übernächsten Schrift gesucht usw.
Notation:SubstituteAll<tab>Schriftname<tab>Schriftname<tab>Schriftname ...
Regular Expressions
In SubstituteAll Zeilen wird RegEx aus Performance-Gründen nicht unterstützt.
Die Engine ignoriert alle Zeichen außer a-z, A-Z und 0-9. Das bedeutet, dass "Helvetica Bold", "Helvetica-Bold" und "HelveticaBold" alle gleich sind. Es könnte trotzdem sinnvoll sein, sie alle in einer Konfigurationsdatei zur Dokumentation und Übersichtlichkeit zu haben (und das ist der Grund, warum sie alle in der vordefinierten fontsubsitution.cfg vorhanden sind).
Beispiel
Diese Schriftenersetzungsliste ersetzt Arial mit Helvetica und Helvetica mit Arial.
Am Ende dieser Datei sind weitere Einträge, die umfangreichere Schriftersetzungen erlauben.
Für deren Verwendung muss die Raute '#' am Beginn der Zeile entfernt werden.
SubstituteAll Arial ArialMT Helvetica Helvetica Neue Futura Helvetica Neue Microsoft Sans Serif MS PGothic Trebuchet MS Verdana
SubstituteAll Arial Bold Arial-Bold ArialMT,Bold Helvetica Bold Futura-Bold Futura Bold Helvetica-Bold
SubstituteAll Arial Italic Arial-Italic ArialMT,Italic Helvetica Italic Helvetica-Italic Futura-Italic Futura Italic Arial Oblique Arial-Oblique Helvetica Oblique Helvetica-Oblique Futura-Oblique Futura Oblique
SubstituteAll Arial Bold Italic Arial-Bold-Italic ArialMT,BoldItalic Helvetica Bold Italic Futura-Bold-Italic Futura Bold Italic Arial Bold Oblique Arial-Bold-Oblique Arial-BoldOblique Helvetica Bold Oblique Helvetica-BoldOblique Futura-Bold-Oblique Futura Bold Oblique
SubstituteAll Arial Black Arial-Black Helvetica Black Helvetica-Black Futura-Bold Futura Bold Arial-Bold
SubstituteAll Arial Narrow Helvetica Narrow
SubstituteAll Arial Narrow Bold Helvetica Narrow Bold Arial Narrow Fett Helvetica Narrow Fett
SubstituteAll Arial Narrow Bold Italic Helvetica Narrow Bold Italic Arial Narrow Fett Kursiv Helvetica Narrow Fett Kursiv
SubstituteAll Times-Roman Times Times New Roman Garamond
SubstituteAll Times-Bold Times-Roman Bold Times Bold Times New Roman Bold Times Fett Times New Roman Fett
SubstituteAll Times-Italic Times-Roman Italic Times New Roman Italic Times Italic Times Kursiv Times New Roman Kursiv
SubstituteAll Times-Bold-Italic Times-Roman Bold Italic Times Bold Italic Times New Roman Bold Italic Times Fett Kursiv Times New Roman Fett Kursiv
SubstituteAll Courier Courier New Courier Std New Lucida Console MS Gothic
SubstituteAll CourierStd-Bold Courier Std Bold Courier Bold Courier-Bold Courier New Bold Courier New-Bold
SubstituteAll CourierStd-Oblique Courier Std Oblique CourierStd-Italic Courier Std Italic Courier Italic Courier-Italic Courier New Italic Courier New-Italic Courier Oblique Courier-Oblique Courier New Oblique Courier New-Oblique
SubstituteAll CourierStd-BoldOblique Courier Std Bold Oblique Courier BoldItalic Courier-BoldItalic Courier New Bold Italic Courier New-Bold-Italic Courier BoldOblique Courier-BoldOblique Courier New Bold Oblique Courier New-Bold-Oblique
#SubstituteFirst '(.*)Regular' Arial Helvetica '\1Regular' '\1'
#SubstituteFirst '(.*)Medium' Arial Helvetica '\1Regular' '\1'
#SubstituteFirst '(.*)Bold' 'Arial(.*)Bold' 'Helvetica(.*)Bold' '\1Regular' '\1'
#SubstituteFirst '(.*)Italic' 'Arial(.*)Italic' 'Helvetica(.*)Italic' '\1Regular' '\1'
#SubstituteFirst '(.*)Black' 'Arial(.*)Black' 'Helvetica(.*)Black' '\1Regular' '\1' Arial(.*)Bold' 'Helvetica(.*)Bold'
#SubstituteFirst '(.*)Bold(.*)Italic' 'Arial(.*)Bold(.*)Italic' 'Helvetica(.*)Bold(.*)Italic' '\1Regular' '\1'
#SubstituteFirst '(.*)Bold(.*)' 'Arial(.*)Bold' 'Helvetica(.*)Bold' '\1Regular' '\1'
#SubstituteFirst '(.*)Italic(.*)' 'Arial(.*)Italic' 'Helvetica(.*)Italic' '\1Regular' '\1'
#SubstituteFirst '(.*)' '\1Regular' '\1Medium' '\1' Arial Helvetica
Syntax für die Glyphenersetzung in Schriftersetzungs-Richtlinen
Für die Schrifteinbettung muss die Schriftart Glyphen für alle Glyph-Codes im PDF enthalten.
Einige PDFs verwenden falsch formatierte Glyph-Namen. In diesem Fall schlägt die Schrifteinbettung fehl. Der Eintrag SubstituteGlyphName
ermöglicht die Definition der Zuordnung von deformierten Glyph-Namen zu korrekten Glyph-Namen.
Der erste Eintrag ist der richtige Glyph-Name, danach kann eine unbegrenzte Anzahl von fehlerhaften Einträgen angegeben werden.
Dadurch werden alle fehlerhaften Glyph-Namen im PDF korrigiert und das Ergebnis bei der Schrifteinbettung berücksichtigt.
SubstituteGlyphName <tab> nonbreakingspace <tab> no_break_space <tab> non_breaking_space
SubstituteGlyphName <tab> Hungarumlaut <tab> hungarumlaut__now_576