Fonts
Fonts
מדריך זה מראה כיצד לבדוק את הגופנים המופיעים במסמך, לחלץ נתוני גופנים מוטמעים, ולשלוט בהטמעת גופנים TrueType בעת השמירה עם Aspose.Words FOSS עבור .NET. Aspose.Words FOSS עבור .NET עוקב אחרי כל גופן שמופיע במסמך טעון באמצעות FontInfoCollection, ומחשוף מטא-נתונים לכל גופן, חילוץ גופנים מוטמעים, ובקרות הטמעה בעת שמירה דרך FontInfo. Document.FontSettings ו-LoadOptions.FontSettings מספקים את נקודת הכניסה FontSettings (בכוונה מינימלית, במהדורה זו).
בדיקת הגופנים המשמשים במסמך
DocumentBase.FontInfos (מורש על ידי Document) מחזיר FontInfoCollection המתאר כל גופן שמופיע בכל מקום במסמך. ניתן לאנדקס אותו לפי שם (למשל fontInfos["Arial"]), לבדוק אם הוא קיים עם Contains(name), לספור אותם עם Count, או למנות את כל האוסף דרך GetEnumerator().
מאפייני גופנים וסיווג
כל FontInfo מתאר גופן אחד: Name ו-AltName מזהים אותו, Family מסווג אותו דרך המונה FontFamily (Auto, Roman, Swiss, Modern, Script, Decorative), Pitch מדווח על FontPitch שלו (Default, Fixed, Variable), ו-IsTrueType, Charset, ו-Panose חושפים נתוני התאמת גופנים ברמה נמוכה יותר.
חילוץ גופנים מוטמעים
אם למסמך יש גופנים משובצים, FontInfo.GetEmbeddedFont(format, style) מחזיר את בתי הגופן המשובץ הגולמיים עבור EmbeddedFontFormat נתון (EmbeddedOpenType או OpenType) ו-EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic). GetEmbeddedFontAsOpenType(style) מחזיר את הגופן שהומר לפורמט OpenType ישירות, ללא קשר לאופן שבו הוא היה משובץ במקור.
זכויות רישוי לשיבוץ גופנים
לפני חילוץ או שיבוץ מחדש של גופן, בדוק את FontInfo.EmbeddingLicensingRights, אובייקט מסוג FontEmbeddingLicensingRights. EmbeddingUsagePermissions מדווח על רמת הרישיון דרך האינום FontEmbeddingUsagePermissions (Installable, RestrictedLicense, PrintAndPreview, Editable), בעוד NoSubsetting ו-BitmapEmbeddingOnly מציינים הגבלות נוספות שהוגדרו על ידי ספק הגופן.
בקרת שיבוץ גופנים בזמן שמירה
FontInfoCollection גם נושא מתגים לשיבוץ ברמת המסמך: הגדר את EmbedTrueTypeFonts ל-true כדי לשבץ כל גופן TrueType המשמש במסמך בעת השמירה, EmbedSystemFonts כדי לכלול גופנים שבדרך כלל נחשבים לנוכחים בכל מערכת, ו-SaveSubsetFonts כדי לשבץ רק את האותיות שבשימוש בפועל במקום את כל הגופן.
היקף FontSettings במהדורה זו
Document.FontSettings ו-LoadOptions.FontSettings מחזירים שניהם אובייקט FontSettings, ו-FontSettings.DefaultInstance מציג מופע ברירת מחדל משותף. במהדורה ה-FOSS הזו, משטח ה-API של FontSettings מוגבל לתכונת מופע ברירת המחדל — פתרון מקורות גופנים מבוסס תיקייה ומערכת, אשר במקומות אחרים ב-Aspose.Words משמש להחלפה או פתרון גופנים עבור פריסת דפים והצגה, אינו קיים, מכיוון שפריסת דפים והצגה נמצאים מחוץ להיקף המהדורה הזו. טיפול בגופנים כאן משמעותו בחינת מטה-נתונים ושיבוץ, ולא החלפת גופנים לצורך הצגה.
טיפים והמלצות מיטביות
- תמיד לבדוק את
FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissionsלפני חילוץ או הפצה מחדש של גופן משובץ — חלק מהגופנים מורשיםRestrictedLicenseאוPrintAndPreviewבלבד. - השתמש ב-
GetEmbeddedFontAsOpenType()כאשר אתה זקוק לפורמט פלט עקבי ללא תלות באופן שבו המסמך המקורי משבץ את הגופן (EmbeddedOpenTypeלעומתOpenType). - הגדר את
FontInfoCollection.SaveSubsetFontsל-trueכדי להקטין את גודל קובץ הפלט בעת הטמעת גופנים שמשתמשים רק במעט גליפים. FontInfoCollection.Contains(name)זול יותר מאשר לבצע אינדקס ולטפל בכשל בחיפוש (למשלfontInfos[name]) כאשר אתה רק צריך לבדוק את נוכחות הגופן.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
GetEmbeddedFont() אינו מחזיר נתונים ניתנים לשימוש | הגופן שהופנה אינו משובץ בפועל במסמך | בדוק את הגדרות ההטמעה של המסמך לפני הנחת קיומם של נתוני גופן |
אינדקס ב-FontInfoCollection לפי שם אינו מוצא דבר | שם הגופן אינו תואם בדיוק, כולל רישיות | ספור את FontInfoCollection עם GetEnumerator() כדי לאשר את המחרוזת המדויקת Name |
| ממשקי API צפויים להחלפת/פתרון גופנים חסרים | פתרון מקור גופנים על בסיס תיקייה ומערכת אינו מיושם בגרסה החופשית (FOSS) הזו | השתמש ב-FontInfo/FontInfoCollection למטא-דאטה והטמעה בלבד; החלפת גופנים להצגה אינה חלק מהיקף הגרסה הזו |
FAQ
איך אני רושם את כל הגופנים שהמסמך מתייחס אליהם?
ספור את Document.FontInfos (FontInfoCollection) דרך GetEnumerator(), או בצע אינדקס אליו לפי שם כדי למצוא ספציפי (למשל fontInfos["Arial"]).
האם אני יכול לחלץ את הבייטים הגולמיים של גופן משולב מתוך מסמך?
כן, אם הגופן משולב — קרא FontInfo.GetEmbeddedFont(format, style) לקבלת הפורמט המשולב המקורי, או GetEmbeddedFontAsOpenType(style) כדי לנרמל את התוצאה ל-OpenType.
איך אני מוודא שהגופנים משולבים כשאני שומר מסמך?
הגדר FontInfoCollection.EmbedTrueTypeFonts ל-true לפני השמירה; הוסף EmbedSystemFonts אם אתה גם צריך שהגופנים ייחשבו כקיימים בכל מערכת, ו-SaveSubsetFonts כדי לשלב רק את הגליפים שבשימוש.
האם גרסה זו תומכת במציאת גופנים מתיקייה מותאמת אישית לצורך רינדור?
לא — פתרון מקור גופנים על בסיס תיקייה ומערכת (FontSettings קונפיגורציית מקור) אינו מיושם כאן, מכיוון שהוא נועד לשרת פריסת דפים ורינדור, אשר מחוץ לתחום של גרסה זו של קוד פתוח.
מה משמעות FontEmbeddingLicensingRights.NoSubsetting?
זהו דגל רישוי שמדווח על ידי זכויות ההטמעה של ספק הגופן: כאשר true, אין אפשרות להקטין את הגופן רק לגליפים שבשימוש.
API Reference סיכום
| מחלקה / מתודה | תיאור |
|---|---|
FontInfoCollection | גופנים שמוזכרים במסמך; אינדקס לפי שם (fontInfos[name]), Contains(), Count, GetEnumerator(), ועוד EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts |
FontInfo | נתוני מטא של גופן אחד: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights |
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType() | הוצא בתים של גופן משובץ |
EmbeddedFontFormat / EmbeddedFontStyle | Enums המזהים את פורמט וגירסת הסגנון של גופן משובץ |
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissions | הגבלות רישיון הטמעה מדווחות לכל גופן |
FontSettings | נקודת כניסה מינימלית של font-settings (Document.FontSettings, LoadOptions.FontSettings); ללא פתרון של font-source במהדורה זו |