Registro THPDFFontDecoder

Contiene las tablas de decodificación resueltas y las métricas de anchura de una fuente PDF cargada, construidas por la cadena de alternativas de decodificación de fuentes

Declaración

THPDFFontDecoder= record
  FontKey: AnsiString;             // resource key (e.g. /F1) for diagnostics
  Subtype: AnsiString;             // Type0, Type1, TrueType, CIDFontType2
  Strategies: THPDFFontStrategies; // which fallbacks are populated
  ToUnicodeMap: THPDFCMapParseResult;
  EncodingMap: THPDFCMapParseResult;        // /Encoding stream or named CMap
  PredefinedEncoding: AnsiString;           // 'WinAnsiEncoding' etc
  CIDToGIDIdentity: boolean;
  CIDToGIDs: array of Word;                 // binary CIDToGIDMap stream
  CIDToUnicode: THPDFCIDToUnicodeTable;     // cid2code.txt fallback
  GlyphNameUnicode: array[0.. 255] of Cardinal;
  GIDToUnicode: THPDFUnicodeByGID;
  // v2.505.0 simple-font /Widths (PDF 1.7 9.6.3 Table 111). Index =
  // (code - FirstChar); values are 1/1000-em glyph advances. Empty when
  // the font has no /Widths array (the interpreter falls back to 0.5*fs)
  Widths: array of Double;
  FirstChar: Integer;
  LastChar: Integer;
  CIDWidths: THPDFCIDWidthRanges;
  CIDDefaultWidth: Double;
  // Vertical (WMode 1) counterparts from the descendant CIDFont /W2 and
  // /DW2 (ISO 32000-1 9.7.4.3). Each /W2 metric is a [w1y v1x v1y]
  // triple: w1y is the displacement along the writing axis, v1x/v1y the
  // position vector from the glyph's horizontal origin to its vertical
  // origin. A range entry (cFirst cLast w1y v1x v1y) stores one triple;
  // a list entry (c [w1y v1x v1y ...]) stores one triple per CID from
  // FirstCID to LastCID. VerticalWriting gates the resolver's vertical
  // branch
  CIDVertWidths: THPDFCIDWidthRanges;
  CIDVertDefaultAdvance: Double;       // /DW2 w1y (second entry); default -1000
  CIDVertDefaultOriginY: Double;       // /DW2 v1y (first entry); default 880
  VerticalWriting: boolean;
  Ascent: Double;
  Descent: Double;
  HasVerticalMetrics: boolean;
  CodeUnitBytes: Integer;                    // bytes per char code
  OK: boolean;
end;

Unidad

HPDFTextExtraction

Campos

CampoPropósito
FontKeyClave de recurso como /F1 que nombra la fuente, conservada para diagnósticos
SubtypeSubtipo del diccionario de fuente: Type0, Type1, TrueType, CIDFontType2 y afines
StrategiesConjunto de estrategias alternativas que se rellenaron con éxito
ToUnicodeMapCMap /ToUnicode analizado con entradas bfchar y bfrange, el de mayor prioridad
EncodingMapFlujo /Encoding analizado o CMap nombrado
PredefinedEncodingNombre de codificación predefinida como WinAnsiEncoding
CIDToGIDIdentityTrue cuando el CIDToGIDMap es Identity y no hace falta una tabla explícita
CIDToGIDsFlujo binario CIDToGIDMap expandido a un Word por CID
CIDToUnicodeTabla de CID a Unicode de la alternativa cid2code.txt
GlyphNameUnicodeTabla de 256 entradas de nombre de glifo a Unicode usada por la recuperación de /Differences
GIDToUnicodecmap incrustado invertido, de ID de glifo a Unicode
WidthsAvances /Widths de fuente simple en 1/1000 de em, indexados por código menos FirstChar
FirstCharPrimer código de carácter admitido del array Widths
LastCharÚltimo código de carácter admitido del array Widths
CIDWidthsRangos de anchuras CID del array /W de la CIDFont
CIDDefaultWidthAvance CID por defecto tomado de /DW
CIDVertWidthsMétricas verticales /W2 guardadas como tripletas [w1y v1x v1y] por CID o por rango
CIDVertDefaultAdvanceDesplazamiento vertical por defecto del w1y de /DW2, -1000 por defecto
CIDVertDefaultOriginYOrigen vertical por defecto del v1y de /DW2, 880 por defecto
VerticalWritingTrue cuando las métricas WMode 1 habilitan la rama vertical del resolvedor
AscentAscendente de la fuente leído de las métricas del descriptor de fuente
DescentDescendente de la fuente leído de las métricas del descriptor de fuente
HasVerticalMetricsTrue cuando se encontraron métricas verticales para la fuente
CodeUnitBytesBytes por código de carácter, dato que se responde al intérprete de contenido para la fuente
OKTrue cuando al menos una estrategia de decodificación es utilizable

Notas de uso

APIs relacionadas