THPDFPage.SetFont

THPDFPage

 

بالا  قبلی  بعدی

فونت فعلی مورد استفاده در روش‌های خروجی متن را تنظیم می‌کند

 

نحو Delphi:

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

تعریف TFontStyles

تعیین می‌کند که فونت معمولی، مورب، زیرخط‌دار، ضخیم و مانند آن باشد

type

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

  TFontStyles = set of TFontStyle;

توضیح:
از Style برای افزودن ویژگی‌های خاص به نویسه‌هایی که از فونت استفاده می‌کنند استفاده کنید. Style مجموعه‌ای از صفر یا چند مقدار از موارد زیر است

مقدار	معنا

fsBold	فونت ضخیم است
fsItalic	فونت مورب است
fsUnderline	فونت زیرخط دارد
fsStrikeOut	فونت با یک خط افقی از وسط نمایش داده می‌شود

تعریف TFontCharset

TFontCharset مجموعه نویسه‌های یک فونت را نمایش می‌دهد

type TFontCharSet = 0..255;

توضیح:
هر نوع قلم در Windows از یک یا چند مجموعه نویسه پشتیبانی می‌کند که مشخص می‌کنند با آن فونت چه نویسه‌هایی می‌توان نوشت. برای مثال، بیشتر فونت‌هایی که می‌توانند نویسه‌های ژاپنی را نمایش دهند از یک مجموعه نویسه چندبایتی مشخص استفاده می‌کنند
هر فونت مجموعه نویسه‌های خاص و منحصربه‌فرد خودش را پشتیبانی می‌کند. برای تعیین مجموعه‌های پشتیبانی‌شده با سازنده فونت بررسی کنید
جدول زیر ثابت‌های از پیش‌تعریف‌شده برای مجموعه‌های نویسه استاندارد را فهرست می‌کند

Constant			Value	Description

ANSI_CHARSET		0	نویسه‌های ANSI
DEFAULT_CHARSET		1	فونت فقط بر اساس Name و Size انتخاب می‌شود
SYMBOL_CHARSET		2	مجموعه نماد استاندارد
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++:

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

 

توضیح:

روش SetFont فونت فعلی را برای خروجی متن تنظیم می‌کند. FontStyle شامل صفر یا چند پرچم سبک است و ASize اندازه فونت را تعیین می‌کند

 

هنگام جابه‌جایی بین فونت‌های مختلف، HotPDF وضعیت glyph یونیکد کش‌شده برای فونت قبلی را بازنشانی می‌کند و شناسه‌ها و عرض glyph را برای فونت فعال resolve می‌کند. این برای فونت‌های تعبیه‌شده‌ای مانند Calibri و دیگر فونت‌های TrueType Unicode مهم است

 

برای خروجی تکرارپذیر در همه نمایشگرها، پیش از فراخوانی SetFont، THotPDF.FontEmbedding را فعال کنید و THotPDF.StandardFontEmulation را غیرفعال کنید

 

وقتی FontEmbedding فعال باشد، HotPDF نام PostScript برنامه فونت TrueType تعبیه‌شده را استخراج می‌کند و نام‌های فونت PDF متناظر را می‌نویسد. این کار داده‌های /BaseFont و /FontDescriptor را حتی وقتی نام face ویندوزی پاس‌داده‌شده به SetFont یک alias یا face جایگزین باشد، سازگار نگه می‌دارد

 

نمونه کد

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.

 

همچنین ببینید: TextOut