フォントは、さまざまなスタイル、太さなどの印刷可能または表示可能な文字のセットです。フォントは、さまざまな要件に基づいて、ドキュメントまたはWebページにさまざまなルックアンドフィールを追加するために使用されます。フォントファイルには、フォントに関するデザインやその他の情報が含まれています。この記事では、フォントファイルを使用して、フォントがJavaでプログラム的にラテン記号をサポートしているかどうかを検出します。

TrueTypeおよびType1フォントのラテン記号を検出するためのJavaAPI

Aspose.Font for Javaは、TrueTypeCFFType1などのフォントを操作するためのライブラリです。APIは、読み込み、保存、およびフォントに関する情報を抽出します。 APIを使用すると、フォントでのラテン記号のサポートを検出することもできます。 Mavenを使用してAPIをダウンロードするか、ダウンロードセクションからJARをダウンロードできます。

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

Javaを使用してTrueTypeフォントのラテン記号を検出する

以下は、特定のTrueTypeフォントがラテン記号をサポートしているかどうかを検出する手順です。

  • フォントファイルを使用して、FontDefinitionクラスのインスタンスを作成します。
  • 前の手順で作成したFontDefinitionのオブジェクトを使用して、TtfFontクラスのインスタンスを作成します。
  • さまざまなコードをループして、それらをグリフIDにデコードします。
  • ラテン記号のサポートについては、グリフIDを確認してください。

次のサンプルコードは、特定のTrueTypeフォントがラテン記号をサポートしているかどうかを検出する方法を示しています。

// フォントファイルのパス
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 ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// ラテン記号のサポートを確認してください
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()));
}

Javaを使用してType1フォントのラテン記号を検出する

Type1フォントでラテン記号のサポートを検出するプロセスは、TrueTypeフォントに似ています。唯一の違いは、Type1Fontクラスを使用してフォント情報にアクセスすることです。以下は、Type1フォントでのラテン記号のサポートを検出するための手順です。

  • フォントファイルを使用して、FontDefinitionクラスのインスタンスを作成します。
  • 前の手順で作成したFontDefinitionのオブジェクトを使用して、Type1Fontクラスのインスタンスを作成します。
  • さまざまなコードをループして、それらをグリフIDにデコードします。
  • ラテン記号のサポートについては、グリフIDを確認してください。

次のサンプルコードは、特定のType1フォントがラテン記号をサポートしているかどうかを検出する方法を示しています。

// フォントファイルのパス
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// フォントファイルをロードします
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// ラテン記号のサポートを確認してください
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()));
}

無料ライセンスを取得する

評価制限なしでAPIを試すために、無料の一時ライセンスをリクエストできます。

結論

この記事では、Javaを使用してフォント内のラテン記号のサポートを検出する方法を学習しました。共有コードサンプルを使用すると、特定のフォントがラテン記号をサポートしているかどうかを検出できます。 Aspose.Font for Javaは、公式ドキュメントにアクセスして詳細に調べることができるフォントを操作するための多くの追加機能を提供します。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目