Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words wymaga czcionek TrueType do różnych zadań, w tym renderowania dokumentów do formatów o stałej stronie, na przykład PDF lub XPS. Kiedy Aspose.Words renderuje dokument, musi wykonać osadzanie i osadzanie podzbiorów czcionek TrueType w dokumencie wynikowym, co jest normalną praktyką podczas generowania dokumentu, w tym popularnych formatów PDF lub XPS. Dzięki temu dokument będzie wyglądał tak samo dla każdego przeglądającego. Co więcej, specyfikacja XPS wymaga, aby czcionki zawsze były osadzone w dokumencie.
Aby mieć pewność, że Aspose.Words dokładnie mierzy znaki i pomyślnie osadza odpowiednie czcionki, muszą zostać spełnione następujące warunki:
Należy pamiętać, że czcionka w dokumencie reprezentuje jednostkę, taką jak nazwa rodziny, styl, rozmiar i kolor, która różni się od jednostki czcionki TrueType (czcionka fizyczna). Aspose.Words na pewnym etapie przetwarzania przekształca czcionkę w dokumencie w czcionkę fizyczną. Umożliwia to wykonywanie pewnych zadań, najczęściej obliczania rozmiaru tekstu podczas tworzenia układu i osadzania/podzbioru do formatów o stałej stronie. Dostępnych jest również wiele innych mniej popularnych zadań, takich jak rozpoznawanie i podstawianie czcionek podczas ładowania HTML lub osadzanie/podstawianie do niektórych formatów przepływu.
Wszystkie dostępne mechanizmy manipulacji czcionkami zawarte są w klasie FontSettings. Klasa ta odpowiada za pobieranie czcionek ze zdefiniowanych źródeł czcionek oraz za proces zastępowania czcionek, jak opisano poniżej.
Czcionki są analizowane w kilku etapach:
Kiedy Aspose.Words po raz pierwszy spotyka czcionkę w dokumencie, próbuje uzyskać podstawowe informacje o czcionce, takie jak pełna nazwa czcionki, nazwisko, wersja, styl, z plików czcionek znajdujących się w każdym źródle czcionki. Po pobraniu wszystkich czcionek Aspose.Words wykorzystuje te dane w celu znalezienia wymaganych danych czcionki lub odpowiedniego zamiennika żądanej czcionki.
Ponieważ opisana powyżej procedura jest czasochłonna, może negatywnie wpłynąć na wydajność aplikacji przy pierwszym uruchomieniu. Jednak każda instancja FontSettings ma własną pamięć podręczną, co może skrócić czas przetwarzania kolejnych dokumentów. Można na przykład współdzielić instancję klasy FontSettings pomiędzy różnymi dokumentami, co pozwala przyspieszyć ładowanie dokumentów. Poniższy przykład to demonstruje:
W przypadku, gdy FontSettings nie jest jawnie zdefiniowany, Aspose.Words używa domyślnej instancji FontSettings. Ta instancja jest również automatycznie udostępniana pomiędzy dokumentami i można ją wyodrębnić w następujący sposób:
Jeśli masz pewność, że wszystkie przetwarzane dokumenty wymagają tych samych ustawień czcionek, zaleca się skonfigurowanie i korzystanie z domyślnej instancji FontSettings. Załóżmy, że chcesz używać tych samych źródeł czcionek we wszystkich swoich dokumentach. W takim przypadku możesz po prostu zmienić domyślną instancję w następujący sposób:
Tekst w dokumencie można sformatować przy użyciu różnych czcionek, takich jak Arial, Times New Roman, Verdana i inne. Kiedy Aspose.Words renderuje dokument, próbuje wybrać czcionki określone w dokumencie.
Zdarzają się jednak sytuacje, gdy nie można znaleźć dokładnej czcionki i Aspose.Words musi zamiast tego zastąpić ją podobną czcionką. Aspose.Words wybiera czcionkę zgodnie z następującym procesem:
FontConfig zaprojektowaną w celu zapewnienia ogólnosystemowej konfiguracji czcionek, dostosowywania i dostępu do aplikacji. W przeciwnym razie użytkownik może łatwo zainstalować tę bibliotekę.
Aspose.Words wie, jak wysyłać zapytania do danych i interpretować wyniki FontConfig do własnych celów. Domyślnie narzędzie FontConfig jest wyłączone. Możesz to włączyć w następujący sposób: fontSettings.SubstitutionSettings.FontConfigSubstitution.Enabled = true;
FontConfig. <TableSubstitutionSettings xmlns="Aspose.Words">
<SubstitutesTable>
<Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" />
…
</SubstitutesTable>
</TableSubstitutionSettings>
fontSettings.SubstitutionSettings.TableSubstitution.Load("Table.xml");
fontSettings.SubstitutionSettings.TableSubstitution.Enabled = false;
FontInfoCollection fontInfos = doc.FontInfos;
fontSettings.SubstitutionSettings.FontInfoSubstitution.Enabled = false;
FontInfo. Ta reguła jest również domyślnie włączona. Zgodnie z tą zasadą, Aspose.Words będzie próbował użyć domyślnej czcionki określonej we właściwości DefaultFontName. Jeśli użytkownik nie wybrał własnej czcionki domyślnej, jako czcionka domyślna zostanie użyta czcionka “Times New Roman”. Regułę tę można wyłączyć w sposób pokazany poniżej: fontSettings.SubstitutionSettings.DefaultFontSubstitution.Enabled = false;
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName;
fontSettings.SubstitutionSettings.DefaultFontSubstitution.DefaultFontName = "Arial";
Jeśli dostępny jest FontInfo, reguła podstawienia FontInfo zawsze rozpozna czcionkę i zastąpi domyślną regułę czcionki. Jeśli chcesz używać domyślnej reguły czcionki, powinieneś wyłączyć regułę podstawiania FontInfo. Należy pamiętać, że reguła podstawienia FontConfig w większości przypadków rozwiąże czcionkę i tym samym zastępuje wszystkie inne reguły.
Czasami może nie być jasne, dlaczego układ dokumentu się zmienił lub dlaczego niektóre czcionki nie wyglądają zgodnie z oczekiwaniami. W takich przypadkach na ratunek przychodzą komunikaty ostrzegające o podmianie czcionek, implementowane przez interfejs IWarningCallback. Mają typ ostrzeżenia FontSubstitution i standardowy format tekstu opisu “Czcionka”
W Aspose.Words stosowane są dwa różne mechanizmy - podstawianie czcionek i przywracanie czcionek. Zastępowanie czcionek ma zastosowanie, gdy czcionka określona w dokumencie nie została znaleziona wśród źródeł czcionek, jak opisano w powyższych sekcjach. Mechanizm zastępczy czcionki jest używany, gdy czcionka jest rozpoznawana, ale nie zawiera określonego znaku. W tym przypadku Aspose.Words próbuje użyć jednej z czcionek zastępczych dla znaku.
Istnieje metoda BuildAutomatic, która automatycznie tworzy ustawienia awaryjne, skanując dostępne czcionki. Ponieważ ta metoda może generować nieoptymalne ustawienie zastępcze, można kontrolować zachowanie zastępczej czcionki, korzystając z właściwości klasy FontFallbackSettings. Ta klasa określa ustawienia mechanizmu rezerwowego czcionek. Instancję klasy FontFallbackSettings można uzyskać w następujący sposób:
.NET
FontFallbackSettings settings = fontSettings.FallbackSettings;
Podobnie jak Reguła podstawiania tabel, mechanizm ten do konfiguracji wykorzystuje tabele XML. Te tabele XML można ładować i zapisywać następującymi metodami:
.NET
fontSettings.FallbackSettings.Load("MyNewFallbackTable.xml");
fontSettings.FallbackSettings.Save("Current_FallbackTable.xml");
Wersja Aspose.Words zawiera dwie tabele: MsOfficeFallbackSetting.xml i NotoFallbackSetting.xml.
Tabela MsOfficeFallbackSetting definiuje strategię zastępowania zakresu znaków, która jest podobna do strategii stosowanej przez Microsoft Word. Dlatego strategia wymaga instalacji czcionek Microsoft Office. MsOfficeFallbackSetting można aktywować w następujący sposób:
.NET
fontSettings.FallbackSettings.LoadMsOfficeFallbackSettings();
Tabela NotoFallbackSetting została stworzona specjalnie do użytku z czcionkami Google Noto (więcej o ustawieniach czcionek Google Noto w następnej sekcji) i można ją włączyć w następujący sposób:
.NET
fontSettings.FallbackSettings.LoadNotoFallbackSettings();
Poniższy przykład kodu demonstruje, jak załadować ustawienia czcionek zastępczych z pliku XML:
W powyższym przykładzie kodu wykorzystano następujący plik XML:
<FontFallbackSettings xmlns="Aspose.Words">
<FallbackTable>
<!-- Fallback table consists of the rules. Each rule defines the fallback fonts which Aspose.Words should use for specified Unicode ranges and base fonts. Rules are checked one by one and the first applicable fallback font is used. If none of the rules are applicable then ".notdef" glyph (missing glyph) from the base font will be used. -->
<!-- This rule defines that "Vijaya" fallback font should be used for "U+0B80..U+0BFF Tamil" Unicode block. -->
<Rule Ranges="0B80-0BFF" FallbackFonts="Vijaya"/>
<!-- This rule defines that "Segoe UI Emoji" and "Segoe UI Symbol" fallback fonts should be used for "U+1F300..U+1F5FF Miscellaneous Symbols and Pictographs", "U+1F600..U+1F64F Emoticons" Unicode blocks. If "Segoe UI Emoji" font does not contains the glyph for the requested Unicode code point then "Segoe UI Symbol" will be checked. -->
<Rule Ranges="1F300-1F64F" FallbackFonts="Segoe UI Emoji, Segoe UI Symbol"/>
<!-- This rule defines that "Arial" fallback font should be used for "U+2000..U+206F General Punctuation", "U+2070..U+209F Superscripts and Subscripts" Unicode blocks and specific "U+20B9 INDIAN RUPEE SIGN" code point. -->
<Rule Ranges="2000-206F, 2070-209F, 20B9" FallbackFonts="Arial" />
<!-- These rules defines that for "U+3040..U+309F Hiragana" Unicode block "MS Gothic" fallback font should be used if base font is "Times New Roman" and "MS Mincho" fallback font for all other base fonts. -->
<Rule Ranges="3040-309F" FallbackFonts="MS Gothic" BaseFonts="Times New Roman"/>
<Rule Ranges="3040-309F" FallbackFonts="MS Mincho"/>
<!-- This rule defines that "Arial Unicode MS" fallback font should be used if applicable fallback font was not found by previous rules. -->
<Rule FallbackFonts="Arial Unicode MS"/>
</FallbackTable>
</FontFallbackSettings>Aspose.Words zapewnia predefiniowane ustawienia zastępczych czcionek dla czcionek Google Noto. Są to bezpłatne czcionki objęte licencją SIL Open Font License, które można pobrać ze strony Google Noto Fonts. Klasa FontFallbackSettings udostępnia metodę LoadNotoFallbackSettings. Ładuje predefiniowane ustawienia zastępcze, które używają czcionek Google Noto, jak pokazano w przykładzie kodu poniżej:
Aspose.Words próbuje automatycznie znaleźć czcionki TrueType w systemie plików. Zwykle w celu znalezienia czcionek TrueType można polegać na domyślnym zachowaniu Aspose.Words, ale czasami trzeba określić własne foldery zawierające czcionki TrueType. Temat Określ lokalizację czcionek TrueType opisuje, jak i gdzie Aspose.Words szuka czcionek, a także jak określić własne lokalizacje czcionek.
Istnieją pewne różnice w przetwarzaniu formatów czcionek w Aspose.Words i Microsoft Word, jak pokazano w poniższej tabeli:
| Microsoft Word | Aspose.Words | |
|---|---|---|
| Czcionki TrueType i czcionki OpenType z konturami TrueType | Utrzymany. | Utrzymany. |
| Czcionki OpenType z konturami PostScript | Obsługiwane w większości scenariuszy. Osadzanie w formatach o stałej stronie, takich jak PDF i XPS, nie jest obsługiwane. Tekst zostaje zastąpiony obrazami bitmapowymi. | Obsługiwane w większości scenariuszy, w tym osadzaniu w formatach o stałej stronie. |
| Odmiany czcionek OpenType | Obsługiwane są tylko nazwane instancje. Ciągłe zmiany nie są obsługiwane. | Obsługiwane tylko dla instancji domyślnej. Nazwane instancje i ciągłe odmiany nie są obsługiwane. |
| Czcionki typu 1 | Obsługiwane w wersjach Windows wcześniejszych niż 2013 i w wersjach MacOS. Wsparcie zostanie wycofane w wersjach Windows począwszy od 2013 roku. | Nieobsługiwany. |
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.