PDFium Delphi Component Docs

יחידת FPdfTextShaping

Unit: FPdfTextShaping
מעצב טקסט Unicode דו-כיווני לריצות גליפים ויזואליות עבור TPdf.AddShapedText, עם גדלים תחומים של קלט ופלט ומחלקת בסיס ניתנת להרחבה למעצבי טקסט

Workflow

APIPurpose
ShapePdfText(Text, FontName, FontSize, Direction, out Shaped)מעצב טקסט באמצעות מימוש Uniscribe המובנה של Windows ומגבלות המשאבים של ברירת המחדל
TPdfTextShaper.Shapeחוזה עיצוב מופשט למנועים מותאמים, שמחזירים מזהי גליפים, אשכולות, ריצות ויזואליות, התקדמויות ונתוני הגופן הנבחר
TPdfUniscribeTextShaper.Shapeמשתמש ב-usp10.dll לפיצול לפריטים, עיצוב, מיקום וסידור ויזואלי מחדש של ריצות טקסט
TPdfTextShapingOptions.Defaultמחזיר כיוון אוטומטי עם מגבלות של 1,000,000 תווים, ‏2,000,000 גליפים ו-100,000 ריצות
ConfigureTextShaper(Shaper)מתקין את עורף העיצוב שבו היחידה משתמשת ומחליף את המובנה עד סוף התהליך; היחידה מקבלת בעלות על המופע
ClearTextShaperמסיר עורף מותקן וחוזר לברירת המחדל של הפלטפורמה
ActiveTextShaperהעורף שנמצא בשימוש כרגע, או nil כאשר אין מעצב זמין בפלטפורמה הזו
ActiveTextShaperNameהשם שהעורף הפעיל מדווח על עצמו, לצורכי לוגים ולהבחנה בין פריסות

Public types

TypeDescription
EPdfTextShapingErrorחריגה שנזרקת עבור קלט לא תקין, חריגה ממגבלות משאבים, כשלי נתוני גופן או שגיאות של מנוע העיצוב
TPdfTextDirectionptdAuto, ‏ptdLeftToRight או ptdRightToLeft
TPdfShapedGlyphגליף אחד עם GlyphID,‏ Advance,‏ OffsetX,‏ OffsetY,‏ ClusterStart ו-ClusterLength
TPdfShapedGlyphsמערך דינמי של רשומות TPdfShapedGlyph
TPdfShapedRunריצה ויזואלית אחת עם TextStart,‏ TextLength,‏ VisualX,‏ Width,‏ BidiLevel,‏ IsRightToLeft ו-Glyphs
TPdfShapedRunsמערך דינמי של רשומות TPdfShapedRun בסדר ויזואלי
TPdfShapedTextה-Text המקורי, ה-FontName וה-FontSize שנבחרו, ‏FontData מוטמע, ‏Runs מעוצבים, ‏Width הכולל, ‏GlyphCount ו-LogicalCharacterCount
TPdfTextShapingOptionsמגבלות המשאבים Direction,‏ MaxCharacters,‏ MaxGlyphs ו-MaxRuns
TPdfTextShaperמחלקת בסיס מופשטת למימוש עיצוב שהקורא מספק
TPdfUniscribeTextShaperהמימוש המובנה של Windows עבור TPdfTextShaper

Remarks

Example

var
  Shaped: TPdfShapedText;
  MeasuredWidth: Single;
begin
  if ShapePdfText(Text, 'Segoe UI', 12, ptdAuto, Shaped) then
    MeasuredWidth := Shaped.Width;
end;

See Also

TPdf.AddShapedText