Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words benötigt TrueType-Schriftarten für eine Vielzahl von Aufgaben, einschließlich der Darstellung von Dokumenten in Festseitenformaten, z. B. PDF oder XPS. Wenn Aspose.Words ein Dokument rendert, muss es das Einbetten und Einbetten von Teilmengen von TrueType -Schriftarten in das resultierende Dokument durchführen, was bei der Dokumenterstellung üblich ist, einschließlich gängiger PDF - oder XPS-Formate. Dadurch wird sichergestellt, dass das Dokument für jeden Betrachter gleich aussieht. Darüber hinaus erfordert die XPS -Spezifikation, dass Schriftarten immer in das Dokument eingebettet sind.
Um sicherzustellen, dass Aspose.Words die Zeichen genau misst und relevante Schriftarten erfolgreich einbettet, müssen die folgenden Bedingungen erfüllt sein:
Beachten Sie, dass die Schriftart im Dokument eine Entität darstellt, z. B. Familienname, Stil, Größe, Farbe, die sich von der Entität TrueType Schriftart (physische Schriftart) unterscheidet. Aspose.Words löst die Schriftart im Dokument zu einem bestimmten Zeitpunkt der Verarbeitung in eine physische Schriftart auf. Dies ermöglicht bestimmte Aufgaben, am häufigsten die Berechnung der Textgröße während der Layoutkonstruktion und das Einbetten / Unterteilen in feste Seitenformate. Eine Reihe anderer weniger beliebter Aufgaben, wie z. B. Schriftauflösung und -ersetzung beim Laden von HTML oder Einbetten / Unterteilen in einige Flow-Formate, sind ebenfalls aktiviert.
Alle verfügbaren Mechanismen zur Schriftmanipulation sind in der Klasse FontSettings enthalten. Diese Klasse ist für das Abrufen von Schriftarten innerhalb definierter Schriftquellen sowie für den Schriftartenersetzungsprozess verantwortlich, wie unten beschrieben.
Schriftarten werden in mehreren Schritten analysiert:
Wenn Aspose.Words zum ersten Mal auf eine Schriftart im Dokument stößt, versucht es, grundlegende Schriftarteninformationen wie den vollständigen Namen der Schriftart, den Familiennamen, die Version und den Stil aus den Schriftartendateien in jeder Schriftartquelle abzurufen. Nachdem alle Schriftarten abgerufen wurden, verwendet Aspose.Words diese Details, um die erforderlichen Schriftdaten oder einen geeigneten Ersatz für die angeforderte Schriftart zu finden.
Da das oben beschriebene Verfahren zeitaufwändig ist, kann es sich beim ersten Start negativ auf die Anwendungsleistung auswirken. Jede Instanz von FontSettings hat jedoch einen eigenen Cache, was die Verarbeitungszeit nachfolgender Dokumente verkürzen könnte. Sie können beispielsweise eine Instanz der Klasse FontSettings für verschiedene Dokumente freigeben, wodurch Sie das Laden der Dokumente beschleunigen können. Das folgende Beispiel zeigt dies:
Wenn FontSettings nicht explizit definiert ist, verwendet Aspose.Words die Standardinstanz FontSettings. Diese Instanz wird auch automatisch von Dokumenten gemeinsam genutzt und kann wie folgt extrahiert werden:
Java
FontSettings fontSettings = FontSettings.getDefaultInstance();
Wenn Sie sicher sind, dass für alle verarbeitenden Dokumente dieselben Schriftarteinstellungen erforderlich sind, wird empfohlen, die Standardinstanz FontSettings einzurichten und zu verwenden. Angenommen, Sie müssen für alle Ihre Dokumente dieselben Schriftquellen verwenden. In diesem Fall können Sie die Standardinstanz einfach wie folgt ändern:
Ein Text in einem Dokument kann mit verschiedenen Schriftarten formatiert werden, z. B. Arial, Times New Roman, Verdana und anderen. Wenn Aspose.Words ein Dokument rendert, versucht es, die im Dokument angegebenen Schriftarten auszuwählen.
Es gibt jedoch Situationen, in denen die genaue Schriftart nicht gefunden werden kann und Aspose.Words sie stattdessen durch eine ähnliche Schriftart ersetzen muss. Aspose.Words wählt die Schriftart gemäß dem folgenden Prozess aus:
FontConfig anzuwenden. Diese Nicht-Windows-Funktion muss mit einem FontConfig-kompatiblen OS verwendet werden. Fast jedes Unix-basierte OS verfügt bereits über eine FontConfig -Bibliothek, die eine systemweite Schriftkonfiguration, Anpassung und Zugriff auf Anwendungen ermöglicht. Ansonsten kann diese Bibliothek einfach vom Benutzer installiert werden.FontConfig deaktiviert. Sie können es wie folgt aktivieren: fontSettings.getSubstitutionSettings().getFontConfigSubstitution()().setEnabled(true);
<TableSubstitutionSettings xmlns="Aspose.Words">
<SubstitutesTable>
<Item OriginalFont="Arabic Transparent" SubstituteFonts="Arial" />
…
</SubstitutesTable>
</TableSubstitutionSettings>
fontSettings.getSubstitutionSettings().getTableSubstitution().load("Table.xml");
fontSettings.getSubstitutionSettings().getTableSubstitution().save("MyTable.xml");
fontSettings.getSubstitutionSettings().getTableSubstitution().setEnabled(false);
FontInfoCollection fontInfos = doc.getFontInfos();
fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled(false);
FontInfo Ersetzung ebenfalls fehlgeschlagen ist. Diese Regel ist auch standardmäßig aktiviert. Gemäß dieser Regel versucht Aspose.Words, die in der Eigenschaft DefaultFontName angegebene Standardschriftart zu verwenden. Wenn der Benutzer keine eigene Standardschriftart ausgewählt hat, wird “Times New Roman” als Standardschriftart verwendet. Diese Regel kann wie unten gezeigt deaktiviert werden: fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setEnabled(false);
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().getDefaultFontName();
fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
Manchmal ist es möglicherweise unklar, warum sich das Dokumentlayout geändert hat oder warum eine Schriftart nicht wie erwartet aussieht. In solchen Fällen helfen Warnmeldungen zum Ersetzen von Schriftarten, die von der IWarningCallback -Schnittstelle implementiert werden. Sie haben den Warnungstyp FontSubstitution und das Standardbeschreibungstextformat “Schriftart ‘
In Aspose.Words werden zwei verschiedene Mechanismen verwendet - Schriftartenersetzung und Schriftartenfallback. Die Schriftartenersetzung wird verwendet, wenn die im Dokument angegebene Schriftart nicht unter den Schriftquellen gefunden werden konnte, wie es in den obigen Abschnitten beschrieben wurde. Der Schriftarten-Fallback-Mechanismus wird verwendet, wenn die Schriftart aufgelöst ist, aber kein bestimmtes Zeichen enthält. In diesem Fall versucht Aspose.Words, eine der Fallback-Schriftarten für das Zeichen zu verwenden.
Es gibt eine BuildAutomatic -Methode, die die Fallback-Einstellungen automatisch erstellt, indem verfügbare Schriftarten gescannt werden. Da diese Methode möglicherweise eine nicht optimale Fallback-Einstellung erzeugt, können Sie das Fallback-Verhalten für Schriftarten mithilfe der Eigenschaften der Klasse FontFallbackSettings steuern. Diese Klasse gibt Einstellungen für den Schriftarten-Fallback-Mechanismus an. Sie können eine Instanz der Klasse FontFallbackSettings wie folgt abrufen:
Java
FontFallbackSettings settings = fontSettings.getFallbackSettings();
Ähnlich wie Table substitution rule verwendet dieser Mechanismus XML -Tabellen für die Konfiguration. Diese XML-Tabellen können mit den folgenden Methoden geladen und gespeichert werden:
Java
fontSettings.getFallbackSettings().load("MyNewFallbackTable.xml");
fontSettings.getFallbackSettings().save("Current_FallbackTable.xml");
Die Aspose.Words-Version enthält zwei Tabellen: MsOfficeFallbackSetting.xml und NotoFallbackSetting.xml.
Die Tabelle MsOfficeFallbackSetting definiert eine Ersetzungsstrategie für einen Zeichenbereich, die der von Microsoft Word verwendeten Strategie ähnelt. Daher erfordert die Strategie die Installation von Microsoft Office-Schriftarten. MsOfficeFallbackSetting kann mit der folgenden Methode aktiviert werden:
.Java
fontSettings.getFallbackSettings().loadMsOfficeFallbackSettings();
Die NotoFallbackSetting-Tabelle wurde speziell für die Verwendung mit Google Noto-Schriftarten erstellt (siehe mehr zu den Google Noto-Schriftarteinstellungen im nächsten Abschnitt) und kann wie folgt aktiviert werden:
Java
fontSettings.getFallbackSettings().loadNotoFallbackSettings();
Das folgende Codebeispiel zeigt, wie Schriftarten-Fallback-Einstellungen aus einer XML-Datei geladen werden:
Im obigen Codebeispiel wird die folgende XML -Datei verwendet:
<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 bietet vordefinierte Schriftarten-Fallback-Einstellungen für Google Noto-Schriftarten. Dies sind kostenlose Schriftarten, die unter SIL Open Font License lizenziert sind und von Google Noto Fonts heruntergeladen werden können. Die FontFallbackSettings -Klasse stellt eine LoadNotoFallbackSettings -Methode bereit. Es werden vordefinierte Fallback-Einstellungen geladen, die Google Noto -Schriftarten verwenden, wie im folgenden Codebeispiel gezeigt:
Aspose.Words versucht automatisch, TrueType Schriftarten im Dateisystem zu finden. Normalerweise können Sie sich auf das Standardverhalten von Aspose.Words verlassen, um die TrueType -Schriftarten zu finden, aber manchmal müssen Sie Ihre eigenen Ordner angeben, die TrueType -Schriftarten enthalten. Der Geben Sie den Speicherort für TrueType Schriften an in diesem Thema wird beschrieben, wie und wo Aspose.Words nach Schriftarten sucht und wie Sie Ihre eigenen Schriftpositionen angeben.
Es gibt einige Unterschiede bei der Verarbeitung von Schriftformaten in Aspose.Words und Microsoft Word, wie in der folgenden Tabelle gezeigt:
| Microsoft Word | Aspose.Words | |
|---|---|---|
| TrueType Schriftarten und OpenType Schriftarten mit TrueType Konturen | Unterstützte. | Unterstützte. |
| OpenType Schriftarten mit PostScript Konturen | Wird für die meisten Szenarien unterstützt. Das Einbetten in feste Seitenformate wie PDF und XPS wird nicht unterstützt. Der Text wird durch Bitmap-Bilder ersetzt. | Wird für die meisten Szenarien unterstützt, einschließlich der Einbettung in Formate mit fester Seite. |
| OpenType Schriftvarianten | Nur benannte Instanzen werden unterstützt. Kontinuierliche Variationen werden nicht unterstützt. | Wird für die einzige Standardinstanz unterstützt. Benannte Instanzen und kontinuierliche Variationen werden nicht unterstützt. |
| Type1 Schriftarten | Wird von Windows -Versionen vor 2013 und von MacOS -Versionen unterstützt. Die Unterstützung für Windows -Versionen ab 2013 wird eingestellt. | Nicht unterstützt. |
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.