مشخص کردن فونت‌های جایگزین برای ارائه‌ها در C++

Overview

Aspose.Slides به شما امکان می‌دهد فونت‌های جایگزین برای رندر و عملیات خروجی ارائه بدهید. فونت‌های جایگزین زمانی استفاده می‌شوند که فونت اصلی گلیف‌های کاراکترهای خاصی را نداشته باشد.

رفتار جایگزینی از طریق قوانین جایگزینی پیکربندی می‌شود. هر قانون یک بازه Unicode را به یک یا چند فونت که ممکن است گلیف‌های مورد نیاز را داشته باشند، مرتبط می‌کند. می‌توانید قوانین را برای بازه‌های کاراکتری مختلف تعریف کنید، فونت‌های جایگزین را به قوانین موجود اضافه یا حذف کنید، و چندین قانون را در یک مجموعه قوانین فونت جایگزین سازماندهی کنید.

قوانین جایگزینی تنظیمات رندر در زمان اجرا هستند. آن‌ها فایل ارائه را تغییر نمی‌دهند و در فایل PPTX ذخیره نمی‌شوند.

Fallback Rules

Aspose.Slides از رابط کاربری IFontFallBackRule و کلاس FontFallBackRule برای تعیین قوانین اعمال فونت جایگزین پشتیبانی می‌کند. کلاس FontFallBackRule رابطه‌ای بین بازه Unicode مشخص‌شده، که برای جستجوی گلیف‌های گمشده استفاده می‌شود، و فهرستی از فونت‌هایی که ممکن است گلیف‌های مناسب را داشته باشند، نشان می‌دهد:

uint32_t startUnicodeIndex = 0x0B80;
uint32_t endUnicodeIndex = 0x0BFF;

auto firstRule = MakeObject<FontFallBackRule>(startUnicodeIndex, endUnicodeIndex, u"Vijaya");
auto secondRule = MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x3040), static_cast<uint32_t>(0x309F), u"MS Mincho, MS Gothic");

// با استفاده از روش‌های مختلف می‌توانید فهرست فونت‌ها را اضافه کنید:
auto fontNames = MakeArray<String>({ u"Segoe UI Emoji, Segoe UI Symbol", u"Arial" });

auto thirdRule = MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x1F300), static_cast<uint32_t>(0x1F64F), fontNames);

همچنین می‌توانید با استفاده از متد Remove() فونت جایگزین را حذف کنید یا با متد AddFallBackFonts() به شیء FontFallBackRule موجود اضافه کنید.

با استفاده از FontFallBackRulesCollection می‌توانید فهرستی از اشیاء FontFallBackRule را سازماندهی کنید، زمانی که نیاز به تعیین قوانین جایگزینی فونت برای چندین بازه Unicode دارید.

FAQ

فرق بین فونت جایگزین، جایگزینی فونت و جاسازی فونت چیست؟

فونت جایگزین تنها برای کاراکترهای گم‌شده در فونت اصلی استفاده می‌شود. جایگزینی فونت کل فونت مشخص‌شده را با فونت دیگری عوض می‌کند. جاسازی فونت فونت‌ها را داخل فایل خروجی بسته‌بندی می‌کند تا دریافت‌کنندگان متن را همان‌گونه که قصد شده است مشاهده کنند.

آیا فونت‌های جایگزین فقط در رندر روی صفحه نمایش اعمال می‌شوند یا در خروجی‌هایی مانند PDF، PNG یا SVG نیز عمل می‌کنند؟

بله. فونت جایگزین بر تمام عملیات رندر و خروجی که در آن‌ها کاراکترها باید رسم شوند ولی در فونت منبع وجود ندارند، تأثیر می‌گذارد.

آیا پیکربندی فونت جایگزین فایل ارائه را تغییر می‌دهد و آیا این تنظیم برای بازهای آینده حفظ می‌شود؟

خیر. قوانین جایگزینی تنظیمات رندر زمان اجرا در کد شما هستند؛ آن‌ها داخل فایل .pptx ذخیره نمی‌شوند و در PowerPoint نشان داده نمی‌شوند.

آیا سیستم‌عامل (Windows/Linux/macOS) و مجموعه مسیرهای فونت بر انتخاب فونت جایگزین تأثیر می‌گذارد؟

بله. موتور فونت‌ها را از پوشه‌های سیستم موجود و هر مسیر اضافی که شما فراهم می‌کنید، بازیابی می‌کند. اگر یک فونت به صورت فیزیکی موجود نباشد، قانونی که به آن ارجاع می‌دهد نمی‌تواند اعمال شود.

آیا فونت جایگزین برای WordArt، SmartArt و نمودارها کار می‌کند؟

بله. وقتی این اشیاء شامل متن شوند، همان مکانیزم جایگزینی گلیف برای رندر کاراکترهای گمشده اعمال می‌شود.