Fuentes de reserva y texto vertical

HotPDF puede seleccionar tipografías de reserva según script Unicode, informar de los puntos de código que siguen sin resolverse y escribir texto CJK mediante un modo real de escritura CID vertical

Cadenas de respaldo a nivel de documento

THotPDF.SetFontFallbackChain almacena una lista ordenada de faces para una categoría THPDFFontScript

THPDFPage.TextOutWithFallback resuelve cada escalar Unicode contra la face seleccionada, su cadena de scripts y la cadena común, y después emite los escalares adyacentes con la misma face como un único run de texto

Diagnósticos accionables

AnalyzeUnresolvedGlyphs realiza una auditoría de cobertura de solo lectura, mientras que TextOutWithFallback registra los escalares no resueltos encontrados durante la salida

Cada THPDFUnresolvedGlyphInfo incluye el punto de código escalar, la tipografía principal, el script clasificado y una lista de sugerencias de reserva separada por puntos y coma

GetUnresolvedGlyphs devuelve el informe actual del documento y ClearUnresolvedGlyphs inicia un nuevo intervalo de informe

Las sobrecargas de estilo explícito de THotPDF.ResolveFontForCodePoint y THotPDF.AnalyzeUnresolvedGlyphs aceptan TFontStyles, de modo que el preflight puede inspeccionar la misma face usada para la salida; sus sobrecargas originales siguen inspeccionando faces regulares

Los cuadros de texto, el texto incrustado SVG y las apariencias de texto cargado conservan las familias de fuentes con estilo a lo largo de la maquetación de fallback, en lugar de tratar los nombres de fuente internos del PDF como familias del sistema o cambiar cada run a una face regular

Escritura CJK vertical

THPDFPage.TextOutVertical selecciona la variante vertical de la face actual y emite un run de texto Identity-V en lugar de posicionar cada carácter manualmente

Ejemplo

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;

APIs relacionadas