---
title: "دستکاری فونت و مسائل مربوط به عملکرد در C++"
---

تمام مکانیسم های دستکاری فونت موجود در کلاس [FontSettings](https://reference.aspose.com/words/cpp/class/aspose.words.fonts.font_settings) وجود دارد. این کلاس مسئول گرفتن فونت ها در منابع فونت تعریف شده و همچنین برای فرآیند جایگزینی فونت است، همانطور که در زیر توضیح داده شده است.

## تجزیه فونت های حل شده

فونت ها در چند مرحله تجزیه می شوند:

1. به دست آوردن اطلاعات برای فونت، حل از تمام فونت های موجود.
1. تجزیه فونت های حل شده برای دریافت گلیف ها و معیارهای موجود (افقی و عمودی).
1. تجزیه فونت های حل شده برای جاسازی و زیر تنظیم.

هنگامی که Aspose.Words برای اولین بار با یک فونت در سند روبرو می شود، سعی می کند اطلاعات اساسی فونت مانند نام کامل فونت، نام خانوادگی، نسخه، سبک را از فایل های فونت واقع در هر منبع فونت بدست آورد. پس از بازیابی تمام فونت ها، Aspose.Words از این جزئیات برای پیدا کردن داده های فونت مورد نیاز یا جایگزینی مناسب برای فونت درخواست شده استفاده می کند.

## مشکل عملکرد هنگام تعویض فونت ها

از آنجا که روش توصیف شده در بالا وقت گیر است، ممکن است بر عملکرد برنامه در اولین راه اندازی آن تأثیر منفی بگذارد. با این حال، هر نمونه از **FontSettings** حافظه پنهان خود را دارد که می تواند زمان پردازش اسناد بعدی را کاهش دهد. به عنوان مثال، می توانید نمونه ای از کلاس **FontSettings** را بین اسناد مختلف به اشتراک بگذارید، که به شما امکان می دهد بارگیری اسناد را تسریع کنید. مثال زیر این را نشان می دهد:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Rendering-Printing-WorkingWithFontSettings-FontSettingsWithLoadOptions.cpp" >}}

در صورتی که **FontSettings** به طور صریح تعریف نشده باشد، Aspose.Words از نمونه پیش فرض **FontSettings** استفاده می کند. این نمونه نیز به طور خودکار بین اسناد به اشتراک گذاشته می شود و می تواند به شرح زیر استخراج شود:

**C++**

```cpp
System::SharedPtr<FontSettings> fontSettings = System::MakeObject<FontSettings>()->get_DefaultInstance();
```

## با استفاده از نمونه پیش فرض FontSettings

اگر مطمئن هستید که تمام اسناد پردازش نیاز به تنظیمات فونت یکسان دارند، توصیه می شود که نمونه پیش فرض **FontSettings** را تنظیم و استفاده کنید. فرض کنید که شما نیاز به استفاده از همان منابع فونت برای تمام اسناد خود را. در این مورد، شما فقط می توانید نمونه پیش فرض را به شرح زیر تغییر دهید:

{{< gist "aspose-words-gists" "d55d8631947d283b1f0da99afa06c492" "cpp-Rendering-Printing-WorkingWithFontSettings-FontSettingsFontSource.cpp" >}}

```

سفارشی **FontSettings** اولویت بالاتری نسبت به نمونه پیش فرض دارد.

```
