PDFium Delphi Component Docs

מתודת AddCidType2Text

Component: TPdf  ·  Unit: PDFium

Syntax

function AddCidType2Text(const FontData: TBytes; const Glyphs: TPdfCidGlyphs; FontSize: Single; X, Y: Double; const Options: TPdfCidFontOptions; out Report: TPdfCidFontReport; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean;

Description

טוען נתוני TrueType או TrueType Collection שמספק הקורא דרך טוען הגופנים המקורי (native) של CID Type 2 ב-PDFium, ומצרף אובייקט טקסט ממוקם אחד או יותר אל העמוד הפעיל

כל TPdfCidGlyph מספק מזהה glyph מקורי, טקסט Unicode, advance, והיסט אופקי או אנכי אופציונלי

CIDs עוקבים מבודדים מופעי glyph חוזרים, כך שאותו מזהה glyph יכול לשאת מיפויי Unicode cluster שונים

Embedding and subsetting

pcfemFull מטמיע את הגופן הנבחר במלואו, pcfemSubsetPreferred מנסה subset לפי רשימת glyphs ונסוג אל הגופן המלא, ו-pcfemSubsetRequired דוחה את הפעולה אם אין אפשרות להפיק subset בטוח

Subsetting תמיד שומר על glyph אפס, דוחה פלט שיגדיל את הגופן, ומאמת שכל GID מקורי מבוקש עדיין קיים לפני שהנתונים מגיעים אל PDFium

TTCIndex בוחר חבר בתוך TrueType Collection וחייב להישאר אפס עבור גופן עצמאי

Unicode and verification

‏ToUnicode CMap שנוצר ממפה כל CID עוקב אל ה-UnicodeText שסופק, כולל מיפויי ligature בני מספר יחידות קוד ומיפויי מישור משלים (supplementary plane)

מיפוי ריק הופך אל U+200B כדי שכל CID יישאר ניתן לחילוץ ולצפייה

כאשר VerifyExtraction מופעל, המתודה פותחת מחדש את מודל הטקסט של העמוד, קוראת רק את האובייקטים שהוכנסו, משווה את התוצאה אל ExpectedText, ומבצעת rollback לכל האובייקטים שהוכנסו במקרה של אי-התאמה

Options and report

TPdfCidFontOptions.Default בוחר pcfemSubsetPreferred בתור EmbeddingMode, מאמת חילוץ, מגביל את נתוני הגופן אל 64 MiB, את מופעי ה-glyph אל 65,534, ואת MaxUnicodeCharacters אל 1,048,576 יחידות קוד Unicode ממופות

TPdfCidFontReport רושם את ספירת ה-glyphs הכוללת ואת UniqueGlyphCount,‏ את OriginalFontBytes ו-EmbeddedFontBytes,‏ את SubsetAttempted,‏ SubsetApplied,‏ UsedFullFontFallback,‏ SubsetErrorCode ו-FontEmbedded,‏ את הטקסט הצפוי והטקסט שחולץ, ואת ExtractionMatches

Atomicity and performance

מיקומי ה-glyphs נוצרים בזמן ליניארי, ו-glyphs החולקים קו בסיס (baseline) אחד נפלטים כאובייקט טקסט מקורי אחד

היסטים אנכיים שונים משתמשים באובייקטי טקסט מבודדים תוך שמירה על סדר האובייקטים הלוגי

האימות וה-subsetting מסתיימים לפני ההכנסה, וכל כשל מקורי (native) מאוחר יותר מסיר כל אובייקט שהקריאה הוסיפה לפני שתוכן העמוד נוצר מחדש

See Also

BuildToUnicodeCMap, AddShapedText, AddText, GetStructuredText