PDFium Delphi Component Docs

FPdfTextShaping واحد

واحد: FPdfTextShaping
متن دوجهتهٔ Unicode را برای TPdf.AddShapedText به ران‌های گلیف بصری شکل‌دهی می‌کند، با اندازه‌های ورودی و خروجی کران‌دار و یک کلاس پایهٔ شکل‌دهندهٔ توسعه‌پذیر

Workflow

APIPurpose
ShapePdfText(Text, FontName, FontSize, Direction, out Shaped)متن را با پیاده‌سازی داخلی Uniscribe ویندوز و کران‌های منابع پیش‌فرض شکل‌دهی می‌کند
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 به ترتیب بصری
TPdfShapedTextText مبدأ، FontName و FontSize منتخب، FontData جاسازی‌شده، Runs شکل‌دهی‌شده، Width کل، GlyphCount و LogicalCharacterCount
TPdfTextShapingOptionsکران‌های منابع Direction، MaxCharacters، MaxGlyphs و MaxRuns
TPdfTextShaperکلاس پایهٔ انتزاعی برای پیاده‌سازی شکل‌دهی فراهم‌شده از سوی فراخوان
TPdfUniscribeTextShaperپیاده‌سازی داخلی ویندوز از 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