17.05.2014 Aufrufe

PDFlib Tutorial 9.0.1

PDFlib Tutorial 9.0.1

PDFlib Tutorial 9.0.1

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Der Standardwert für subsetlimit beträgt 100 Prozent. Anders ausgedrückt: die Option<br />

subsetting von PDF_load_font( ) wird immer berücksichtigt, außer der Client setzt das<br />

Limit explizit auf weniger als 100 Prozent.<br />

> Bei autosubsetting=true: Mit der Option subsetminsize lässt sich die Untergruppenbildung<br />

für kleine Fontdateien vollständig deaktivieren. Ist die ursprüngliche Fontdatei<br />

kleiner als der Wert von subsetminsize in KB, wird die Untergruppenbildung für<br />

diesen Font deaktiviert.<br />

Einbettung und Untergruppenbildung bei TrueType-Fonts. Wird ein TrueType-Font<br />

mit einem von winansi und macroman verschiedenen Encoding verwendet, wird er für<br />

die PDF-Ausgabe standardmäßig in einen CID-Font konvertiert. Bei Encodings, die nur<br />

Zeichen aus der Adobe Glyph List (AGL) enthalten, lässt sich dieses Verhalten unterbinden,<br />

indem die Option autocidfont auf false gesetzt wird.<br />

Bestimmen der initialen Fontuntergruppe. Fontuntergruppen enthalten Zeichenbeschreibungen<br />

für alle in einem Dokument verwendeten Glyphen. Die erzeugten Fontuntergruppen<br />

variieren also je nach Dokument, da in jedem Dokument normalerweise<br />

ein unterschiedlicher Satz von Zeichen (und damit Glyphen) verwendet wird. Unterschiedliche<br />

Fontuntergruppen können beim Zusammenführen mehrerer kleiner Dokumente<br />

mit eingebetteten Fontuntergruppen zu einem großen Dokument zu Problemen<br />

führen: die eingebetteten Untergruppen können nicht entfernt werden, da sie alle unterschiedlich<br />

sind.<br />

Für diesen Fall können Sie in <strong>PDFlib</strong> mit der Option initialsubset von PDF_load_font( )<br />

den initialen Inhalt einer Fontuntergruppe bestimmen. Während <strong>PDFlib</strong> entsprechend<br />

der erzeugten Textausgabe Glyphen zu einer standardmäßig leeren Fontuntergruppe<br />

hinzufügt, kann mit der Option initialsubset eine nicht leere Untergruppe bestimmt<br />

werden. Wenn zum Beispiel nur Textausgabe vom Typ Latin-1 erzeugt wird und der Font<br />

noch viele andere Glyphen enthält, können Sie den ersten Unicode-Block als initiale Untergruppe<br />

bestimmen:<br />

initialsubset={U+0020-U+00FF}<br />

Damit werden die Glyphen für alle Unicode-Zeichen im angegebenen Bereich in der Untergruppe<br />

aufgenommen. Wenn dieser Bereich so gewählt wurde, dass er den gesamten<br />

Text im generierten Dokument abdeckt, sind die erzeugten Fontuntergruppen in allen<br />

Dokumenten identisch. Wenn diese Dokumente später zu einem einzigen PDF-Dokument<br />

zusammengefasst werden, können die identischen Fontuntergruppen mit der<br />

Option optimize von PDF_begin_document( ) entfernt werden.<br />

Untergruppenbildung bei Type-3-Fonts. Bevor Type-3-Fonts in einem Dokument verwendbar<br />

sind, müssen sie definiert und eingebettet werden (da die Zeichenbreiten benötigt<br />

werden). Eine Untergruppenbildung ist aber erst möglich, nachdem alle Seiten<br />

erstellt wurden (da erst dann bekannt ist, welche Glyphen benutzt und damit in die Untergruppe<br />

aufgenommen werden). Um diesen Konflikt zu vermeiden, unterstützt<br />

<strong>PDFlib</strong> Type-3-Fonts, die nur Metrikdaten erhalten (widths-only Type3 fonts). Um einen<br />

Type-3-Font als Untergruppe einzubetten, müssen Sie den Font in zwei Durchgängen<br />

definieren:<br />

> Der erste Durchgang mit der Option widthsonly von PDF_begin_font( ) erfolgt vor der<br />

eigentlichen Verwendung des Fonts und definiert lediglich die Font- und Zeichenmetriken;<br />

die Fontmatrix muss in PDF_begin_font( ) und wx sowie die Bounding-Box<br />

5.5 Fonteinbettung und Fontuntergruppen (Subsetting) 149

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!