Písma jsou sada tisknutelných nebo zobrazitelných znaků s různými styly, tloušťkami atd. Používají se k přidání jiného vzhledu dokumentů nebo webových stránek na základě různých požadavků. Soubory písem obsahují design a další informace týkající se písma. V tomto článku použijeme soubory písem ke zjištění, zda písmo programově s Javou podporuje latinské symboly nebo ne.

Java API pro detekci latinských symbolů ve fontech TrueType a Type1

Aspose.Font for Java je knihovna pro práci s fonty jako TrueType, CFF, Type1 atd. API podporuje načítání, ukládání a extrahování informací o písmech. Rozhraní API vám také umožňuje zjistit podporu latinských symbolů v písmech. Můžete si buď stáhnout API pomocí Maven, nebo si stáhnout JAR ze sekce ke stažení.

<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>21.4</version>
</dependency>

Detekce latinských symbolů ve fontech TrueType pomocí Java

Následují kroky ke zjištění, zda konkrétní písmo TrueType podporuje latinské symboly či nikoli.

  • Vytvořte instanci třídy FontDefinition pomocí souboru písma.
  • Vytvořte instanci třídy TtfFont pomocí objektu FontDefinition vytvořeného v předchozím kroku.
  • Procházejte různé kódy a dekódujte je na ID glyfů.
  • Zkontrolujte, zda ID glyfů podporují latinské symboly.

Následující ukázkový kód ukazuje, jak zjistit, zda konkrétní písmo TrueType podporuje latinské symboly či nikoli.

// Cesta k souboru písma
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// Načtěte soubor písma
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// Zkontrolujte podporu latinských symbolů
for (int code = 65; code < 123; code++)
{
    GlyphId gid = ttfFont.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", ttfFont.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", ttfFont.getFontName()));
}

Detekce latinských symbolů ve fontech Type1 pomocí Java

Proces zjišťování podpory pro latinské symboly v písmech Type1 je podobný jako u písem TrueType. Jediný rozdíl je v tom, že pro přístup k informacím o písmu použijeme třídu Type1Font. Následují kroky ke zjištění podpory latinských symbolů v písmech Type1.

  • Vytvořte instanci třídy FontDefinition pomocí souboru písma.
  • Vytvořte instanci třídy Type1Font pomocí objektu FontDefinition vytvořeného v předchozím kroku.
  • Procházejte různé kódy a dekódujte je na ID glyfů.
  • Zkontrolujte, zda ID glyfů podporují latinské symboly.

Následující ukázkový kód ukazuje, jak zjistit, zda určité písmo Type1 podporuje latinské symboly či nikoli.

// Cesta k souboru písma
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// Načtěte soubor písma
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// Zkontrolujte podporu latinských symbolů
for (int code = 65; code < 123; code++)
{
    GlyphId gid = font.getEncoding().decodeToGid(code);
    if (gid == null || gid == GlyphUInt32Id.getNotDef())
    {
        latinText = false;
    }
}

if (latinText)
{
    System.out.println(MessageFormat.format("Font {0} supports latin symbols.", font.getFontName()));
}
else
{
    System.out.println(MessageFormat.format("Latin symbols are not supported by font {0}.", font.getFontName()));
}

Získejte bezplatnou licenci

Abyste mohli API vyzkoušet bez omezení hodnocení, můžete požádat o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili, jak zjistit podporu latinských symbolů ve fontech pomocí Java. Ukázky sdíleného kódu vám umožňují zjistit, zda konkrétní písmo podporuje latinské symboly či nikoli. Aspose.Font for Java poskytuje mnoho dalších funkcí pro práci s písmy, které můžete podrobně prozkoumat na oficiální dokumentaci. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také