THPDFFontDecoder Kaydı

Font decode fallback zincirinin oluşturduğu, yüklenmiş bir PDF fontu için çözülmüş decode tablolarını ve genişlik metriklerini tutar

Bildirim

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;

Birim

HPDFTextExtraction

Alanlar

AlanAmaç
FontKeyFontu adlandıran /F1 gibi kaynak anahtarı; teşhis için tutulur
SubtypeFont sözlüğü alt türü: Type0, Type1, TrueType, CIDFontType2 ve diğerleri
StrategiesBaşarıyla doldurulan fallback stratejileri kümesi
ToUnicodeMapbfchar ve bfrange girdileriyle ayrıştırılmış /ToUnicode CMap'i; en yüksek öncelik
EncodingMapAyrıştırılmış /Encoding akışı veya adlandırılmış CMap
PredefinedEncodingWinAnsiEncoding gibi önceden tanımlı encoding adı
CIDToGIDIdentityCIDToGIDMap Identity olduğunda ve açık bir tablo gerekmediğinde True olur
CIDToGIDsCID başına bir Word'e genişletilmiş ikili CIDToGIDMap akışı
CIDToUnicodecid2code.txt fallback'inden CID-to-Unicode tablosu
GlyphNameUnicode/Differences kurtarmasının kullandığı 256 girdili glyph-adı-to-Unicode tablosu
GIDToUnicodeGlyph ID'den Unicode'a çevrilmiş gömülü cmap
Widths1/1000 em cinsinden simple-font /Widths ilerlemeleri; kod eksi FirstChar ile indekslenir
FirstCharWidths dizisinin desteklenen ilk karakter kodu
LastCharWidths dizisinin desteklenen son karakter kodu
CIDWidthsCIDFont /W dizisinden CID genişlik aralıkları
CIDDefaultWidth/DW'den varsayılan CID ilerlemesi
CIDVertWidthsCID veya aralık başına [w1y v1x v1y] üçlüsü olarak saklanan dikey /W2 metrikleri
CIDVertDefaultAdvance/DW2 w1y'den varsayılan dikey yer değiştirme; varsayılan -1000
CIDVertDefaultOriginY/DW2 v1y'den varsayılan dikey orijin; varsayılan 880
VerticalWritingWMode 1 metrikleri çözücünün dikey dalını yönlendirdiğinde True olur
AscentFont descriptor metriklerinden okunan font ascent değeri
DescentFont descriptor metriklerinden okunan font descent değeri
HasVerticalMetricsFont için dikey metrikler bulunduğunda True olur
CodeUnitBytesKarakter kodu başına bayt sayısı; font için content interpreter'a bildirilir
OKEn az bir decode stratejisi kullanılabilir olduğunda True olur

Kullanım notları

İlgili API'ler