THPDFPage.SetFont

THPDFPage

 

Góra  Poprzedni  Następny

Ustawia bieżącą czcionkę używaną przez metody wyjścia tekstowego

 

Składnia Delphi

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

Definicja TFontStyles

Określa, czy czcionka jest normalna, pochylona, podkreślona, pogrubiona itd

type

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

  TFontStyles = set of TFontStyle;

Opis:
Użyj Style, aby dodać specjalne cechy do znaków używających tej czcionki. Style jest zbiorem zawierającym zero lub więcej wartości z poniższych:

Wartość	Znaczenie

fsBold	Czcionka jest pogrubiona
fsItalic	Czcionka jest pochylona
fsUnderline	Czcionka jest podkreślona
fsStrikeOut	Czcionka jest wyświetlana z poziomą linią przekreślenia

Definicja TFontCharset

TFontCharset reprezentuje zestaw znaków czcionki

type TFontCharSet = 0..255;

Opis:
Każdy krój pisma Windows obsługuje jeden lub więcej zestawów znaków, które określają, jakie znaki można zapisać przy użyciu tej czcionki. Na przykład większość czcionek mogących reprezentować znaki japońskie używa określonego wielobajtowego zestawu znaków
Każda czcionka obsługuje własny, unikatowy zestaw zestawów znaków. Sprawdź u dostawcy czcionki, które zestawy znaków są obsługiwane
Poniższa tabela zawiera predefiniowane stałe udostępniane dla standardowych zestawów znaków:

Stała			Wartość	Opis

ANSI_CHARSET		0	Znaki ANSI
DEFAULT_CHARSET		1	Czcionka jest wybierana wyłącznie na podstawie Name i Size
SYMBOL_CHARSET		2	Standardowy zestaw symboli
MAC_CHARSET		77	Znaki Macintosh. Niedostępne w NT 3.51
SHIFTJIS_CHARSET		128	Japońskie znaki shift-JIS
HANGEUL_CHARSET		129	Znaki koreańskie (Wansung)
JOHAB_CHARSET		130	Znaki koreańskie (Johab). Niedostępne w NT 3.51
GB2312_CHARSET		134	Znaki chińskie uproszczone (Chiny kontynentalne)
CHINESEBIG5_CHARSET	136	Znaki chińskie tradycyjne (Tajwan)
GREEK_CHARSET		161	Znaki greckie. Niedostępne w NT 3.51
TURKISH_CHARSET		162	Znaki tureckie. Niedostępne w NT 3.51
VIETNAMESE_CHARSET	163	Znaki wietnamskie. Niedostępne w NT 3.51
HEBREW_CHARSET		177	Znaki hebrajskie. Niedostępne w NT 3.51
ARABIC_CHARSET		178	Znaki arabskie. Niedostępne w NT 3.51
BALTIC_CHARSET		186	Znaki bałtyckie. Niedostępne w NT 3.51
RUSSIAN_CHARSET		204	Znaki cyrylickie. Niedostępne w NT 3.51
THAI_CHARSET		222	Znaki tajskie. Niedostępne w NT 3.51
EASTEUROPE_CHARSET	238	Zawiera znaki diakrytyczne dla krajów Europy Wschodniej. Niedostępne w NT 3.51
OEM_CHARSET		255	Zależy od strony kodowej systemu operacyjnego

 

Składnia C++:

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

 

Opis

Metoda SetFont ustawia bieżącą czcionkę dla wyjścia tekstowego. FontStyle zawiera zero lub więcej flag stylu, a ASize określa rozmiar czcionki

 

Podczas przełączania między różnymi czcionkami HotPDF resetuje buforowany stan glifów Unicode poprzedniej czcionki oraz rozwiązuje identyfikatory glyph ID i szerokości dla aktywnej czcionki. Jest to ważne dla osadzonych czcionek, takich jak Calibri i inne czcionki TrueType Unicode

 

Aby uzyskać powtarzalne wyjście w różnych czytnikach, włącz THotPDF.FontEmbedding i wyłącz THotPDF.StandardFontEmulation przed wywołaniem SetFont

 

Gdy FontEmbedding jest włączone, HotPDF rozwiązuje nazwę PostScript programu osadzonej czcionki TrueType i zapisuje pasujące nazwy czcionek PDF. Dzięki temu dane /BaseFont i /FontDescriptor pozostają spójne nawet wtedy, gdy nazwa kroju Windows przekazana do SetFont jest aliasem lub podstawionym krojem

 

Przykład kodu

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.

 

Zobacz też: TextOut