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 és FontDefinition használatával, a FontType.TTF. megadásával.
  • Kérje le a OS/2 tá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() vagy isRestrictedLicenseEmbedding().

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.