Excepciones Comunes y Errores Relacionados con Fuentes en Linux

Texto o imágenes faltantes (emf o wmf) cuando se ejecuta el código en Linux

Este problema ocurre en sistemas con restricciones en estos casos:

  1. Cuando no hay fuentes instaladas o cuando no se puede acceder a la carpeta de fuentes para el proceso de java.
  2. Cuando no se puede acceder al directorio TEMP.

Solución

Verifica y confirma que se ha otorgado acceso al directorio TEMP y a la carpeta de fuentes.

Método alternativo

Usa FontsLoader para cargar las fuentes requeridas sin instalarlas:


FontsLoader.loadExternalFonts(pathToFontsFolders);


Si no se puede acceder al directorio TEMP, utiliza este código para especificar otro directorio como TEMP para Java:


String newTempFolder = “pathToTmpFolder”; String oldValue = System.getProperty(“java.io.tmpdir”); java.io.File file = new java.io.File(newTempFolder); if (!file.exists()) file.mkdir(); System.setProperty(“java.io.tmpdir”, newTempFolder); try {

FontsLoader.loadExternalFonts(pathToFontsFolders);

Presentation pres = ...
# ....

} finally { System.setProperty(“java.io.tmpdir”, oldValue); }


Excepción: InvalidOperationException: No se pueden encontrar fuentes instaladas en el sistema

Esta excepción ocurre cuando

  1. el proceso de Java no puede acceder a la carpeta de fuentes
  2. no se han instalado fuentes.

Solución

  1. Verifica y confirma que se ha otorgado acceso a la carpeta de fuentes para el proceso de Java.

  2. Instala algunas fuentes o usa FontsLoader.

  3. Instala fuentes.

    • Ubuntu:

     ```
     sudo apt-get update
     sudo apt-get install -y fonts-dejavu-core
     fc-cache -fv
```php

     ```

   * CentOS: 

```php

     ```
     sudo yum makecache
     sudo yum -y install dejavu-sans-fonts
     fc-cache -fv
```php

     ```

   * Usando [FontsLoader](https://reference.aspose.com/slides/php-java/aspose.slides/FontsLoader):

```php

     ```
     FontsLoader.loadExternalFonts(pathToFontsFolders);
```php

     ```

## **Excepción: NoClassDefFoundError: No se pudo inicializar la clase com.aspose.slides.internal.ey.this**

Esta excepción ocurre en un sistema Linux que carece de fontconfig y fuentes.

### Solución:

Instala fontconfig:

* Ubuntu:

```php

sudo apt-get update sudo apt-get -y install fontconfig


  • CentOS:

sudo yum makecache sudo yum -y install fontconfig


Además, algunas versiones de open-jdk (por ejemplo, alpine JDK) también requieren fuentes instaladas.

  • Ubuntu:

sudo apt-get install -y fonts-dejavu-core fc-cache -fv


  • CentOS:

sudo yum -y install dejavu-sans-fonts fc-cache -fv


Excepción: UnsatisfiedLinkError: libfreetype.so.6: no se puede abrir el archivo de objeto compartido: No existe tal archivo o directorio

Esta excepción ocurre en un sistema Linux que carece de la biblioteca libfreetype.

Solución:

Instala libfreetype y fontconfig:

  • Ubuntu:

sudo apt-get update sudo apt-get install libfreetype6 sudo apt-get -y install fontconfig


  • CentOS:

sudo yum makecache sudo yum install libfreetype6 sudo yum -y install fontconfig