Linux'ta Yazı Tipleriyle İlgili Ortak İstisnalar ve Hatalar
Genel Bakış
Aspose.Slides Linux’ta kullanıldığında, Java işlemi gerekli yazı tipi klasörlerine veya geçici dizine erişemezse, sistemde hiç yazı tipi yüklü değilse veya fontconfig veya libfreetype gibi gerekli sistem kütüphaneleri eksikse, yazı tipiyle ilgili sorunlar ortaya çıkabilir.
Bu makale, Linux’ta yazı tipleriyle ilgili yaygın hata ve istisnaları açıklar ve çözüm önerileri sunar. Yazı tipi ve TEMP dizinlerine erişimin nasıl kontrol edileceğini, gerekli yazı tipleri ve kütüphanelerin nasıl yükleneceğini ve FontsLoader kullanarak sistem genelinde yüklemeden yazı tiplerini nasıl yükleyeceğinizi anlatır.
Linux’ta Kod Çalıştırıldığında Eksik Metin veya Görüntüler (EMF veya WMF)
Bu sorun aşağıdaki durumlarda kısıtlamalar bulunan sistemlerde oluşur:
- Yazı tipi yüklü olmadığında veya Java işlemi için yazı tipi klasörüne erişilemediğinde
- TEMP dizinine erişilemediğinde.
Çözüm
TEMP dizinine ve yazı tipi klasörüne erişimin sağlandığını kontrol edin ve onaylayın.
Geçici Çözüm
Yüklemeye gerek kalmadan gerekli yazı tiplerini yüklemek için FontsLoader kullanın:
FontsLoader.loadExternalFonts(pathToFontsFolders);
Eğer TEMP dizinine erişilemiyorsa, Java için TEMP’i başka bir dizin olarak belirlemek üzere bu kodu kullanın:
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);
}
İstisna: InvalidOperationException: Sistemde Yüklü Hiçbir Yazı Tipi Bulunamıyor
Bu istisna aşağıdaki durumlarda ortaya çıkar:
- Java işlemi yazı tipi klasörüne erişemediğinde
- hiçbir yazı tipi yüklü olmadığında.
Çözüm
-
Java işlemi için yazı tipi klasörüne erişimin sağlandığını kontrol edin ve onaylayın.
-
Bazı yazı tipleri yükleyin veya FontsLoader kullanın.
-
Yazı tiplerini yükleyin.
-
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 -
FontsLoader kullanarak:
FontsLoader.loadExternalFonts(pathToFontsFolders);
-
İstisna: NoClassDefFoundError: com.aspose.slides.internal.ey.this Sınıfı Başlatılamadı
Bu istisna, fontconfig ve yazı tipleri bulunmayan bir Linux sisteminde ortaya çıkar.
Çözüm
fontconfig paketini yükleyin:
-
Ubuntu:
sudo apt-get update sudo apt-get -y install fontconfig -
CentOS:
sudo yum makecache sudo yum -y install fontconfig
Ayrıca, bazı open-jdk sürümleri (örneğin, alpine JDK) da yüklü yazı tiplerine ihtiyaç duyar.
-
Ubuntu:
sudo apt-get install -y fonts-dejavu-core fc-cache -fv -
CentOS:
sudo yum -y install dejavu-sans-fonts fc-cache -fv
İstisna: UnsatisfiedLinkError: libfreetype.so.6: Paylaşılan Nesne Dosyası Açılmadı: Böyle Bir Dosya ya da Dizin Yok
Bu istisna, libfreetype kütüphanesi bulunmayan bir Linux sisteminde ortaya çıkar.
Çözüm
libfreetype ve fontconfig paketlerini yükleyin:
-
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