THPDFFontDecoder Record

Innehåller de uppslagna avkodningstabellerna och breddmetrikerna för ett inläst PDF-typsnitt, byggda av typsnittets avkodningsfallbackkedja

Deklaration

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;

Enhet

HPDFTextExtraction

Fält

FältSyfte
FontKeyResursnyckel som /F1 som namnger typsnittet, behållet för diagnostik
SubtypeTypsnittsordbokens subtype: Type0, Type1, TrueType, CIDFontType2 och liknande
StrategiesMängd med fallback-strategier som kunde fyllas
ToUnicodeMapTolkad /ToUnicode-CMap med bfchar- och bfrange-poster, högsta prioritet
EncodingMapTolkad /Encoding-ström eller namngiven CMap
PredefinedEncodingFördefinierat kodningsnamn som WinAnsiEncoding
CIDToGIDIdentityTrue när CIDToGIDMap är Identity och ingen explicit tabell behövs
CIDToGIDsBinär CIDToGIDMap-ström expanderad till en Word per CID
CIDToUnicodeCID-till-Unicode-tabell från fallbacken cid2code.txt
GlyphNameUnicodeGlyfnamn-till-Unicode-tabell med 256 poster, använd av /Differences-återställningen
GIDToUnicodeInbäddad cmap omvänd från glyph-ID till Unicode
WidthsBredder från simple-font-/Widths, i 1/1000 em, indexerade med koden minus FirstChar
FirstCharFörsta stödda teckenkoden i Widths-matrisen
LastCharSista stödda teckenkoden i Widths-matrisen
CIDWidthsCID-breddintervall från CIDFont-/W-matrisen
CIDDefaultWidthStandard-CID-bredd från /DW
CIDVertWidthsVertikala /W2-metriker lagrade som [w1y v1x v1y]-tripplar per CID eller intervall
CIDVertDefaultAdvanceStandard vertikalförskjutning från /DW2 w1y, -1000 som standard
CIDVertDefaultOriginYStandard vertikal origo från /DW2 v1y, 880 som standard
VerticalWritingTrue när WMode 1-metriker styr lösarens vertikala gren
AscentTypsnittets ascent, läst från typsnittsdescriptorns metriker
DescentTypsnittets descent, läst från typsnittsdescriptorns metriker
HasVerticalMetricsTrue när vertikala metriker hittades för typsnittet
CodeUnitBytesByte per teckenkod, som besvaras åt innehållstolken för detta typsnitt
OKTrue när minst en avkodningsstrategi är användbar

Användningsanteckningar

Relaterade API:er