THPDFFontDecoder Record

Holder de løste afkodningstabeller og bredde-metrics for én indlæst PDF-font, bygget af fontens afkodnings-fallback-kæde

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;

Enhed

HPDFTextExtraction

Felter

FeltFormål
FontKeyRessourcenøgle såsom /F1, der navngiver fonten, gemt til diagnostik
SubtypeFontordbogens subtype: Type0, Type1, TrueType, CIDFontType2 og venner
StrategiesSæt af fallback-strategier, der blev udfyldt med succes
ToUnicodeMapParset /ToUnicode-CMap med bfchar- og bfrange-poster, højeste prioritet
EncodingMapParset /Encoding-strøm eller navngivet CMap
PredefinedEncodingNavn på foruddefineret kodning såsom WinAnsiEncoding
CIDToGIDIdentityTrue, når CIDToGIDMap er Identity, og ingen eksplicit tabel er nødvendig
CIDToGIDsBinær CIDToGIDMap-strøm udvidet til ét Word pr. CID
CIDToUnicodeCID-til-Unicode-tabel fra cid2code.txt-fallbacken
GlyphNameUnicodeGlyph-navne-til-Unicode-tabel med 256 indgange, brugt af /Differences-gendannelse
GIDToUnicodeIndlejret cmap vendt om fra glyph-id til Unicode
WidthsSimple-font /Widths-fremrykninger i 1/1000 em, indekseret efter kode minus FirstChar
FirstCharFørste understøttede tegnkode i Widths-arrayet
LastCharSidste understøttede tegnkode i Widths-arrayet
CIDWidthsCID-breddeintervaller fra CIDFont /W-arrayet
CIDDefaultWidthStandard CID-fremrykning fra /DW
CIDVertWidthsVertikale /W2-metrics gemt som [w1y v1x v1y]-tripler pr. CID eller interval
CIDVertDefaultAdvanceStandard lodret forskydning fra /DW2 w1y, som standard -1000
CIDVertDefaultOriginYStandard lodret origo fra /DW2 v1y, som standard 880
VerticalWritingTrue, når WMode 1-metrics styrer opløserens vertikale gren
AscentFontens ascent læst fra fontbeskrivelsens metrics
DescentFontens descent læst fra fontbeskrivelsens metrics
HasVerticalMetricsTrue, når der blev fundet vertikale metrics til fonten
CodeUnitBytesBytes pr. tegnkode, besvaret til indholdsfortolkeren for fonten
OKTrue, når mindst én afkodestrategi er brugbar

Brugsnoter

Relaterede API'er