Fonts

Fonts

Ten przewodnik pokazuje, jak sprawdzić czcionki odwoływane w dokumencie, wyodrębnić osadzone dane czcionek oraz kontrolować TrueType osadzanie czcionek przy zapisie przy użyciu Aspose.Words FOSS dla .NET. Aspose.Words FOSS dla .NET śledzi każdą czcionkę odwoływaną przez załadowany dokument za pośrednictwem FontInfoCollection i udostępnia metadane per-czcionka, wyodrębnianie osadzonych czcionek oraz kontrolę osadzania przy zapisie poprzez FontInfo. Document.FontSettings i LoadOptions.FontSettings zapewniają (celowo minimalny w tym wydaniu) punkt wejścia FontSettings.


Sprawdzanie czcionek używanych w dokumencie

DocumentBase.FontInfos (dziedziczony przez Document) zwraca FontInfoCollection opisujący każdą czcionkę odwoływaną w dowolnym miejscu dokumentu. Indeksuj go po nazwie (np. fontInfos["Arial"]), sprawdź, czy istnieje za pomocą Contains(name), zlicz je przy pomocy Count lub wylicz całą kolekcję poprzez GetEnumerator().


Właściwości czcionek i klasyfikacja

Każdy FontInfo opisuje jedną czcionkę: Name i AltName ją identyfikują, Family klasyfikuje ją za pomocą wyliczenia FontFamily (Auto, Roman, Swiss, Modern, Script, Decorative), Pitch raportuje jej FontPitch (Default, Fixed, Variable), a IsTrueType, Charset i Panose udostępniają dane niższego poziomu dopasowywania czcionek.


Wyodrębnianie osadzonych czcionek

Jeśli dokument zawiera osadzone czcionki, FontInfo.GetEmbeddedFont(format, style) zwraca surowe bajty osadzonej czcionki dla podanego EmbeddedFontFormat (EmbeddedOpenType lub OpenType) oraz EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic). GetEmbeddedFontAsOpenType(style) zwraca czcionkę przekonwertowaną bezpośrednio do formatu OpenType, niezależnie od tego, jak została pierwotnie osadzona.


Prawa licencyjne dotyczące osadzania czcionek

Przed wyodrębnieniem lub ponownym osadzeniem czcionki, sprawdź FontInfo.EmbeddingLicensingRights, obiekt FontEmbeddingLicensingRights. EmbeddingUsagePermissions zgłasza poziom licencji za pomocą wyliczenia FontEmbeddingUsagePermissions (Installable, RestrictedLicense, PrintAndPreview, Editable), podczas gdy NoSubsetting i BitmapEmbeddingOnly sygnalizują dodatkowe ograniczenia ustalone przez dostawcę czcionki.


Kontrolowanie osadzania czcionek przy zapisie

FontInfoCollection zawiera również przełączniki osadzania na poziomie dokumentu: ustaw EmbedTrueTypeFonts na true, aby osadzić każdą czcionkę TrueType używaną w dokumencie przy zapisie, EmbedSystemFonts, aby uwzględnić czcionki zazwyczaj uznawane za dostępne w każdym systemie, oraz SaveSubsetFonts, aby osadzić tylko rzeczywiście użyte glify, a nie pełną czcionkę.


Zakres FontSettings w tej edycji

Document.FontSettings i LoadOptions.FontSettings zwracają obiekt FontSettings, a FontSettings.DefaultInstance udostępnia współdzieloną domyślną instancję. W tej edycji FOSS, powierzchnia FontSettings API jest ograniczona do tej właściwości domyślnej instancji — rozwiązywanie źródeł czcionek oparte na folderach i systemie, które w innym miejscu w Aspose.Words służą do zastępowania lub rozwiązywania czcionek dla układu strony i renderowania, nie jest dostępne, ponieważ układ strony i renderowanie wykraczają poza zakres tej edycji. Obsługa czcionek tutaj oznacza inspekcję metadanych i osadzanie, a nie zastępowanie czcionek w renderowaniu.


Wskazówki i najlepsze praktyki

  • Zawsze sprawdzaj FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions przed wyodrębnieniem lub rozpowszechnianiem osadzonej czcionki — niektóre czcionki są licencjonowane wyłącznie RestrictedLicense lub PrintAndPreview tylko.
  • Użyj GetEmbeddedFontAsOpenType(), gdy potrzebujesz spójnego formatu wyjściowego, niezależnie od tego, jak źródłowy dokument osadził czcionkę (EmbeddedOpenType vs OpenType).
  • Ustaw FontInfoCollection.SaveSubsetFonts na true, aby zmniejszyć rozmiar pliku wyjściowego przy osadzaniu czcionek, które używają tylko kilku glifów.
  • FontInfoCollection.Contains(name) jest tańsze niż indeksowanie i obsługa nieudanej wyszukiwarki (np. fontInfos[name]), gdy potrzebujesz jedynie sprawdzić obecność czcionki.

Typowe problemy

ProblemPrzyczynaNaprawa
GetEmbeddedFont() nie zwraca użytecznych danychOdwoływana czcionka nie jest faktycznie osadzona w dokumencieSprawdź ustawienia osadzania dokumentu, zanim założysz, że dane czcionki są dostępne
Indeksowanie FontInfoCollection po nazwie nie znajduje nicNazwa czcionki nie pasuje dokładnie, łącznie z wielkością literWymień FontInfoCollection przy użyciu GetEnumerator(), aby potwierdzić dokładny ciąg Name
Oczekiwane API zamiany/rozwiązywania czcionek brakująRozwiązywanie źródeł czcionek oparte na folderach i systemie nie jest zaimplementowane w tej wersji FOSSUżyj FontInfo/FontInfoCollection wyłącznie do metadanych i osadzania; zamiana czcionek przy renderowaniu nie jest częścią zakresu tej edycji

FAQ

Jak wymienić wszystkie czcionki, do których odnosi się dokument?

Wymień Document.FontInfos (a FontInfoCollection) za pomocą GetEnumerator(), lub indeksuj go po nazwie, aby wyszukać konkretną pozycję (np. fontInfos["Arial"]).

Czy mogę wyciągnąć surowe bajty wbudowanej czcionki z dokumentu?

Tak, jeśli czcionka jest wbudowana — wywołaj FontInfo.GetEmbeddedFont(format, style) dla oryginalnego wbudowanego formatu, lub GetEmbeddedFontAsOpenType(style), aby znormalizować wynik do OpenType.

Jak zapewnić, że czcionki są wbudowane przy zapisywaniu dokumentu?

Ustaw FontInfoCollection.EmbedTrueTypeFonts na true przed zapisem; dodaj EmbedSystemFonts, jeśli potrzebujesz również czcionek zakładanych jako dostępne w każdym systemie, oraz SaveSubsetFonts, aby wbudować tylko używane glify.

Czy ta edycja obsługuje rozwiązywanie czcionek z niestandardowego folderu do renderowania?

Nie — rozwiązywanie źródeł czcionek oparte na folderze i systemie (FontSettings konfiguracja źródła) nie jest tutaj zaimplementowane, ponieważ służy układowi strony i renderowaniu, co wykracza poza zakres tej edycji FOSS.

Co oznacza FontEmbeddingLicensingRights.NoSubsetting?

To flaga licencyjna zgłaszana przez prawa do osadzania czcionki dostawcy: gdy true, czcionka nie może być podzbiorowana do jedynie używanych glifów.


API Reference Podsumowanie

Klasa / MetodaOpis
FontInfoCollectionCzcionki odwoływane w dokumencie; indeksowanie według nazwy (fontInfos[name]), Contains(), Count, GetEnumerator(), plus EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoMetadane jednej czcionki: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Wyodrębnij osadzone bajty czcionki
EmbeddedFontFormat / EmbeddedFontStyleEnumy identyfikujące format i wariant stylu osadzonej czcionki
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsOgraniczenia licencyjne osadzania zgłaszane dla każdej czcionki
FontSettingsMinimalny punkt wejścia ustawień czcionek (Document.FontSettings, LoadOptions.FontSettings); brak rozwiązywania źródła czcionki w tej edycji

Zobacz także

 Polski