THPDFPage.SetFont

THPDFPage

 

Горе  Предишна  Следваща

Задава текущия шрифт, използван от методите за извеждане на текст

 

Delphi syntax:

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

Дефиниция на TFontStyles

Определя дали шрифтът е normal, italic, underlined, bold и така нататък

type

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

  TFontStyles = set of TFontStyle;

Описание:
Използвайте Style, за да добавите специални характеристики към символите, които използват шрифта. Style е набор, съдържащ нула или повече стойности от следните:

Стойност	Значение

fsBold	Шрифтът е boldfaced
fsItalic	Шрифтът е italicized
fsUnderline	Шрифтът е underlined
fsStrikeOut	Шрифтът се показва с хоризонтална линия през него

Дефиниция на TFontCharset

TFontCharset представлява character set на шрифт

type TFontCharSet = 0..255;

Описание:
Всеки Windows typeface поддържа един или повече character sets, които указват кои символи могат да бъдат записани с шрифта. Например повечето шрифтове, които могат да представят японски символи, използват конкретен multi-byte character set
Всеки шрифт поддържа собствен, уникален набор от character sets. Проверете при доставчика на шрифта кои character sets се поддържат
Следната таблица изброява предварително дефинираните константи за стандартни character sets:

Константа			Стойност	Описание

ANSI_CHARSET		0	ANSI символи
DEFAULT_CHARSET		1	Шрифтът се избира само според Name и Size
SYMBOL_CHARSET		2	Стандартен symbol set
MAC_CHARSET		77	Macintosh символи. Не е наличен в NT 3.51
SHIFTJIS_CHARSET		128	Японски shift-JIS символи
HANGEUL_CHARSET		129	Корейски символи (Wansung)
JOHAB_CHARSET		130	Корейски символи (Johab). Не е наличен в NT 3.51
GB2312_CHARSET		134	Символи на опростен китайски (континентален Китай)
CHINESEBIG5_CHARSET	136	Символи на традиционен китайски (Тайван)
GREEK_CHARSET		161	Гръцки символи. Не е наличен в NT 3.51
TURKISH_CHARSET		162	Турски символи. Не е наличен в NT 3.51
VIETNAMESE_CHARSET	163	Виетнамски символи. Не е наличен в NT 3.51
HEBREW_CHARSET		177	Ивритски символи. Не е наличен в NT 3.51
ARABIC_CHARSET		178	Арабски символи. Не е наличен в NT 3.51
BALTIC_CHARSET		186	Балтийски символи. Не е наличен в NT 3.51
RUSSIAN_CHARSET		204	Кирилски символи. Не е наличен в NT 3.51
THAI_CHARSET		222	Тайски символи. Не е наличен в NT 3.51
EASTEUROPE_CHARSET	238	Включва диакритични знаци за източноевропейски държави. Не е наличен в NT 3.51
OEM_CHARSET		255	Зависи от codepage-а на операционната система

 

C++ syntax:

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

 

Description:

Методът SetFont задава текущия шрифт за извеждане на текст. FontStyle съдържа нула или повече стилови флагове, а ASize определя размера на шрифта

 

При превключване между различни шрифтове HotPDF нулира кешираното Unicode glyph състояние за предишния шрифт и определя glyph ID-тата и ширините за активния шрифт. Това е важно за вградени шрифтове като Calibri и други TrueType Unicode шрифтове

 

За повторяем изход във всички прегледни програми включете THotPDF.FontEmbedding и изключете THotPDF.StandardFontEmulation преди да извикате SetFont

 

Когато FontEmbedding е включен, HotPDF определя PostScript името на вградения TrueType font program и записва съответстващи PDF имена на шрифтове. Това поддържа /BaseFont и /FontDescriptor данните последователни дори когато Windows face name, подадено на SetFont, е псевдоним или заместено лице

 

Примерен код

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.

 

See also: TextOut