I caratteri sono un insieme di caratteri stampabili o visualizzabili con stili, pesi e così via diversi. Vengono utilizzati per aggiungere un aspetto diverso a documenti o pagine Web in base a requisiti diversi. I file dei caratteri contengono il design e altre informazioni relative al carattere. In questo articolo, utilizzeremo i file dei font per rilevare se un font supporta i simboli latini o meno a livello di codice con Java.

API Java per il rilevamento di simboli latini nei caratteri TrueType e Type1

Aspose.Font for Java è una libreria per lavorare con font come TrueType, CFF, Type1, ecc. L’API supporta il caricamento, il salvataggio e estrarre informazioni sui caratteri. L’API consente inoltre di rilevare il supporto per i simboli latini nei caratteri. Puoi scaricare l’API utilizzando Maven o scaricare il JAR dalla sezione download.

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

Rileva i simboli latini nei caratteri TrueType utilizzando Java

Di seguito sono riportati i passaggi per rilevare se un particolare font TrueType supporta i simboli latini o meno.

  • Crea un’istanza della classe FontDefinition utilizzando il file dei caratteri.
  • Crea un’istanza della classe TtfFont usando l’oggetto di FontDefinition creato nel passaggio precedente.
  • Scorri i diversi codici e decodificali in ID glifi.
  • Controlla gli ID dei glifi per il supporto dei simboli latini.

Il codice di esempio seguente mostra come rilevare se un particolare tipo di carattere TrueType supporta o meno i simboli latini.

// Percorso del file dei caratteri
String fileName = Utils.getDataDir() + "Montserrat-Regular.ttf"; //Font file name with full path

// Carica il file del carattere
FontDefinition fd = new FontDefinition(FontType.TTF, new FontFileDefinition("ttf", new FileSystemStreamSource(fileName)));
TtfFont ttfFont = (TtfFont) Font.open(fd);

boolean latinText = true;

// Verifica il supporto dei simboli latini
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()));
}

Rileva i simboli latini nei caratteri Type1 utilizzando Java

Il processo per rilevare il supporto per i simboli latini nei caratteri Type1 è simile ai caratteri TrueType. L’unica differenza è che useremo la classe Type1Font per accedere alle informazioni sui caratteri. Di seguito sono riportati i passaggi per rilevare il supporto per i simboli latini nei caratteri Type1.

  • Crea un’istanza della classe FontDefinition utilizzando il file dei caratteri.
  • Crea un’istanza della classe Type1Font utilizzando l’oggetto di FontDefinition creato nel passaggio precedente.
  • Scorri i diversi codici e decodificali in ID glifi.
  • Controlla gli ID dei glifi per il supporto dei simboli latini.

Il codice di esempio seguente mostra come rilevare se un particolare tipo di carattere Type1 supporta i simboli latini o meno.

// Percorso del file dei caratteri
String fileName = Utils.getDataDir() + "courier.pfb"; //Font file name with full path

// Carica il file del carattere
FontDefinition fd = new FontDefinition(FontType.Type1, new FontFileDefinition("pfb", new FileSystemStreamSource(fileName)));
Type1Font font = (Type1Font) Font.open(fd);

boolean latinText = true;

// Verifica il supporto dei simboli latini
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()));
}

Ottieni una licenza gratuita

Per provare l’API senza limitazioni di valutazione, puoi richiedere una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come rilevare il supporto per i simboli latini nei caratteri utilizzando Java. Gli esempi di codice condiviso consentono di rilevare se un particolare font supporta o meno i simboli latini. Aspose.Font per Java fornisce molte funzionalità aggiuntive per lavorare con i caratteri che puoi esplorare in dettaglio visitando la documentazione ufficiale. In caso di domande, non esitare a contattarci nel nostro forum di supporto gratuito.

Guarda anche