Yazı Tipi Yedeği ve Dikey Metin
HotPDF, yedek yüzleri Unicode betiğine göre seçebilir, çözümlenemeyen kod noktalarını raporlayabilir ve CJK metnini gerçek bir dikey CID yazma modu üzerinden yazabilir
Belge düzeyi yedek zincirleri
THotPDF.SetFontFallbackChain, bir THPDFFontScript kategorisi için sıralı bir yüz listesi saklar
THPDFPage.TextOutWithFallback, her Unicode skalerini seçilen yüze, onun betik zincirine ve ortak zincere göre çözümler, ardından aynı yüze sahip bitişik skalerleri tek bir metin dizisi olarak yayar
- Yedek zincirleri belge ayarlarıdır ve sayfalar arasında kullanılabilir kalır
- Yinelenen ve boş yüz adları kaldırılırken çağıranın sırası korunur
- Yüklü yüz yoklaması, kapsamı kabul etmeden önce sessiz GDI değiştirmesini reddeder
- Ek düzlem skalerleri, sınıflandırmadan önce UTF-16 vekil çiftlerinden kod çözülür
- Her yedek dizi, var olan gömülü Type0 yazı tipini, alt kümelemeyi,
ToUnicode'u ve paylaşılan sayfalar arası yazı tipi yolunu kullanır - Yedek yerleşimi, istenen kalın ve italik yüzle kurulu font ailelerini denetler, tüm font stili, charset, boyut ve yazma yönü ayarlarını diziler boyunca korur ve sonrasında çağıranın fontunu geri yükler
Eyleme dönük tanılama
AnalyzeUnresolvedGlyphs salt okunur bir kapsam denetimi yaparken TextOutWithFallback çıktı sırasında karşılaşılan çözülemeyen skalerleri kaydeder
Her THPDFUnresolvedGlyphInfo, skaler kod noktasını, birincil yüzü, sınıflandırılan betiği ve noktalı virgülle ayrılmış bir yedek öneri listesini içerir
GetUnresolvedGlyphs geçerli belge raporunu döndürür ve ClearUnresolvedGlyphs yeni bir raporlama aralığı başlatır
THotPDF.ResolveFontForCodePoint ve THotPDF.AnalyzeUnresolvedGlyphs'un açık stil overload'ları TFontStyles kabul eder; böylece preflight, çıktı için kullanılan yüzün aynısını inceleyebilir. Özgün overload'ları regular yüzleri incelemeye devam eder
Metin kutuları, SVG gömülü metinleri ve yüklenen metin görünümleri, yedek yerleşimi boyunca stilli font ailelerini korur; PDF iç font adlarını sistem aileleri saymaz ve her diziyi regular yüze geçirtmez
Dikey CJK yazımı
THPDFPage.TextOutVertical, geçerli yüzün dikey çeşidini seçer ve her karakteri elle konumlandırmak yerine tek bir Identity-V metin dizisi yayar
- CID descendant yazı tipi,
/DW2varsayılanlarını ve glife özgü/W2girdilerini içerir - OpenType
vheavevmtx, dikey ilerlemeleri ve üst yan boşluklarını sağlar; TrueType orijinleri herglyfsınırlayıcı kutusundan türetilir,VORGise yetkili CFF orijin varsayılanlarını ve istisnalarını sağlar - Dikey tabloları olmayan yazı tipleri, yapılandırılabilir 1000 birimlik ilerleme ve 880 birimlik orijin varsayılanlarını kullanır
sfVerticalAlternatesile, uzunluğu koruyan eksiksiz GSUB dizisi duyurulduğundavrt2'yi kullanır, aksi hâldevert'e döner; etkin yazı sistemi ve dil seçimini korur- Bir yazı tipi noktalama ikamesini atlasa bile Unicode dikey sunum biçimlerini eşliyorsa; virgüller, duraklar, parantezler, tireler, üç nokta ve ilgili noktalama bu glifleri kullanır,
ToUnicodeise kaynak metni korur - Dikey
vkrnvevpalGPOS özellikleriShapingFeaturesüzerinden kullanılabilir kalır GetVerticalTextAdvance, bir sonraki dikey diziyi konumlamak için gereken kullanıcı uzayı ilerlemesini döndürür
Örnek
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;