Vanliga undantag och fel relaterade till typsnitt på Linux
Översikt
När Aspose.Slides används på Linux kan problem relaterade till typsnitt uppstå om Java‑processen inte kan komma åt de nödvändiga typsnittsmapparna eller den temporära katalogen, om inga typsnitt är installerade på systemet, eller om nödvändiga systembibliotek såsom fontconfig eller libfreetype saknas.
Denna artikel beskriver vanliga fel och undantag relaterade till typsnitt på Linux och ger lösningar för att åtgärda dem. Den förklarar hur man kontrollerar åtkomst till typsnitt‑ och TEMP‑katalogerna, installerar de erforderliga typsnitten och biblioteken, samt använder FontsLoader för att läsa in typsnitt utan att installera dem systemomfattande.
Saknad text eller bilder (EMF eller WMF) när kod körs på Linux
Detta problem uppstår i system med begränsningar i följande fall:
- När inga typsnitt är installerade eller när typsnittsmappen för java‑processen inte kan nås
- När TEMP‑katalogen inte kan nås.
Lösning
Kontrollera och bekräfta att åtkomst till TEMP‑katalogen och typsnittsmappen har beviljats.
Alternativ lösning
Använd FontsLoader för att läsa in de nödvändiga typsnitten utan att installera dem:
FontsLoader.loadExternalFonts(pathToFontsFolders);
Om TEMP‑katalogen inte kan nås, använd denna kod för att ange en annan katalog som TEMP för 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);
}
Undantag: InvalidOperationException: Kan inte hitta några typsnitt installerade på systemet
Detta undantag uppstår när
- Java‑processen inte kan komma åt typsnittsmappen
- inga typsnitt har installerats.
Lösning
-
Kontrollera och bekräfta att åtkomst till typsnittsmappen för Java‑processen har beviljats.
-
Installera några typsnitt eller använd FontsLoader.
-
Installera typsnitt.
-
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 -
Använda FontsLoader:
FontsLoader.loadExternalFonts(pathToFontsFolders);
-
Undantag: NoClassDefFoundError: Kunde inte initiera klassen com.aspose.slides.internal.ey.this
Detta undantag uppstår på ett Linux‑system som saknar fontconfig och typsnitt.
Lösning
Installera fontconfig:
-
Ubuntu:
sudo apt-get update sudo apt-get -y install fontconfig -
CentOS:
sudo yum makecache sudo yum -y install fontconfig
Dessutom kräver vissa open‑jdk‑versioner (t.ex. alpine JDK) också installerade typsnitt.
-
Ubuntu:
sudo apt-get install -y fonts-dejavu-core fc-cache -fv -
CentOS:
sudo yum -y install dejavu-sans-fonts fc-cache -fv
Undantag: UnsatisfiedLinkError: libfreetype.so.6: Kan inte öppna delad objektfil: Filen finns inte
Detta undantag uppstår på ett Linux‑system som saknar libfreetype‑biblioteket.
Lösning
Installera libfreetype och 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