Pengecualian dan Kesalahan Umum yang Melibatkan Font di Linux
Ikhtisar
Ketika Aspose.Slides digunakan di Linux, masalah terkait font dapat terjadi jika proses Java tidak dapat mengakses folder font yang diperlukan atau direktori sementara, jika tidak ada font yang diinstal pada sistem, atau jika pustaka sistem yang diperlukan seperti fontconfig atau libfreetype tidak ada.
Artikel ini menjelaskan kesalahan dan pengecualian umum yang terkait dengan font di Linux serta menyediakan solusi untuk mengatasinya. Ini menjelaskan cara memeriksa akses ke direktori font dan TEMP, menginstal font serta pustaka yang diperlukan, dan menggunakan FontsLoader untuk memuat font tanpa menginstalnya secara sistem.
Teks atau Gambar Hilang (EMF atau WMF) Saat Kode Dijalankan di Linux
Masalah ini terjadi pada sistem dengan pembatasan dalam kasus berikut:
- Ketika tidak ada font yang diinstal atau ketika folder font untuk proses java tidak dapat diakses
- Ketika direktori TEMP tidak dapat diakses.
Solusi
Periksa dan pastikan bahwa akses ke direktori TEMP dan folder font telah diberikan.
Solusi Sementara
Gunakan FontsLoader untuk memuat font yang diperlukan tanpa menginstalnya:
FontsLoader.loadExternalFonts(pathToFontsFolders);
Jika direktori TEMP tidak dapat diakses, gunakan kode ini untuk menentukan direktori lain sebagai TEMP untuk 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);
}
Pengecualian: InvalidOperationException: Tidak Dapat Menemukan Font yang Diinstal pada Sistem
Pengecualian ini terjadi ketika
- proses Java tidak dapat mengakses folder font
- tidak ada font yang diinstal.
Solusi
-
Periksa dan pastikan bahwa akses ke folder font untuk proses Java telah diberikan.
-
Instal beberapa font atau gunakan FontsLoader.
-
Instal font.
-
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
-
Menggunakan FontsLoader:
FontsLoader.loadExternalFonts(pathToFontsFolders);
## **Pengecualian: NoClassDefFoundError: Tidak Dapat Menginisialisasi Kelas com.aspose.slides.internal.ey.this**
Pengecualian ini terjadi pada sistem Linux yang tidak memiliki fontconfig dan font.
### **Solusi**
Instal fontconfig:
* Ubuntu:
sudo apt-get update sudo apt-get -y install fontconfig
* CentOS:
sudo yum makecache sudo yum -y install fontconfig
Selain itu, beberapa versi open-jdk (misalnya, **alpine JDK**) juga **memerlukan font yang diinstal**.
* Ubuntu:
sudo apt-get install -y fonts-dejavu-core fc-cache -fv
* CentOS:
sudo yum -y install dejavu-sans-fonts fc-cache -fv
## **Pengecualian: UnsatisfiedLinkError: libfreetype.so.6: Tidak Dapat Membuka File Objek Bersama: Tidak Ada File atau Direktori**
Pengecualian ini terjadi pada sistem Linux yang tidak memiliki pustaka libfreetype.
### **Solusi**
Instal libfreetype dan 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
TIP
Jangan lupa menginstal font atau menggunakan FontsLoader.