Linux에서 폰트와 관련된 일반적인 예외 및 오류
개요
Linux에서 Aspose.Slides를 사용할 때 Java 프로세스가 필수 폰트 폴더나 임시 디렉터리에 접근하지 못하거나 시스템에 폰트가 설치되지 않았거나 fontconfig 또는 libfreetype과 같은 필수 시스템 라이브러리가 누락된 경우 폰트 관련 문제가 발생할 수 있습니다.
이 문서는 Linux에서 폰트와 관련된 일반적인 오류와 예외를 설명하고 해결 방법을 제공합니다. 폰트 및 TEMP 디렉터리 접근 권한 확인, 필요한 폰트 및 라이브러리 설치, 그리고 시스템 전체에 설치하지 않고 FontsLoader를 사용해 폰트를 로드하는 방법을 안내합니다.
Linux에서 코드 실행 시 텍스트 또는 이미지(EMF 또는 WMF) 누락
다음과 같은 제한이 있는 시스템에서 이 문제가 발생합니다:
- 폰트가 설치되지 않았거나 Java 프로세스가 폰트 폴더에 접근할 수 없는 경우
- 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: 시스템에 설치된 폰트를 찾을 수 없습니다
이 예외는 다음 상황에서 발생합니다.
- Java 프로세스가 폰트 폴더에 접근할 수 없는 경우
- 폰트가 전혀 설치되지 않은 경우
해결 방법
-
Java 프로세스가 폰트 폴더에 접근할 수 있는지 확인하십시오.
-
일부 폰트를 설치하거나 FontsLoader를 사용하십시오.
-
폰트를 설치하십시오.
-
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 사용:
FontsLoader.loadExternalFonts(pathToFontsFolders);
예외: NoClassDefFoundError: Could Not Initialize Class com.aspose.slides.internal.ey.this
이 예외는 fontconfig와 폰트가 설치되지 않은 Linux 시스템에서 발생합니다.
해결 방법
fontconfig를 설치하십시오:
-
Ubuntu:
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: Cannot Open Shared Object File: No Such File or Directory
이 예외는 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