THPDFPage.SetFont

THPDFPage

 

Üst  Önceki  Sonraki

Metin çıktı yöntemleri tarafından kullanılan geçerli yazı tipini ayarlar

 

Delphi sözdizimi

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

TFontStyles tanımı

Yazı tipinin normal, italik, altı çizili, kalın vb. olup olmadığını belirler

type

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

  TFontStyles = set of TFontStyle;

Açıklama:
Yazı tipini kullanan karakterlere özel özellikler eklemek için Style kullanın. Style, aşağıdakilerden sıfır veya daha fazla değer içeren bir kümedir:

Değer	Anlam

fsBold	Yazı tipi kalın gösterilir
fsItalic	Yazı tipi italik gösterilir
fsUnderline	Yazı tipinin altı çizilir
fsStrikeOut	Yazı tipi üzerinden yatay bir çizgiyle gösterilir

TFontCharset tanımı

TFontCharset bir yazı tipinin karakter kümesini temsil eder

type TFontCharSet = 0..255;

Açıklama:
Her Windows yazı yüzü, yazı tipi kullanılarak hangi karakterlerin yazılabileceğini belirten bir veya daha fazla karakter kümesini destekler. Örneğin Japonca karakterleri temsil edebilen çoğu yazı tipi belirli bir çok baytlı karakter kümesi kullanır
Her yazı tipi kendine özgü karakter kümelerini destekler. Hangi karakter kümelerinin desteklendiğini öğrenmek için yazı tipi satıcısına başvurun
Aşağıdaki tablo standart karakter kümeleri için sağlanan önceden tanımlı sabitleri listeler:

Sabit			Değer	Açıklama

ANSI_CHARSET		0	ANSI karakterleri
DEFAULT_CHARSET		1	Yazı tipi yalnızca Name ve Size temel alınarak seçilir
SYMBOL_CHARSET		2	Standart sembol kümesi
MAC_CHARSET		77	Macintosh karakterleri. NT 3.51 üzerinde kullanılamaz
SHIFTJIS_CHARSET		128	Japonca shift-JIS karakterleri
HANGEUL_CHARSET		129	Korece karakterler (Wansung)
JOHAB_CHARSET		130	Korece karakterler (Johab). NT 3.51 üzerinde kullanılamaz
GB2312_CHARSET		134	Basitleştirilmiş Çince karakterler (Çin anakarası)
CHINESEBIG5_CHARSET	136	Geleneksel Çince karakterler (Tayvan)
GREEK_CHARSET		161	Yunanca karakterler. NT 3.51 üzerinde kullanılamaz
TURKISH_CHARSET		162	Türkçe karakterler. NT 3.51 üzerinde kullanılamaz
VIETNAMESE_CHARSET	163	Vietnamca karakterler. NT 3.51 üzerinde kullanılamaz
HEBREW_CHARSET		177	İbranice karakterler. NT 3.51 üzerinde kullanılamaz
ARABIC_CHARSET		178	Arapça karakterler. NT 3.51 üzerinde kullanılamaz
BALTIC_CHARSET		186	Baltık karakterleri. NT 3.51 üzerinde kullanılamaz
RUSSIAN_CHARSET		204	Kiril karakterleri. NT 3.51 üzerinde kullanılamaz
THAI_CHARSET		222	Tayca karakterler. NT 3.51 üzerinde kullanılamaz
EASTEUROPE_CHARSET	238	Doğu Avrupa ülkeleri için aksan işaretlerini içerir. NT 3.51 üzerinde kullanılamaz
OEM_CHARSET		255	İşletim sisteminin kod sayfasına bağlıdır

 

C++ sözdizimi:

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

 

Açıklama

SetFont yöntemi metin çıktısı için geçerli yazı tipini ayarlar. FontStyle sıfır veya daha fazla stil bayrağı içerir ve ASize yazı tipi boyutunu tanımlar

 

Farklı yazı tipleri arasında geçiş yaparken HotPDF önceki yazı tipi için önbelleğe alınmış Unicode glif durumunu sıfırlar ve etkin yazı tipi için glyph ID değerlerini ve genişlikleri çözer. Bu, Calibri gibi gömülü yazı tipleri ve diğer TrueType Unicode yazı tipleri için önemlidir

 

Okuyucular arasında tekrarlanabilir çıktı için SetFont çağrısından önce THotPDF.FontEmbedding özelliğini etkinleştirin ve THotPDF.StandardFontEmulation özelliğini devre dışı bırakın

 

FontEmbedding etkinleştirildiğinde HotPDF, gömülü TrueType yazı tipi programının PostScript adını çözer ve eşleşen PDF yazı tipi adlarını yazar. Bu, SetFont'a geçirilen Windows yüz adı bir takma ad veya yerine kullanılan yüz olsa bile /BaseFont ve /FontDescriptor verilerini tutarlı tutar

 

Kod örneği

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.

 

Ayrıca bkz.: TextOut