THPDFPage.SetFont

THPDFPage

 

Oben  Zurück  Weiter

Legt die aktuelle Schriftart fest, die von Textausgabemethoden verwendet wird

 

Delphi-Syntax:

procedure SetFont ( FontName: AnsiString; FontStyle: TFontStyles; ASize: Single; FontCharset: TFontCharset = DEFAULT_CHARSET; IsVertiacal: Boolean);

TFontStyles-Definition

Bestimmt, ob die Schriftart normal, kursiv, unterstrichen, fett usw. ist

type

  TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);

  TFontStyles = set of TFontStyle;

Beschreibung:
Verwenden Sie Style, um Zeichen, welche die Schriftart verwenden, spezielle Eigenschaften hinzuzufügen. Style ist eine Menge, die keinen oder mehrere der folgenden Werte enthält:

Wert	Bedeutung

fsBold	Die Schriftart ist fett
fsItalic	Die Schriftart ist kursiv
fsUnderline	Die Schriftart ist unterstrichen
fsStrikeOut	Die Schriftart wird mit einer horizontalen Linie durchgestrichen dargestellt

TFontCharset-Definition

TFontCharset repräsentiert den Zeichensatz einer Schriftart

type TFontCharSet = 0..255;

Beschreibung:
Jede Windows-Schriftart unterstützt einen oder mehrere Zeichensätze, die angeben, welche Zeichen mit der Schriftart geschrieben werden können. Beispielsweise verwenden die meisten Schriftarten, die japanische Zeichen darstellen können, einen bestimmten Multi-Byte-Zeichensatz
Jede Schriftart unterstützt ihre eigene, einzigartige Auswahl an Zeichensätzen. Erkundigen Sie sich beim Schriftartenanbieter, welche Zeichensätze unterstützt werden
Die folgende Tabelle listet die vordefinierten Konstanten auf, die für Standardzeichensätze bereitgestellt werden:

Konstante			Wert	Beschreibung

ANSI_CHARSET		0	ANSI-Zeichen
DEFAULT_CHARSET		1	Schriftart wird ausschließlich basierend auf Name und Size ausgewählt
SYMBOL_CHARSET		2	Standard-Symbolzeichensatz
MAC_CHARSET		77	Macintosh-Zeichen (nicht verfügbar unter NT 3.51)
SHIFTJIS_CHARSET		128	Japanische Shift-JIS-Zeichen
HANGEUL_CHARSET		129	Koreanische Zeichen (Wansung)
JOHAB_CHARSET		130	Koreanische Zeichen (Johab) – nicht verfügbar unter NT 3.51
GB2312_CHARSET		134	Vereinfachte chinesische Zeichen (Festlandchina)
CHINESEBIG5_CHARSET	136	Traditionelle chinesische Zeichen (Taiwan)
GREEK_CHARSET		161	Griechische Zeichen – nicht verfügbar unter NT 3.51
TURKISH_CHARSET		162	Türkische Zeichen – nicht verfügbar unter NT 3.51
VIETNAMESE_CHARSET	163	Vietnamesische Zeichen – nicht verfügbar unter NT 3.51
HEBREW_CHARSET		177	Hebräische Zeichen – nicht verfügbar unter NT 3.51
ARABIC_CHARSET		178	Arabische Zeichen – nicht verfügbar unter NT 3.51
BALTIC_CHARSET		186	Baltische Zeichen – nicht verfügbar unter NT 3.51
RUSSIAN_CHARSET		204	Kyrillische Zeichen – nicht verfügbar unter NT 3.51
THAI_CHARSET		222	Thailändische Zeichen – nicht verfügbar unter NT 3.51
EASTEUROPE_CHARSET	238	Enthält diakritische Zeichen für osteuropäische Länder – nicht verfügbar unter NT 3.51
OEM_CHARSET		255	Hängt von der Codepage des Betriebssystems ab

 

C++-Syntax:

void __fastcall SetFont ( AnsiString FontName, Graphics::TFontStyles FontStyle, float ASize, Graphics::TFontCharset FontCharset; IsVertiacal: Boolean);

 

Beschreibung:

Die Methode SetFont legt die aktuelle Schriftart für die Textausgabe fest. FontStyle enthält keinen oder mehrere Stil-Flags, und ASize definiert die Schriftgröße

 

Beim Wechsel zwischen verschiedenen Schriftarten setzt HotPDF den zwischengespeicherten Unicode-Glyphenzustand der vorherigen Schriftart zurück und ermittelt Glyphen-IDs und -Breiten für die aktive Schriftart. Dies ist wichtig für eingebettete Schriftarten wie Calibri und andere TrueType-Unicode-Schriftarten

 

Um eine konsistente Ausgabe über verschiedene Viewer hinweg zu gewährleisten, aktivieren Sie THotPDF.FontEmbedding und deaktivieren Sie THotPDF.StandardFontEmulation vor dem Aufruf von SetFont

 

Wenn FontEmbedding aktiviert ist, ermittelt HotPDF den PostScript-Namen des eingebetteten TrueType-Schriftprogramms und schreibt passende PDF-Schriftnamen. Dadurch bleiben die Daten /BaseFont und /FontDescriptor data konsistent, selbst wenn der an SetFont übergebene Windows-Schriftartname ein Alias oder eine ersetzte Schriftart ist

 

Code-Beispiel

program TextOut;
{$APPTYPE CONSOLE}
uses
    SysUtils, Graphics, Classes, HPDFDoc;

var
    HPDF: THotPDF;

begin
    HPDF := THotPDF.Create ( nil ) ;
    try
        HPDF.AutoLaunch := true;
        HPDF.FileName := 'TextOut.pdf';
        HPDF.FontEmbedding := true;
        HPDF.StandardFontEmulation := false;
        HPDF.BeginDoc;
        HPDF.CurrentPage.SetFont('Calibri', [fsBold], 24);
        HPDF.CurrentPage.TextOut(10, 10, 0, 'Embedded font output');
        HPDF.EndDoc;
    finally
        HPDF.Free;
    end;
end.

 

Siehe auch: TextOut