Font Fallback and Vertical Text

HotPDF dapat memilih face fallback berdasarkan skrip Unicode, melaporkan titik kode yang tetap belum terpecahkan, dan menulis teks CJK melalui mode penulisan CID vertikal yang nyata

Rantai fallback tingkat dokumen

THotPDF.SetFontFallbackChain menyimpan daftar face terurut untuk satu kategori THPDFFontScript

THPDFPage.TextOutWithFallback menyelesaikan setiap skalar Unicode terhadap face yang dipilih, rantai skripnya, dan rantai umum, lalu memancarkan skalar yang berdekatan dengan face yang sama sebagai satu run teks

Diagnostik yang dapat ditindaklanjuti

AnalyzeUnresolvedGlyphs melakukan audit cakupan hanya-baca, sementara TextOutWithFallback mencatat skalar yang belum terpecahkan yang ditemui selama keluaran

Setiap THPDFUnresolvedGlyphInfo menyertakan titik kode skalar, face utama, skrip yang diklasifikasikan, dan daftar saran fallback yang dipisahkan titik koma

GetUnresolvedGlyphs mengembalikan laporan dokumen saat ini dan ClearUnresolvedGlyphs memulai interval pelaporan baru

Overload gaya eksplisit milik THotPDF.ResolveFontForCodePoint dan THotPDF.AnalyzeUnresolvedGlyphs menerima TFontStyles sehingga preflight dapat memeriksa face yang sama dengan yang dipakai saat output; overload aslinya tetap memeriksa face regular

Text box, teks yang di-embed SVG, dan appearance teks yang dimuat mempertahankan family font bergaya melalui tata letak fallback, alih-alih memperlakukan nama font internal PDF sebagai family sistem atau mengubah setiap run ke face regular

Penulisan CJK vertikal

THPDFPage.TextOutVertical memilih varian vertikal face saat ini dan memancarkan satu run teks Identity-V alih-alih memosisikan setiap karakter secara manual

Contoh

PDF.SetFontFallbackChain(hfsCJK,
  ['Microsoft YaHei UI', 'Yu Gothic UI', 'Malgun Gothic']);
PDF.SetFontFallbackChain(hfsEmoji, ['Segoe UI Emoji']);

PDF.CurrentPage.SetFont('Arial', [], 12);
PDF.CurrentPage.TextOutWithFallback(72, 72, 0, Text);

PDF.CurrentPage.SetFont('Yu Gothic UI', [], 14);
PDF.CurrentPage.TextOutVertical(420, 72, VerticalText);

Missing := PDF.GetUnresolvedGlyphs;

API terkait