PDFium Delphi Component Docs

FPdfTextShaping الوحدة

الوحدة: FPdfTextShaping
يشكِّل نص Unicode ثنائي الاتجاه إلى مقاطع محارف بصرية لـ TPdf.AddShapedText، مع حدود على أحجام الإدخال والإخراج وفئة أساسية قابلة للتوسعة للمُشكِّلات

سير العمل

الواجهةالغرض
ShapePdfText(Text, FontName, FontSize, Direction, out Shaped)يشكِّل النص عبر تنفيذ Uniscribe المدمج في Windows وبحدود الموارد الافتراضية
TPdfTextShaper.Shapeعقد تشكيل تجريدي لمحركات مخصصة تعيد معرِّفات المحارف والعناقيد والمقاطع البصرية والتقدمات وبيانات الخط المختار
TPdfUniscribeTextShaper.Shapeيستخدم usp10.dll لتقسيم مقاطع النص إلى عناصر وتشكيلها وتموضعها وإعادة ترتيبها بصريًا
TPdfTextShapingOptions.Defaultيعيد الاتجاه التلقائي مع حدود تبلغ 1,000,000 محرف و 2,000,000 glyph و 100,000 مقطع
ConfigureTextShaper(Shaper)يثبّت خلفية التشكيل التي تستخدمها الوحدة مستبدلًا المدمجة لبقية عمر العملية؛ وتتولى الوحدة ملكية النسخة
ClearTextShaperيزيل خلفية مثبتة ويعود إلى الافتراضي للمنصة
ActiveTextShaperالخلفية المستخدمة حاليًا، أو nil عندما لا يتوفر مُشكِّل على هذه المنصة
ActiveTextShaperNameالاسم الذي تُبلِّغ عنه الخلفية النشطة، لأغراض التسجيل وللتمييز بين نشرين مختلفين

الأنواع العامة

النوعالوصف
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

ملاحظات

مثال

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

انظر أيضًا

TPdf.AddShapedText