זמינות גופן והחלפה

Contents
[ ]

טקסט במסמך יכול להיות מעוצב עם גופנים שונים, כגון אריאל, טיימס ניו רומן, ורדנה, ואחרים. כאשר Aspose.Words מעבד מסמך, הוא מנסה לבחור את הגופנים שצוינו במסמך.

עם זאת, ישנם מצבים שבהם לא ניתן למצוא את הגופן המדויק ו Aspose.Words חייב להחליף אותו בגופן דומה במקום. Aspose.Words בוחר את הגופן בהתאם לתהליך הבא:

  1. Aspose.Words מנסה למצוא גופן בין מקורות הגופן הזמינים עם שם גופן מדויק.
  2. Aspose.Words מנסה למצוא את הגופן הנדרש בין הגופנים המוטבעים במסמך המקורי. פורמטים מסוימים של מסמכים כגון DOCX יכולים להכיל גופנים משובצים.
  3. אם Aspose.Words לא מצליח לאתר את הגופן הנדרש עם התאמת השם המדויקת, ואת המאפיין AltName שהוגדר עבור גופן זה, אז Aspose.Words ימצא את הגופן שהוגדר עם AltName מהכיתה FontInfo, שמציינת את פרטי הגופן.
  4. אם Aspose.Words לא מצליח לאתר את הגופן המוגדר, ו AltName לא מוגדר גם, אז כללי החלפת הגופן מוחלים אחד אחד, כמתואר להלן (כאשר נמצא ההחלפה המתאימה, תהליך החלפת הגופן נפסק והשלב הבא לא מבוצע):
    1. Aspose.Words ינסה להחיל OS הגדרות גופן, אם הן זמינות, באמצעות כלי השירות FontConfig. תכונה זו שאינהWindows חייבת לשמש עם FontConfig-תואם OS. כמעט לכל OS מבוסס יוניקס יש כבר ספרייה FontConfig שנועדה לספק תצורת גופנים, התאמה אישית וגישה לכל המערכת ליישומים. אחרת, ספרייה זו יכולה להיות מותקנת בקלות על ידי המשתמש.
      Aspose.Words יודע לשאול נתונים ולפרש FontConfig תוצאות למטרותיו שלו. כברירת מחדל, כלי השירות FontConfig מושבת. תוכל להפעיל אותו באופן הבא:
      C++
            fontSettings->get_SubstitutionSettings()->get_FontConfigSubstitution()->set_Enabled(true);
            
      
    2. השלב הבא הוא מנגנון פשוט, אבל חזק מאוד שנקרא TableSubstitutionRule. כברירת מחדל, תכונה זו פעילה וזמינה עבור כל OS. Aspose.Words משתמש XML טבלאות שמגדירות כללי החלפה בסיסיים עבור OS שונים. על פי כלל החלפת הטבלה, ייעשה שימוש ברשימת שמות הגופנים החלופיים.
      XML
            <TableSubstitutionSettings xmlns="Aspose.Words"> 
      	<SubstitutesTable> 
      		<Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" /></SubstitutesTable> 
            </TableSubstitutionSettings>
            
      OriginalFont - גופן להחלפה, SubstituteFonts - רשימת גרסאות החלפה, מופרדות בפסיק. הגופן הזמין הראשון משמש להחלפה.
      המאפיין העיקרי של כלל זה הוא היכולת לטעון טבלאות החלפה משלך, כפי שהוא מוצג בדוגמה הבאה:
      C++
            fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->Load(u"Table.xml");
            
      
      אתה יכול לקחת כבסיס את הטבלה הקיימת מהצנצנת או לשמור אותה באופן תכנותי באופן הבא:
      C++
            fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->Save(u"MyTable.xml");
            
      
      למרות הגמישות של מנגנון זה, ישנם מקרים שבהם עדיף להשבית אותו, כפי שמוצג להלן:
      C++
            fontSettings->get_SubstitutionSettings()->get_TableSubstitution()->set_Enabled(false);
            
      
    3. כלל ההחלפה FontInfo יחול אם כלל החלפת הטבלה לא יכול למצוא את הגופן. מנגנון זה מופעל כברירת מחדל. Aspose.Words מוצא את הגופן המתאים ביותר בהתאם למידע הגופן הכלול במסמך מסוים. מידע זה ניתן לקבל מהכיתה FontInfo כפי שמוצג להלן:
      C++
            System::SharedPtr<FontInfoCollection> fontInfos = doc->get_FontInfos();
            
      
      משתמשים אינם יכולים להתערב בזרימת העבודה של תכונה זו אלא אם כן הם מחליטים להשבית אותה במקרה של תוצאות לא מספקות:
      C++
            fontSettings->get_SubstitutionSettings()->get_FontInfoSubstitution()->set_Enabled(false);
            
      
      אם FontInfo אינו זמין עבור הגופן החסר, התהליך ייפסק.
    4. DefaultFont כלל החלפה יחול במקרה בו גם החלפת FontInfo נכשלה. כלל זה מופעל גם כברירת מחדל. על פי כלל זה, Aspose.Words ינסה להשתמש בגופן ברירת המחדל שצוין במאפיין DefaultFontName. אם המשתמש לא בחר בגופן ברירת המחדל שלו," טיימס ניו רומן " ישמש כגופן ברירת המחדל. ניתן להשבית כלל זה כמוצג להלן:
      C++
            fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->set_Enabled(false);
            
      
      כדי לבדוק את גופן ברירת המחדל הנוכחי, השתמש:
      C++
            fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->get_DefaultFontName();
            
      
      כדי להגדיר אפשרות החלפה משלך, החל:
      C++
            fontSettings->get_SubstitutionSettings()->get_DefaultFontSubstitution()->set_DefaultFontName(u"Arial");
            
      
  5. אם Aspose.Words אינו מסוגל לבצע את החלפת הגופן, הוא מנסה להשיג את הגופן הזמין הראשון ממקורות הגופן הזמינים.
  6. לבסוף, אם Aspose.Words לא מצליח למצוא גופנים בין מקורות הגופנים הזמינים, הוא מעביר את המסמך באמצעות גופן פנווד החינמי המוטמע במכלול Aspose.Words.