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:
- Cuando no hay fuentes instaladas o cuando no se puede acceder a la carpeta de fuentes para el proceso de java.
- 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
- el proceso de Java no puede acceder a la carpeta de fuentes
- no se han instalado fuentes.
Solución
-
Verifica y confirma que se ha otorgado acceso a la carpeta de fuentes para el proceso de Java.
-
Instala algunas fuentes o usa FontsLoader.
-
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