TrueType és OpenType betűtípusok licenckorlátozásainak kinyerése Java használatával
Digitális betűtípusok szoftveralkalmazásokban, dokumentumgeneráló motorokban vagy webplatformokon történő használatakor kritikus fontosságú a betűtípusok licenckorlátozásainak betartása. A betűtípus-szolgáltatók a licencelési és használati szabályokat közvetlenül a betűtípusfájlokba ágyazzák annak meghatározásához, hogy a betűtípusok hogyan ágyazhatók be, telepíthetők vagy módosíthatók. Az Aspose.Font for Java használatával a fejlesztők megvizsgálhatják a beágyazott OS/2 tábla metrikáit, és programozott módon kinyerhetik a licenckorlátozásokat TrueType (.ttf) és OpenType (.otf) betűtípusfájlokból.
A betűtípus-licencelési módok megértése
A TrueType és OpenType betűtípus-specifikációk a beágyazási engedélyeket a betűtípus OS/2 táblájában található fsType jelzőben tárolják. Az Aspose.Font for Java a beágyazott licenckorlátozásokat a LicenseFlags osztály segítségével különböző módokba sorolja:
- Telepíthető beágyazás: A betűtípus beágyazható és tartósan telepíthető távoli rendszereken, illetve más felhasználók általi használatra.
- Szerkeszthető beágyazás: A betűtípus beágyazható és ideiglenesen betölthető más rendszereken. A szerkesztés engedélyezett, beleértve az új szöveg formázását a beágyazott betűtípussal, és a módosítások menthetők.
- Előnézeti és nyomtatási beágyazás: A betűtípus beágyazható és ideiglenesen betölthető más rendszereken, kizárólag a dokumentum megtekintésére vagy nyomtatására.
- Korlátozott licencű beágyazás: A betűtípus semmilyen módon nem módosítható, ágyazható be vagy cserélhető ki a jogtulajdonos kifejezett engedélyének előzetes megszerzése nélkül.
TTF licenckorlátozások kinyerése Java használatával
A licencengedélyek Aspose.Font for Java használatával történő beolvasásához:
- Töltse be a betűtípusfájlt a
FontFileDefinitionésFontDefinitionhasználatával, aFontType.TTF.megadásával. - Kérje le a
OS/2táblát a betűtípus táblagyűjteményéből (getTtfTables().getOs2Table()). - Szerezze be a licencjelzőket a
getLicenseFlags()használatával. - Értékelje a beágyazási jogosultságokat olyan segédmetódusokkal, mint a
isEditableEmbedding(),isInstallableEmbedding(),isPreviewAndPrintEmbedding()vagyisRestrictedLicenseEmbedding().
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()));
}
}Telepítés és beállítás
Adja hozzá az Aspose.Font for Java könyvtárat a projekthez Mavenen keresztül.
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>
GYIK
1. Támogatják a Type1 betűtípusok a licenckorlátozások kinyerését a LicenseFlags használatával?
Nem. A szabványos Type1 betűtípus-formátumok (.pfb/.pfa) nem tartalmaznak OS/2 táblát. Az fsType jelző és az OS/2 tábla szerkezete a TrueType (.ttf) és OpenType (.otf) betűtípus-formátumokra jellemző.
2. Mit jelent, ha a licenseFlags.isFSTypeAbsent() értéke true?
Ha az isFSTypeAbsent() true értéket ad vissza (vagy ha a licenseFlags értéke null), az azt jelzi, hogy a betűtípusfájl OS/2 táblájában nincsenek beágyazott licenckorlátozási jelzők.
3. Hogyan ellenőrizhetem, hogy egy betűtípus engedélyezi-e a dokumentum tartalmának szerkesztését?
Ellenőrizheti a licenseFlags.isEditableEmbedding() értékét. Ha az érték true, a betűtípus lehetővé teszi az ideiglenes betöltést és szerkesztést, így a felhasználók az új szöveget a beágyazott betűtípussal formázhatják, majd menthetik a módosításokat.