在Linux上与字体有关的常见异常和错误

在Linux上执行代码时缺少文本或图像(emf或wmf)

此问题在以下限制的系统中发生:

  1. 当没有安装字体或Java进程无法访问字体文件夹时
  2. 当TEMP目录无法访问时。

解决方案

检查并确认已授予对TEMP目录和字体文件夹的访问权限。

解决方法

使用FontsLoader加载所需字体而无需安装它们:


FontsLoader.loadExternalFonts(pathToFontsFolders);


如果TEMP目录无法访问,请使用此代码指定另一个目录作为Java的TEMP:


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); }


异常:InvalidOperationException:找不到安装在系统上的任何字体

当发生以下情况时,会出现此异常:

1)Java进程无法访问字体文件夹 2)未安装任何字体。

解决方案

  1. 检查并确认已授予Java进程对字体文件夹的访问权限。

  2. 安装一些字体或使用FontsLoader

  3. 安装字体。

    • 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

     ```

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

```php

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

     ```

## **异常:NoClassDefFoundError:无法初始化类com.aspose.slides.internal.ey.this**

此异常发生在缺少fontconfig和字体的Linux系统上。

### 解决方案:

安装fontconfig:

* Ubuntu:

```php

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


  • CentOS:

sudo yum makecache sudo yum -y install fontconfig


此外,一些open-jdk版本(例如,alpine JDK)也需要安装字体

  • Ubuntu:

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


  • CentOS:

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


异常:UnsatisfiedLinkError:libfreetype.so.6:无法打开共享对象文件:没有这样的文件或目录

此异常发生在缺少libfreetype库的Linux系统上。

解决方案:

安装libfreetype和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