Teckensnittsreserv och vertikal text
HotPDF kan välja reservtypsnitt efter Unicode-skript, rapportera kodpunkter som förblir olösta och skriva CJK-text genom ett verkligt vertikalt CID-skrivläge
Reservkedjor på dokumentnivå
THotPDF.SetFontFallbackChain lagrar en ordnad typsnittslista för en THPDFFontScript-kategori
THPDFPage.TextOutWithFallback avgör varje Unicode-skalär mot det valda typsnittet, dess skriptkedja och den gemensamma kedjan och skriver därefter ut angränsande skalärer med samma typsnitt som en enda textkörning
- Reservkedjor är dokumentinställningar och förblir tillgängliga över sidor
- Dubblett- och tomma typsnittsnamn tas bort medan anroparens ordning bevaras
- Avsökning av installerade typsnitt avvisar tyst GDI-substitution innan täckning godtas
- Skalärer i det kompletterande planet avkodas från UTF-16-surrogatpar före klassificering
- Varje reservkörning använder det befintliga inbäddade Type0-typsnittet, delmängdskapande,
ToUnicodeoch den gemensamma typsnittssökvägen över sidor - Reservlayouten kontrollerar installerade typsnittsfamiljer med begärd fet och kursiv stil, bevarar alla inställningar för typsnittsstil, teckenuppsättning, storlek och skrivriktning över körningarna och återställer anroparens typsnitt därefter
Åtgärdbar diagnostik
AnalyzeUnresolvedGlyphs utför en skrivskyddad täckningsgranskning, medan TextOutWithFallback registrerar olösta skalärer som påträffas under utmatning
Varje THPDFUnresolvedGlyphInfo inkluderar skalärens kodpunkt, primära typsnitt, klassificerat skript och en semikolonseparerad lista med reservförslag
GetUnresolvedGlyphs returnerar den aktuella dokumentrapporten och ClearUnresolvedGlyphs startar ett nytt rapporteringsintervall
Overloaderna med explicit stil för THotPDF.ResolveFontForCodePoint och THotPDF.AnalyzeUnresolvedGlyphs tar emot TFontStyles så att preflight kan granska samma typsnittsstil som används vid utmatning; de ursprungliga overloaderna granskar fortfarande normalstilen
Textrutor, inbäddad SVG-text och inlästa textutseenden behåller typsnittsfamiljer med stil genom reservlayouten, i stället för att behandla PDF:ens interna typsnittsnamn som systemfamiljer eller växla varje körning till normalstilen
Vertikal CJK-skrivning
THPDFPage.TextOutVertical väljer det aktuella typsnittets vertikala variant och skriver ut en Identity-V-textkörning i stället för att placera varje tecken manuellt
- CID-avkomlingtypsnittet innehåller
/DW2-standardvärden och teckenspecifika/W2-poster - När de finns tillhandahåller OpenType
vheaochvmtxvertikala steg ochVORGtillhandahåller vertikala origoVORG - Typsnitt utan vertikala tabeller använder konfigurerbara standardvärden på 1000 enheters steg och 880 enheters origo
- Med
sfVerticalAlternatesanvänder det längdbevarande GSUB-loppetvrt2när det annonseras och faller i annat fall tillbaka påvertoch bevarar val av skrift och språk - När ett typsnitt utelämnar en skiljeteckensubstitution men mappar Unicode:s vertikala presentationsformer använder kommatecken, punkter, hakparenteser, streck, utellipser och relaterat skiljetecken de glyferna medan
ToUnicode - Befintliga
vert-,vrt2- och vertikala GPOS-funktioner förblir tillgängliga viaShapingFeatures GetVerticalTextAdvancereturnerar steget i användarrymd som behövs för att positionera nästa vertikala körning
Exempel
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;