THPDFPage.UnicodeTextOut

THPDFPage

 

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

متنی را که با یک رشته یا buffer یونی‌کد نمایش داده شده نشان می‌دهد

 

این روش برای سازگاری عقب‌رو حفظ شده و با پایپ‌لاین فونت فعلی TextOut مشترک است. وقتی کد موجود از قبل WideString یا bufferهای UTF-16 را پاس می‌دهد از آن استفاده کنید

 

نحو Delphi:

procedure UnicodeTextOut( X, Y: Single; Angle: Extended; Text: PWORD; TextLength: Integer ); overload;

procedure UnicodeTextOut( X, Y: Single; Angle: Extended; Text: WideString ); overload;

 

توضیح:

این روش یک خط متن را چاپ می‌کند که با یک buffer یونی‌کد ( Text: PWORD, TextLength: Integer ) یا رشتهٔ یونی‌کد ( Text: WideString ) از نقطهٔ X, Y با زاویهٔ Angle بر حسب درجه نمایش داده شده است

 

برای فونت‌های یونی‌کد جاسازی‌شده، HotPDF اکنون وقتی فونت تغییر می‌کند وضعیت glyph را تازه می‌کند، شناسه‌های glyph را از فونت فعال Windows resolve می‌کند و دادهٔ ToUnicode متناظر را برای PDF تولیدشده می‌نویسد. این کار رندر بین نمایشگرها را برای فونت‌های جاسازی‌شده‌ای مثل Calibri بهتر می‌کند

 

وقتی فونت فعال ابتدا با RegisterUnicodeTTF بارگذاری شده باشد، نویسه‌های Unicode در planeهای تکمیلی مثل U+1F600 از طریق دادهٔ cmap format 12 فونت resolve می‌شوند و به‌صورت یک CID داخلی در جریان متن صفحه صادر می‌شوند. خروجی صفحه از منبع فونت Type 0 ثبت‌شده دوباره استفاده می‌کند، بنابراین نهایی‌سازی همان وضعیت /CIDToGIDMap، /W فونت فرزند، /ToUnicode و استفاده از subset فونت را که در جریان‌های ظاهر Unicode ‏AcroForm به کار می‌روند تازه می‌کند

 

Tests\Delphi\FontTest یک نمونهٔ مقایسه‌ای عملی برای TextOut و اعتبارسنجی فونت جاسازی‌شده فراهم می‌کند

 

نمونه کد

HPDF.FontEmbedding := true;
HPDF.StandardFontEmulation := false;
HPDF.CurrentPage.SetFont( 'Arial Unicode MS', [], 12, 0, False );
HPDF.CurrentPage.UnicodeTextOut( 40, 100, 0, WideString('Unicode output sample') );