THPDFFontDecoder Record

جدول‌های رمزگشایی حل‌شده و سنجه‌های پهنا را برای یک فونت PDF بارگذاری‌شده نگه می‌دارد و توسط زنجیرهٔ جایگزین رمزگشایی فونت ساخته می‌شود

اعلان

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;

واحد

HPDFTextExtraction

فیلدها

فیلدهدف
FontKeyکلید منبعی مانند /F1 که فونت را نام می‌برد و برای تشخیص نگه داشته می‌شود
Subtypeزیرنوع دیکشنری فونت: Type0، Type1، TrueType، CIDFontType2 و مشابه‌ها
Strategiesمجموعهٔ راهبردهای جایگزینی که با موفقیت پر شده‌اند
ToUnicodeMapCMap تجزیه‌شدهٔ /ToUnicode با مدخل‌های bfchar و bfrange؛ بالاترین اولویت
EncodingMapاستریم /Encoding تجزیه‌شده یا CMap نام‌دار
PredefinedEncodingنام انکودینگ از پیش تعریف‌شده، مانند WinAnsiEncoding
CIDToGIDIdentityTrue وقتی CIDToGIDMap از نوع Identity باشد و به جدول صریحی نیاز نباشد
CIDToGIDsاستریم باینری CIDToGIDMap گسترش‌یافته به یک Word به ازای هر CID
CIDToUnicodeجدول CID به Unicode از جایگزین cid2code.txt
GlyphNameUnicodeجدول نام‌گلیف به Unicode با 256 مدخل که بازیابی /Differences به کار می‌برد
GIDToUnicodecmap جاسازی‌شده وارونه‌شده از glyph ID به Unicode
Widthsپیشروی‌های /Widths فونت ساده بر حسب 1/1000 em، اندیس‌گذاری‌شده با کد منهای FirstChar
FirstCharنخستین کد نویسهٔ پشتیبانی‌شده در آرایهٔ Widths
LastCharآخرین کد نویسهٔ پشتیبانی‌شده در آرایهٔ Widths
CIDWidthsبازه‌های پهنای CID از آرایهٔ /W مربوط به CIDFont
CIDDefaultWidthپیشروی پیش‌فرض CID از /DW
CIDVertWidthsسنجه‌های عمودی /W2 ذخیره‌شده به‌صورت سه‌تایی‌های [w1y v1x v1y] به ازای هر CID یا بازه
CIDVertDefaultAdvanceجابه‌جایی عمودی پیش‌فرض از w1y مربوط به /DW2؛ به‌طور پیش‌فرض -1000
CIDVertDefaultOriginYمبدأ عمودی پیش‌فرض از v1y مربوط به /DW2؛ به‌طور پیش‌فرض 880
VerticalWritingTrue وقتی سنجه‌های WMode 1 شاخهٔ عمودی resolver را کنترل می‌کنند
Ascentصعود فونت خوانده‌شده از سنجه‌های توصیفگر فونت
Descentنزول فونت خوانده‌شده از سنجه‌های توصیفگر فونت
HasVerticalMetricsTrue وقتی برای فونت سنجه‌های عمودی یافت شده باشد
CodeUnitBytesبایت به ازای هر کد نویسه، که به مفسر محتوا برای این فونت پاس داده می‌شود
OKTrue وقتی دست‌کم یک راهبرد رمزگشایی قابل استفاده باشد

یادداشت‌های استفاده

APIهای مرتبط