GroupDocs.Conversion for Java를 사용한 글꼴 대체 마스터하기
이 포괄적인 튜토리얼에서는 GroupDocs.Conversion for Java를 사용하여 노트를 PDF로 변환하는 방법을 배우고, 누락된 글꼴을 우아하게 처리하는 방법을 알아봅니다. Maven 설정, 글꼴 대체 구성 및 폴백 전략을 단계별로 안내하여 모든 운영 체제에서 PDF가 동일하게 보이도록 합니다. 마지막까지 이 변환 흐름을 Java 서비스나 배치 작업에 삽입할 수 있게 됩니다.
빠른 답변
- 글꼴 대체의 주요 목적은 무엇인가요? 사용자가 지정한 글꼴로 사용 불가능한 글꼴을 교체하여 문서의 외관을 일관되게 유지합니다.
- 변환을 담당하는 라이브러리는 무엇인가요?
GroupDocs.Conversion for Java. - 프로덕션에 라이선스가 필요합니까? 예 – 전체 라이선스 또는 임시 라이선스가 필요합니다.
- 알 수 없는 경우에 기본 글꼴을 설정할 수 있나요? 네,
NoteLoadOptions의setDefaultFont()를 사용하면 됩니다. - JDK 8 이상과 호환되나요? 예, 이 라이브러리는 Java 8+를 지원합니다.
“노트를 PDF로 변환”이란 무엇인가요?
노트를 PDF로 변환은 노트 파일 형식(예: .ONE, .ENEX)을 특수 소프트웨어 없이 모든 장치에서 열 수 있는 PDF로 변환하는 과정입니다.
이 변환 과정에서는 원본 노트가 대상 머신에 설치되지 않은 글꼴을 참조할 수 있어 글꼴 누락 문제가 자주 발생합니다. 글꼴 대체는 누락된 글꼴을 사용 가능한 글꼴에 매핑하여 시각적 일관성을 보장합니다.
왜 GroupDocs.Conversion for Java를 사용하나요?
GroupDocs.Conversion for Java는 50개 이상의 입력 및 출력 형식에 대해 자동 글꼴 처리를 제공하며, 전체 파일을 메모리에 로드하지 않고도 수백 페이지 문서를 처리할 수 있습니다. 이 라이브러리는 고품질 PDF 출력을 제공하고, 300페이지 노트에 대해 150 MB 미만의 힙을 사용하며, 단일 Maven 종속성으로 통합되어 Java 개발자에게 프로덕션 준비된 선택이 됩니다.
전제 조건
- Java Development Kit (JDK) 버전 8 이상.
- IntelliJ IDEA 또는 Eclipse와 같은 IDE.
- 의존성 관리를 위한 Maven 설치.
- Java 및 문서 변환 개념에 대한 기본 지식.
GroupDocs.Conversion for Java 설정
Add the GroupDocs repository and dependency to your pom.xml:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/conversion/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-conversion</artifactId>
<version>25.2</version>
</dependency>
</dependencies>
라이선스 획득
GroupDocs는 테스트용 무료 30일 체험판 및 임시 라이선스를 제공하며, 프로덕션 사용을 위해 전체 라이선스를 구매할 수도 있습니다.
노트를 PDF로 변환하는 동안 글꼴을 대체하는 방법
변환 중에 글꼴을 대체하려면 누락된 글꼴을 사용 가능한 대체 글꼴에 매핑하고 폴백 글꼴을 지정하는 로드 옵션을 생성하고 구성해야 합니다. 이렇게 하면 원본 글꼴이 시스템에 없더라도 모든 문자가 올바르게 렌더링됩니다.
단계 1: 글꼴 대체 구성
NoteLoadOptions configures how a note file is loaded, including font substitution settings. Create a NoteLoadOptions object, define the font pairs you want to replace, and set a fallback font for any unmatched cases:
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
import com.groupdocs.conversion.options.load.NoteLoadOptions;
import com.groupdocs.conversion.contracts.FontSubstitute;
// Create font substitution options
NoteLoadOptions loadOptions = new NoteLoadOptions();
List<FontSubstitute> fontSubstitutes = new ArrayList<>();
fontSubstitutes.add(FontSubstitute.create("Tahoma", "Arial")); // Substitute Tahoma with Arial
fontSubstitutes.add(FontSubstitute.create("Times New Roman", "Arial")); // Substitute Times New Roman with Arial
loadOptions.setFontSubstitutes(fontSubstitutes);
// Set the default font for unhandled substitutions
defaultFont = "YOUR_DOCUMENT_DIRECTORY/terminal-grotesque_open.otf";
NoteLoadOptions–NoteLoadOptions클래스는 글꼴 대체 설정을 포함하여 노트 파일 로드 방식을 구성하는 진입점입니다.FontSubstitute.create()–FontSubstitute.create()는 원본 글꼴이 없을 때 사용할 대체 글꼴을 지정하는 매핑을 생성합니다.setDefaultFont()–setDefaultFont()는 명시적인 매핑이 없을 때 엔진이 적용하는 폴백 글꼴을 정의하여 문자가 렌더링되지 않는 상황을 방지합니다.
단계 2: 문서를 PDF로 변환
Converter is the core component that performs the conversion using the provided load options. Pass the configured load options to the Converter and execute the conversion:
// Initialize Converter with specified load options
converter = new Converter("YOUR_DOCUMENT_DIRECTORY/sample_note_document", () -> loadOptions);
// Set PDF conversion options
pdfOptions = new PdfConvertOptions();
// Perform conversion
coder.convert("YOUR_OUTPUT_DIRECTORY/converted_note.pdf", pdfOptions);
Converter–Converter클래스는 제공된 옵션을 사용해 소스 파일을 로드하고 변환을 준비하는 GroupDocs의 핵심 구성 요소입니다.convert()–convert()메서드는 정의한 모든 글꼴 대체 규칙을 적용하여 PDF 파일을 대상 위치에 기록합니다.
사용자 지정 글꼴 없이 노트 문서를 PDF로 변환
사용자 지정 대체 없이 java document to pdf만 필요하다면 단계가 더 간단합니다:
// Initialize Converter for a given document
converter = new Converter("YOUR_DOCUMENT_DIRECTORY/sample_note_document");
pdfOptions = new PdfConvertOptions(); // Configure conversion options
converter.convert("YOUR_OUTPUT_DIRECTORY/converted_note.pdf", pdfOptions);
실용적인 적용 사례
- 문서 공유 – Windows, macOS, Linux에서 동일하게 보이는 PDF를 전송합니다.
- 아카이빙 – 규정 준수를 위해 레거시 노트 파일의 시각적 일관성을 보존합니다.
- 크로스 플랫폼 호환성 – 설치된 글꼴에 관계없이 모든 이해관계자가 동일한 글꼴을 보도록 보장합니다.
통합 가능성
이 변환 흐름을 엔터프라이즈 콘텐츠 관리 시스템, 업로드를 처리하는 마이크로서비스, 또는 레거시 노트 아카이브를 PDF로 마이그레이션하는 배치 작업에 삽입할 수 있습니다.
성능 고려 사항
- 메모리 관리 – 파일을 완전히 메모리에 로드하는 대신 스트리밍합니다.
- 캐싱 – 자주 사용하는 글꼴 파일을 캐시하여 반복적인 디스크 I/O를 방지합니다.
- Java 모범 사례 – 가비지 컬렉터를 튜닝하고 가능하면
Converter인스턴스를 재사용합니다.
일반적인 문제와 해결책
| 문제 | 가능한 원인 | 해결 방법 |
|---|---|---|
| 변환 후 글꼴 누락 | 해당 글꼴에 대한 대체가 정의되지 않음 | FontSubstitute 항목을 추가하거나 적절한 기본 글꼴을 설정합니다. |
loadOptions에서 NullPointerException | loadOptions가 Converter에 전달되지 않음 | Converter를 생성할 때 람다 () -> loadOptions를 사용했는지 확인합니다. |
| 대용량 파일 변환이 느림 | 전체 문서를 메모리에 로드함 | 스트리밍 API를 사용하거나 JVM 힙 크기를 적절히 늘립니다. |
자주 묻는 질문
Q: 여러 글꼴을 한 번에 대체할 수 있나요?
A: 네, fontSubstitutes 리스트에 여러 FontSubstitute 항목을 추가하면 됩니다.
Q: 기본 글꼴을 찾을 수 없으면 어떻게 되나요?
A: 변환은 시스템 기본 글꼴로 폴백되며, 플랫폼에 따라 다를 수 있습니다.
Q: 변환 오류를 어떻게 해결하나요?
A: 파일 경로를 확인하고, 모든 Maven 종속성이 해결되었는지 확인하며, 콘솔에서 스택 트레이스를 확인합니다.
Q: GroupDocs.Conversion은 모든 Java 버전과 호환되나요?
A: JDK 8 이상을 지원합니다.
Q: 글꼴 대체를 Word나 Excel 같은 다른 형식에도 사용할 수 있나요?
A: 물론입니다 – 동일한 FontSubstitute 메커니즘이 DOCX 및 XLSX를 포함한 다양한 문서 유형에 적용됩니다.
리소스
마지막 업데이트: 2026-07-29
테스트 환경: GroupDocs.Conversion 25.2 for Java
작성자: GroupDocs