پیکربندی جایگزینی فونت در ارائه‌ها با استفاده از Java

نمای کلی

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

Aspose.Slides همچنین امکان تعریف قوانین جایگزینی فونت را می‌دهد. به عنوان مثال، می‌توانید مشخص کنید که یک فونت غیرقابل دسترسی باید با فونت موجود دیگری جایگزین شود و سپس این قوانین را از طریق مدیر فونت‌های ارائه اعمال کنید.

تنظیم قوانین جایگزینی فونت

با Aspose.Slides می‌توانید قوانین برای فونت‌ها تنظیم کنید که در شرایط خاص (مثلاً وقتی یک فونت قابل دسترسی نیست) مشخص می‌کند چه کاری باید انجام شود، به این صورت:

  1. ارائهٔ مرتبط را بارگذاری کنید.
  2. فونتی که قرار است جایگزین شود را بارگذاری کنید.
  3. فونت جدید را بارگذاری کنید.
  4. قاعده‌ای برای جایگزینی اضافه کنید.
  5. قانون را به مجموعهٔ قوانین جایگزینی فونت ارائه اضافه کنید.
  6. تصویر اسلاید را ایجاد کنید تا اثر را مشاهده کنید.

این کد Java فرآیند جایگزینی فونت را نشان می‌دهد:

// ارائه‌ای را بارگذاری می‌کند
Presentation pres = new Presentation("Fonts.pptx");
try {
    // فونت منبعی که قرار است جایگزین شود را بارگذاری می‌کند
    IFontData sourceFont = new FontData("SomeRareFont");
    
    // فونت جدید را بارگذاری می‌کند
    IFontData destFont = new FontData("Arial");
    
    // قانونی برای جایگزینی فونت اضافه می‌کند
    IFontSubstRule fontSubstRule = new FontSubstRule(sourceFont, destFont, FontSubstCondition.WhenInaccessible);
    
    // قانون را به مجموعه قوانین جایگزینی فونت اضافه می‌کند
    IFontSubstRuleCollection fontSubstRuleCollection = new FontSubstRuleCollection();
    fontSubstRuleCollection.add(fontSubstRule);
    
    // مجموعه قوانین فونت را به فهرست قوانین اضافه می‌کند
    pres.getFontsManager().setFontSubstRuleList(fontSubstRuleCollection);
    
    // فونت Arial به جای SomeRareFont استفاده خواهد شد زمانی که فونت دوم در دسترس نباشد
    IImage slideImage = pres.getSlides().get_Item(0).getImage(1f, 1f);
    
    // تصویر را به‌صورت JPEG در دیسک ذخیره می‌کند
    try {
          slideImage.save("Thumbnail_out.jpg", ImageFormat.Jpeg);
    } finally {
         if (slideImage != null) slideImage.dispose();
    }
} finally {
    if (pres != null) pres.dispose();
}

محدودیت‌های فونت‌های معادلات ریاضی

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

اما معادلات ریاضی Office محدودیت مهمی دارند. اگر معادله‌ای با Cambria Math ایجاد شده باشد، Aspose.Slides ممکن است همچنان برای محاسبه و رندر صحیح طرح‌بندی معادله به فونت اصلی Cambria Math نیاز داشته باشد. به همین دلیل، جایگزینی Cambria Math با فونت ریاضی دیگری مانند STIX Two Math برای رندر معادله پشتیبانی نمی‌شود و ممکن است همچنان استثنایی نشان دهد که Cambria Math مورد نیاز است.

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

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

پرسش‌های متداول

تفاوت بین جایگزینی فونت و جایگزینی (substitution) فونت چیست؟

جایگزینی یک بازنویسی اجباری یک فونت با فونت دیگر در سراسر ارائه است. جایگزینی (substitution) قانونی است که تحت شرط خاصی فعال می‌شود، برای مثال زمانی که فونت اصلی در دسترس نیست، و سپس یک فونت پیش‌فرض تعیین‌شده استفاده می‌شود.

قوانین جایگزینی دقیقاً چه زمانی اعمال می‌شوند؟

قوانین در توالی استاندارد انتخاب فونت شرکت می‌کنند که در زمان بارگذاری، رندر و تبدیل ارزیابی می‌شود؛ اگر فونت انتخاب‌شده در دسترس نباشد، جایگزینی یا جایگزینی (substitution) اعمال می‌شود.

اگر نه جایگزینی و نه جایگزینی (substitution) تنظیم نشده باشد و فونت در سیستم موجود نباشد، رفتار پیش‌فرض چیست؟

کتابخانه سعی می‌کند نزدیک‌ترین فونت موجود در سیستم را انتخاب کند، مشابه رفتاری که PowerPoint اتخاذ می‌کند.

آیا می‌توانم در زمان اجرا فونت‌های خارجی سفارشی را اضافه کنم تا از جایگزینی جلوگیری شود؟

بله. می‌توانید در زمان اجرا فونت‌های خارجی اضافه کنید تا کتابخانه آن‌ها را برای انتخاب و رندر در نظر بگیرد، از جمله برای تبدیل‌های بعدی.

آیا Aspose فونتی همراه کتابخانه توزیع می‌کند؟

خیر. Aspose هیچ فونت پرداختی یا رایگانی را توزیع نمی‌کند؛ شما فونت‌ها را بر اساس اختیار و مسئولیت خود اضافه و استفاده می‌کنید.

آیا رفتار جایگزینی بین ویندوز، لینوکس و macOS متفاوت است؟

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

چگونه باید محیط را آماده کنم تا جایگزینی ناخواسته در تبدیل‌های دسته‌ای به حداقل برسد؟

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