Excepciones y errores comunes 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
Verifique y confirme que se ha concedido acceso al directorio TEMP y a la carpeta de fuentes.
Solución alternativa
Utilice FontsLoader para cargar las fuentes requeridas sin instalarlas:
FontsLoader.loadExternalFonts(pathToFontsFolders);
Si no se puede acceder al directorio TEMP, use 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
-
Verifique y confirme que se ha concedido acceso a la carpeta de fuentes para el proceso de Java.
-
Instale algunas fuentes o use FontsLoader.
-
Instalar fuentes.
-
Ubuntu:
sudo apt-get update sudo apt-get install -y fonts-dejavu-core fc-cache -fv
-
CentOS:
sudo yum makecache sudo yum -y install dejavu-sans-fonts fc-cache -fv
-
Usando FontsLoader:
FontsLoader.loadExternalFonts(pathToFontsFolders);
-
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:
Instale fontconfig:
-
Ubuntu:
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 el archivo o directorio
Esta excepción ocurre en un sistema Linux que carece de la biblioteca libfreetype.
Solución:
Instale 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