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を初期化できませんでした**

この例外はフォントコンフィグとフォントが不足している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