Font Fallback and Vertical Text

HotPDF gali parinkti atsarginius šriftus pagal Unicode raštą, pranešti neišspręstus kodo taškus ir rašyti CJK tekstą tikrujam vertikaliam CID rašymo režimui

Dokumento lygio atsarginės grandinės

THotPDF.SetFontFallbackChain saugo surikiuotąjį šriftų atmainų sąrašą vienai THPDFFontScript kategorijai

THPDFPage.TextOutWithFallback kiekvieną Unicode skaliarą išspręndžia pagal pasirinktąją šriftų atmainą, jos rašto grandinę ir bendrąją grandinę, tada gretimus skaliarus su ta pačia atmaina išduoda kaip vieną teksto atkarpą

Veiksminga diagnostika

AnalyzeUnresolvedGlyphs atlieka tik skaitomąją aprėpties auditą, o TextOutWithFallback užfiksuoja išvesties metu sutiktus neišspręstus kodo taškus

Kiekvienas THPDFUnresolvedGlyphInfo apima kodo tašką, pagrindinį šriftą (face), klasifikuotąjį raštą ir kabliataškiu atskirtą atsarginių šriftų pasiūlymų sąrašą

GetUnresolvedGlyphs grąžina dabartinę dokumento ataskaitą, o ClearUnresolvedGlyphs pradeda naują ataskaitų intervalą

Aiškaus stiliaus THotPDF.ResolveFontForCodePoint ir THotPDF.AnalyzeUnresolvedGlyphs perkravos priima TFontStyles, kad patikra galėtų apžiūrėti tą patį atvaizdą, kuris naudotas išvedimui; jų originaliosios perkravos toliau tikrina įprastus atvaizdus

Teksto langeliai, SVG įterptasis tekstas ir įkeltos teksto išvaizdos atsarginės išdėstytojos metu išlaiko stilizuotąsias šriftų šeimas, vietoj to, kad PDF vidinius šriftų vardus laikytų sistemingomis šeimomis arba kiekvieną atkarpą pakeistų įprastuoju atvaizdu

Vertikalusis CJK rašymas

THPDFPage.TextOutVertical pasirenka dabartinio šrifto (face) vertikalųjį variantą ir išveda vieną Identity-V teksto atkarpą, vietoj to, kad kiekvieną simbolį dėliotų rankomis

Pavyzdys

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;

Susijusios API