THPDFFontDecoder Record

Guarda as tabelas de decodificação resolvidas e as métricas de largura de uma fonte PDF carregada, construído pela cadeia de fallback de decodificação de fontes

Declaração

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;

Unidade

HPDFTextExtraction

Campos

CampoFinalidade
FontKeyChave de recurso como /F1 que nomeia a fonte, mantida para diagnósticos
SubtypeSubtipo do dicionário de fonte: Type0, Type1, TrueType, CIDFontType2 e afins
StrategiesConjunto de estratégias de fallback que foram populadas com sucesso
ToUnicodeMapCMap /ToUnicode interpretado, com entradas bfchar e bfrange, prioridade máxima
EncodingMapStream /Encoding interpretado ou CMap nomeado
PredefinedEncodingNome de encoding predefinido como WinAnsiEncoding
CIDToGIDIdentityTrue quando o CIDToGIDMap é Identity e nenhuma tabela explícita é necessária
CIDToGIDsStream binário CIDToGIDMap expandido para um Word por CID
CIDToUnicodeTabela de CID para Unicode do fallback cid2code.txt
GlyphNameUnicodeTabela de nomes de glyph para Unicode com 256 entradas, usada pela recuperação de /Differences
GIDToUnicodecmap embutido invertido, de glyph ID para Unicode
WidthsAvanços /Widths de fonte simples em 1/1000 em, indexados pelo código menos FirstChar
FirstCharPrimeiro código de caractere suportado do array Widths
LastCharÚltimo código de caractere suportado do array Widths
CIDWidthsFaixas de largura CID do array /W do CIDFont
CIDDefaultWidthAvanço CID padrão, de /DW
CIDVertWidthsMétricas verticais /W2 armazenadas como triplas [w1y v1x v1y] por CID ou faixa
CIDVertDefaultAdvanceDeslocamento vertical padrão do w1y de /DW2, -1000 por padrão
CIDVertDefaultOriginYOrigem vertical padrão do v1y de /DW2, 880 por padrão
VerticalWritingTrue quando métricas WMode 1 habilitam o ramo vertical do resolver
AscentAscent da fonte lido das métricas do font descriptor
DescentDescent da fonte lido das métricas do font descriptor
HasVerticalMetricsTrue quando métricas verticais foram encontradas para a fonte
CodeUnitBytesBytes por código de caractere, respondido ao interpretador de conteúdo para a fonte
OKTrue quando pelo menos uma estratégia de decodificação é utilizável

Notas de uso

APIs relacionadas