Lizenzbeschränkungen von TrueType- und OpenType-Schriftarten mit Java extrahieren
Bei der Arbeit mit digitalen Schriftarten in Softwareanwendungen, Dokumentgenerierungs-Engines oder Webplattformen ist die Einhaltung von Lizenzbeschränkungen für Schriftarten von entscheidender Bedeutung. Schriftanbieter betten Lizenz- und Nutzungsregeln direkt in Schriftdateien ein, um festzulegen, wie Schriftarten eingebettet, installiert oder geändert werden dürfen. Mit Aspose.Font for Java können Entwickler eingebettete Metriken der OS/2-Tabelle überprüfen und Lizenzbeschränkungen programmgesteuert aus TrueType- (.ttf) und OpenType-Schriftdateien (.otf) extrahieren.
Schriftlizenzierungsmodi verstehen
Die TrueType- und OpenType-Schriftartspezifikationen speichern Einbettungsberechtigungen im fsType-Flag innerhalb der OS/2-Tabelle der Schriftart. Aspose.Font for Java kategorisiert diese eingebetteten Lizenzbeschränkungen mithilfe der Klasse LicenseFlags in verschiedene Modi:
- Installierbare Einbettung: Die Schriftart darf eingebettet und dauerhaft auf Remote-Systemen installiert oder von anderen Benutzern verwendet werden.
- Bearbeitbare Einbettung: Die Schriftart darf eingebettet und vorübergehend auf anderen Systemen geladen werden. Die Bearbeitung ist zulässig, einschließlich der Formatierung neuen Textes mit der eingebetteten Schriftart, und Änderungen können gespeichert werden.
- Einbettung für Vorschau und Druck: Die Schriftart darf eingebettet und vorübergehend auf anderen Systemen geladen werden, ausschließlich zum Anzeigen oder Drucken des Dokuments.
- Einbettung mit eingeschränkter Lizenz: Die Schriftart darf ohne vorherige ausdrückliche Genehmigung des rechtmäßigen Eigentümers in keiner Weise geändert, eingebettet oder weitergegeben werden.
TTF-Lizenzbeschränkungen in Java extrahieren
So lesen Sie Lizenzberechtigungen mit Aspose.Font for Java:
- Laden Sie die Schriftdatei mit
FontFileDefinitionundFontDefinition, wobei SieFontType.TTF.angeben. - Rufen Sie die
OS/2-Tabelle aus der Tabellensammlung der Schriftart (getTtfTables().getOs2Table()) ab. - Rufen Sie die Lizenzflags mit
getLicenseFlags()ab. - Bewerten Sie die Einbettungsrechte mithilfe von Hilfsmethoden wie
isEditableEmbedding(),isInstallableEmbedding(),isPreviewAndPrintEmbedding()oderisRestrictedLicenseEmbedding().
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; // Font file name with full path
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont font = (TtfFont) Font.open(fd);
LicenseFlags licenseFlags = null;
if (font.getTtfTables().getOs2Table() != null)
{
licenseFlags = font.getTtfTables().getOs2Table().getLicenseFlags();
}
if (licenseFlags == null || licenseFlags.isFSTypeAbsent())
{
System.out.println(MessageFormat.format("Font {0} has no embedded license restrictions", font.getFontName()));
}
else
{
if (licenseFlags.isEditableEmbedding())
{
System.out.println(MessageFormat.format("Font {0} may be embedded, and may be temporarily loaded on other systems."
+ " In addition, editing is permitted, including ability to format new text"
+ " using the embedded font, and changes may be saved.", font.getFontName()));
}
else if (licenseFlags.isInstallableEmbedding())
{
System.out.println(MessageFormat.format("Font {0} may be embedded, and may be permanently installed"
+ " for use on a remote systems, or for use by other users.", font.getFontName()));
}
else if (licenseFlags.isPreviewAndPrintEmbedding())
{
System.out.println(MessageFormat.format("Font {0} may be embedded, and may be temporarily loaded"
+ " on other systems for purposes of viewing or printing the document.", font.getFontName()));
}
else if (licenseFlags.isRestrictedLicenseEmbedding())
{
System.out.println(MessageFormat.format("Font {0} must not be modified, embedded or exchanged in any manner"
+ " without first obtaining explicit permission of the legal owner.", font.getFontName()));
}
}Installation und Einrichtung
Binden Sie Aspose.Font for Java über Maven in Ihr Projekt ein.
Package Manager Console Command
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-font</artifactId>
<version>Latest</version>
</dependency>
FAQ
1. Unterstützen Type1-Schriftarten das Extrahieren von Lizenzbeschränkungen mithilfe von LicenseFlags?
Nein. Standardmäßige Type1-Schriftformate (.pfb/.pfa) enthalten keine OS/2-Tabelle. Das fsType-Flag und die Struktur der OS/2-Tabelle sind spezifisch für die Schriftformate TrueType (.ttf) und OpenType (.otf).
2. Was bedeutet es, wenn licenseFlags.isFSTypeAbsent() true zurückgibt?
Wenn isFSTypeAbsent() true zurückgibt (oder wenn licenseFlags null ist), bedeutet dies, dass in der OS/2-Tabelle der Schriftdatei keine eingebetteten Lizenzbeschränkungsflags vorhanden sind.
3. Wie überprüfe ich, ob eine Schriftart das Bearbeiten von Dokumentinhalten erlaubt?
Sie können licenseFlags.isEditableEmbedding() überprüfen. Wenn der Wert true ist, erlaubt die Schriftart das vorübergehende Laden und Bearbeiten, sodass Benutzer neuen Text mit der eingebetteten Schriftart formatieren und Änderungen speichern können.