Fonts

Fonts

Deze gids laat zien hoe je de lettertypen die in een document worden aangehaald kunt inspecteren, ingebedde lettertypegegevens kunt extraheren, en TrueType lettertype-embedden bij opslaan kunt regelen met Aspose.Words FOSS voor .NET. Aspose.Words FOSS voor .NET volgt elk lettertype dat door een geladen document wordt aangehaald via FontInfoCollection, en biedt per-lettertype metadata, ingebedde lettertype-extractie, en embedden-bij-opslaan controles via FontInfo. Document.FontSettings en LoadOptions.FontSettings bieden het (opzettelijk minimale, in deze editie) FontSettings instappunt.


Inspectie van gebruikte lettertypen in een document

DocumentBase.FontInfos (geërfd door Document) retourneert een FontInfoCollection die elk lettertype beschrijft dat ergens in het document wordt aangehaald. Indexeer ernaar op naam (bijv. fontInfos["Arial"]), test of het bestaat met Contains(name), tel ze met Count, of doorloop de volledige collectie via GetEnumerator().


Lettertype-eigenschappen en classificatie

Elke FontInfo beschrijft één lettertype: Name en AltName identificeren het, Family classificeert het via de FontFamily enum (Auto, Roman, Swiss, Modern, Script, Decorative), Pitch rapporteert zijn FontPitch (Default, Fixed, Variable), en IsTrueType, Charset en Panose onthullen data op een lager niveau voor lettertype-matching.


Extractie van ingebedde lettertypen

Als een document ingesloten lettertypen heeft, FontInfo.GetEmbeddedFont(format, style) retourneert de ruwe ingesloten lettertype-bytes voor een gegeven EmbeddedFontFormat (EmbeddedOpenType of OpenType) en EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic). GetEmbeddedFontAsOpenType(style) retourneert het lettertype direct geconverteerd naar OpenType-formaat, ongeacht hoe het oorspronkelijk is ingesloten.


Licentierechten voor het Insluiten van Lettertypen

Voordat u een lettertype extraheert of opnieuw insluit, controleer FontInfo.EmbeddingLicensingRights, een FontEmbeddingLicensingRights-object. EmbeddingUsagePermissions rapporteert het licentieniveau via de FontEmbeddingUsagePermissions enum (Installable, RestrictedLicense, PrintAndPreview, Editable), terwijl NoSubsetting en BitmapEmbeddingOnly verdere beperkingen aangeven die door de lettertype-leverancier zijn ingesteld.


Lettertype-insluiting bij Opslaan Beheren

FontInfoCollection bevat ook insluitingsschakelaars op documentniveau: stel EmbedTrueTypeFonts in op true om elk TrueType lettertype dat in het document wordt gebruikt bij het opslaan in te sluiten, EmbedSystemFonts om lettertypen op te nemen die normaal gesproken op elk systeem aanwezig worden geacht, en SaveSubsetFonts om alleen de daadwerkelijk gebruikte glyphs in te sluiten in plaats van het volledige lettertype.


Reikwijdte van FontSettings in Deze Editie

Document.FontSettings en LoadOptions.FontSettings retourneren beide een FontSettings-object, en FontSettings.DefaultInstance biedt een gedeelde standaardinstantie. In deze FOSS-editie is de FontSettings’ API-laag beperkt tot die standaard-instantie-eigenschap — map-gebaseerde en systeem-lettertype-bronresolutie, die elders in Aspose.Words wordt gebruikt om lettertypen te vervangen of op te lossen voor paginalay-out en rendering, is niet aanwezig, aangezien paginalay-out en rendering buiten de reikwijdte van deze editie vallen. Lettertype-verwerking hier betekent inspectie van metadata en insluiting, niet het vervangen van lettertypen voor rendering.


Tips en Best Practices

  • Controleer altijd FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions voordat je een ingesloten lettertype extraheert of herdistribueert — sommige lettertypen zijn alleen gelicentieerd RestrictedLicense of PrintAndPreview alleen.
  • Gebruik GetEmbeddedFontAsOpenType() wanneer je een consistent uitvoerformaat nodig hebt, ongeacht hoe het brondocument het lettertype heeft ingesloten (EmbeddedOpenType versus OpenType).
  • Stel FontInfoCollection.SaveSubsetFonts in op true om de grootte van het uitvoerbestand te verkleinen wanneer je lettertypen insluit die slechts een handvol glyphs gebruiken.
  • FontInfoCollection.Contains(name) is goedkoper dan indexeren en het afhandelen van een mislukte zoekopdracht (bijv. fontInfos[name]) wanneer je alleen de aanwezigheid van een lettertype wilt testen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
GetEmbeddedFont() retourneert geen bruikbare gegevensHet genoemde lettertype is niet daadwerkelijk in het document ingebedControleer de insluitingsinstellingen van het document voordat u ervan uitgaat dat lettertypegegevens aanwezig zijn
Indexeren in FontInfoCollection op naam levert niets opDe lettertype-naam komt niet exact overeen, inclusief hoofdlettergebruikEnumereer FontInfoCollection met GetEnumerator() om de exacte Name tekenreeks te bevestigen
Verwachte lettertypevervanging/resolutie-API’s ontbrekenMap- en systeemgebaseerde lettertypebronresolutie is niet geïmplementeerd in deze FOSS-editieGebruik FontInfo/FontInfoCollection alleen voor metadata en insluiting; lettertypevervanging voor weergave valt niet binnen de scope van deze editie

FAQ

Hoe kan ik elk lettertype dat een document refereert, opsommen?

Enumereer Document.FontInfos (een FontInfoCollection) via GetEnumerator(), of indexeer ernaar op naam om een specifieke op te zoeken (bijv. fontInfos["Arial"]).

Kan ik de ruwe bytes van een ingesloten lettertype uit een document halen?

Ja, als het lettertype is ingesloten — roep FontInfo.GetEmbeddedFont(format, style) aan voor het originele ingesloten formaat, of GetEmbeddedFontAsOpenType(style) om het resultaat te normaliseren naar OpenType.

Hoe zorg ik ervoor dat lettertypen worden ingesloten wanneer ik een document opsla?

Stel FontInfoCollection.EmbedTrueTypeFonts in op true vóór het opslaan; voeg EmbedSystemFonts toe als je ook lettertypen wilt aannemen die op elk systeem aanwezig zijn, en SaveSubsetFonts om alleen de gebruikte glyphs in te sluiten.

Ondersteunt deze editie het oplossen van lettertypen uit een aangepaste map voor weergave?

Nee — map- en systeemgebaseerde font-bronresolutie (FontSettings bronconfiguratie) is hier niet geïmplementeerd, omdat het bedoeld is om paginalay-out en weergave te ondersteunen, wat buiten de reikwijdte van deze FOSS-editie valt.

Wat betekent FontEmbeddingLicensingRights.NoSubsetting?

Het is een licentievlag die wordt gerapporteerd door de embed-rechten van de lettertypeleverancier: wanneer true, mag het lettertype niet worden onderverdeeld tot alleen de gebruikte glyphs.


API Reference Samenvatting

Klasse / MethodeBeschrijving
FontInfoCollectionLettertypen die in een document worden gerefereerd; indexeer op naam (fontInfos[name]), Contains(), Count, GetEnumerator(), plus EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoMetadata van één lettertype: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Extraheer ingesloten lettertypebytes
EmbeddedFontFormat / EmbeddedFontStyleEnums die het formaat en de stijlvariant van een ingesloten lettertype identificeren
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsInsluitlicentiebeperkingen gerapporteerd per lettertype
FontSettingsMinimaal font-settings ingangspunt (Document.FontSettings, LoadOptions.FontSettings); geen font-source resolutie in deze editie

Zie ook

 Nederlands