Teckensnitt är en uppsättning utskrivbara eller visningsbara tecken med olika stilar, vikter etc. De används för att lägga till ett annat utseende och känsla till dokument eller webbsidor baserat på olika krav. Teckensnittsfiler innehåller designen och annan information om typsnittet. I den här artikeln kommer vi att använda teckensnittsfilerna för att upptäcka om ett teckensnitt stöder latinska symboler eller inte programmatiskt med Java.

Java API för att upptäcka latinska symboler i TrueType- och Type1-teckensnitt

Aspose.Font for Java är ett bibliotek för att arbeta med typsnitt som TrueType, CFF, Type1, etc. API:et stöder laddning, sparande och extrahera information om typsnitt. API:et låter dig också upptäcka stödet för latinska symboler i teckensnitt. Du kan antingen ladda ner API:t med Maven eller ladda ner JAR från avsnittet downloads.

<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>

Upptäck latinska symboler i TrueType-teckensnitt med Java

Följande är stegen för att upptäcka om ett visst TrueType-teckensnitt stöder latinska symboler eller inte.

  • Skapa en instans av klassen FontDefinition med hjälp av teckensnittsfilen.
  • Skapa en instans av klassen TtfFont med hjälp av objektet för FontDefinition som skapades i föregående steg.
  • Gå igenom de olika koderna och avkoda dem till glyf-ID:n.
  • Kontrollera glyf-ID:n för stöd för latinska symboler.

Följande exempelkod visar hur du upptäcker om ett visst TrueType-teckensnitt stöder latinska symboler eller inte.

// Sökväg för teckensnittsfil
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// Ladda teckensnittsfilen
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// Kontrollera om det finns stöd för latinska symboler
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()));
}

Upptäck latinska symboler i Type1-teckensnitt med Java

Processen för att upptäcka stöd för latinska symboler i Type1-teckensnitt liknar TrueType-teckensnitt. Den enda skillnaden är att vi kommer att använda klassen Type1Font för att komma åt teckensnittsinformationen. Följande är stegen för att upptäcka stöd för latinska symboler i Type1-teckensnitt.

  • Skapa en instans av klassen FontDefinition med hjälp av teckensnittsfilen.
  • Skapa en instans av klassen Type1Font med hjälp av objektet för FontDefinition som skapades i föregående steg.
  • Gå igenom de olika koderna och avkoda dem till glyf-ID:n.
  • Kontrollera glyf-ID:n för stöd för latinska symboler.

Följande exempelkod visar hur du upptäcker om ett visst typsnitt av typ 1 stöder latinska symboler eller inte.

// Sökväg för teckensnittsfil
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// Ladda teckensnittsfilen
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// Kontrollera om det finns stöd för latinska symboler
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()));
}

Skaffa en gratis licens

För att prova API:t utan utvärderingsbegränsningar kan du begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du upptäcker stödet för latinska symboler i typsnitt med Java. De delade kodexemplen gör att du kan upptäcka om ett visst teckensnitt stöder latinska symboler eller inte. Aspose.Font för Java tillhandahåller många ytterligare funktioner för att arbeta med typsnitt som du kan utforska i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även