Fonts

Fonts

Ez az útmutató bemutatja, hogyan lehet ellenőrizni a dokumentumban hivatkozott betűtípusokat, kinyerni a beágyazott betűtípus-adatokat, és szabályozni a TrueType betűtípus beágyazását mentéskor a Aspose.Words FOSS segítségével .NET számára. A Aspose.Words FOSS .NET számára nyomon követi a betöltött dokumentum által hivatkozott minden betűtípust a FontInfoCollection révén, és elérhetővé teszi betűtípusonkénti metaadatokat, beágyazott betűtípus-kinyerést, valamint a mentéskor történő beágyazás vezérlését a FontInfo segítségével. A Document.FontSettings és a LoadOptions.FontSettings biztosítják a (szándékosan minimális, ebben a kiadásban) FontSettings belépési pontot.


A dokumentumban használt betűtípusok ellenőrzése

DocumentBase.FontInfos (a Document által örökölt) egy FontInfoCollection értékkel tér vissza, amely leírja a dokumentumban bárhol hivatkozott minden betűtípust. Indexelhető név szerint (pl. fontInfos["Arial"]), létezését Contains(name) segítségével tesztelhető, megszámolható Count használatával, vagy az egész gyűjtemény felsorolható a GetEnumerator() segítségével.


Betűtípus tulajdonságai és osztályozása

Minden FontInfo egy betűtípust ír le: a Name és a AltName azonosítja, a Family a FontFamily felsorolt típus (enum) (Auto, Roman, Swiss, Modern, Script, Decorative) segítségével osztályozza, a Pitch jelenti a FontPitch értékét (Default, Fixed, Variable), és a IsTrueType, Charset és Panose alacsonyabb szintű betűtípus-illesztési adatokat tesznek elérhetővé.


Beágyazott betűtípus kinyerése

Ha egy dokumentumnak beágyazott betűtípusai vannak, a FontInfo.GetEmbeddedFont(format, style) visszaadja a nyers beágyazott betűtípus bájtokat egy adott EmbeddedFontFormat (EmbeddedOpenType vagy OpenType) és EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic) esetén. A GetEmbeddedFontAsOpenType(style) közvetlenül visszaadja a betűtípust OpenType formátumba konvertálva, függetlenül attól, hogyan lett eredetileg beágyazva.


Betűtípus-beágyazási licencjogok

Mielőtt egy betűtípust kinyernénk vagy újra beágyaznánk, ellenőrizze a FontInfo.EmbeddingLicensingRights objektumot, amely egy FontEmbeddingLicensingRights objektum. A EmbeddingUsagePermissions a licencszintet a FontEmbeddingUsagePermissions enumeráció (Installable, RestrictedLicense, PrintAndPreview, Editable) segítségével jelenti, míg a NoSubsetting és a BitmapEmbeddingOnly további korlátozásokat jelölnek, amelyeket a betűtípus-gyártó állapított fel.


A betűtípus-beágyazás ellenőrzése mentéskor

FontInfoCollection dokumentumszintű beágyazási kapcsolókat is tartalmaz: állítsa a EmbedTrueTypeFonts értékét true-re, hogy a dokumentumban használt minden TrueType betűtípust beágyazza mentéskor, a EmbedSystemFonts-t, hogy a normál esetben bármely rendszeren jelen lévőnek feltételezett betűtípusokat is belefoglalja, és a SaveSubsetFonts-t, hogy csak a ténylegesen használt glifeket ágyazza be, nem pedig a teljes betűtípust.


FontSettings hatóköre ebben a kiadásban

Document.FontSettings és LoadOptions.FontSettings egyaránt egy FontSettings objektumot ad vissza, és a FontSettings.DefaultInstance egy közös alapértelmezett példányt tesz elérhetővé. Ebben a FOSS kiadásban a FontSettings API felülete csak erre az alapértelmezett példány tulajdonságra korlátozódik – a mappákon alapuló és a rendszer betűtípus-forrás feloldása, amely máshol a Aspose.Words-ben a betűtípusok helyettesítésére vagy feloldására szolgál az oldalelrendezés és renderelés során, nincs jelen, mivel az oldalelrendezés és renderelés kívül esik ennek a kiadásnak a hatókörén. Itt a betűtípus-kezelés a metaadat-ellenőrzést és a beágyazást jelenti, nem a betűtípus helyettesítést a rendereléshez.


Tippek és bevált gyakorlatok

  • Mindig ellenőrizze a FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions-t, mielőtt egy beágyazott betűtípust kicsomagolna vagy terjesztene — egyes betűtípusok csak RestrictedLicense vagy PrintAndPreview licenc alatt állnak.
  • Használja a GetEmbeddedFontAsOpenType()-t, ha következetes kimeneti formátumra van szüksége, függetlenül attól, hogy a forrásdokumentum hogyan ágyazta be a betűtípust (EmbeddedOpenType kontra OpenType).
  • Állítsa a FontInfoCollection.SaveSubsetFonts-t true értékre, hogy csökkentse a kimeneti fájlméretet, ha csak néhány glifet használó betűtípusokat ágyaz be.
  • A FontInfoCollection.Contains(name) olcsóbb, mint egy indexelés és egy sikertelen keresés kezelése (például fontInfos[name]), ha csak a betűtípus létezését kell ellenőrizni.

Gyakori problémák

ProblémaOkaJavítás
GetEmbeddedFont() nem ad vissza felhasználható adatotA hivatkozott betűtípus valójában nincs beágyazva a dokumentumbanEllenőrizze a dokumentum beágyazási beállításait, mielőtt azt feltételezné, hogy a betűtípus adatok jelen vannak
A FontInfoCollection név szerinti indexelése nem talál semmitA betűtípus neve nem egyezik pontosan, beleértve a kis- és nagybetűketFelsorolja FontInfoCollection GetEnumerator() segítségével a pontos Name string megerősítéséhez
A várt betűtípus helyettesítési/felbontási API-k hiányoznakA mappa- és rendszeralapú betűtípus-forrás feloldás nincs megvalósítva ebben a FOSS kiadásbanHasználja a(z) FontInfo/FontInfoCollection kombinációt csak metaadatokhoz és beágyazáshoz; a betűtípus helyettesítés a megjelenítéshez nem része ennek a kiadásnak

FAQ

Hogyan listázhatom ki az összes betűtípust, amelyre egy dokumentum hivatkozik?

Enumerálja a Document.FontInfos-t (egy FontInfoCollection) a GetEnumerator() segítségével, vagy indexeljen rá név szerint, hogy egy konkrét elemet keressen (például fontInfos["Arial"]).

Kinyerhetem egy beágyazott betűtípus nyers bájtjait a dokumentumból?

Igen, ha a betűtípus be van ágyazva — hívd a FontInfo.GetEmbeddedFont(format, style) az eredeti beágyazott formátumért, vagy a GetEmbeddedFontAsOpenType(style) a végeredmény OpenType formátumra normalizálásához.

Hogyan biztosíthatom, hogy a betűtípusok be legyenek ágyazva, amikor dokumentumot mentek?

Állítsd be a FontInfoCollection.EmbedTrueTypeFonts értékét true értékre a mentés előtt; add hozzá a EmbedSystemFonts ha azt is szeretnéd, hogy a betűtípusok minden rendszerben feltételezettek legyenek, és a SaveSubsetFonts csak a használatban lévő glypheket ágyazza be.

Támogatja-e ez a kiadás a betűtípusok egyedi mappából való feloldását a megjelenítéshez?

Nem — a mappa- és rendszeralapú betűtípusforrás feloldása (FontSettings forráskonfiguráció) nincs megvalósítva itt, mivel ez az oldalelrendezés és a renderelés szolgálatára létezik, amelyek kívül esnek e FOSS kiadás hatáskörén.

Mit jelent a FontEmbeddingLicensingRights.NoSubsetting?

Ez egy licencjelző, amelyet a betűtípus-gyártó beágyazási jogai jelentenek: amikor true, a betűtípus nem szegmentálható csak a használatban lévő glyphekre.


API Reference Összefoglaló

Osztály / MetódusLeírás
FontInfoCollectionA dokumentumban hivatkozott betűtípusok; indexelő név szerint (fontInfos[name]), Contains(), Count, GetEnumerator(), valamint EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoEgy betűtípus metaadatai: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Beágyazott betűtípus bájtjainak kinyerése
EmbeddedFontFormat / EmbeddedFontStyleEnumok, amelyek azonosítják a beágyazott betűtípus formátumát és stílusvariánsát
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsBetűtípusonként jelentett beágyazási licenckorlátozások
FontSettingsMinimális betűtípus-beállítások belépési pont (Document.FontSettings, LoadOptions.FontSettings); nincs betűtípus-forrás feloldás ebben a kiadásban

Lásd még:

 Magyar