시트당 한 페이지: Java에서 스프레드시트를 PDF로 자동 변환
스프레드시트를 수동으로 PDF로 변환하는 것이 지겹다면, 올바른 곳에 오셨습니다. 이 튜토리얼에서는 GroupDocs.Conversion for Java가 스프레드시트 변환을 자동화하면서 세밀한 제어를 제공하는 방법을 보여드립니다—예를 들어 필요한 행만 로드하고 시트당 한 페이지 PDF 출력을 생성하는 것입니다. 끝까지 읽으면 다음을 이해하게 됩니다:
- 워크북을 로드할 때 셀 범위 지정
- 각 시트를 단일 PDF 페이지로 변환하도록 컨버터 구성
- 최신 GroupDocs.Conversion 라이브러리를 사용하여 Java 프로젝트 설정
코드에 들어가기 전에 환경을 준비합시다.
빠른 답변
- “시트당 한 페이지”가 의미하는 바는? 원본 Excel 파일의 각 워크시트가 결과 PDF에서 단일 페이지로 렌더링됩니다.
- 변환을 담당하는 라이브러리는?
GroupDocs.Conversionfor Java (version 25.2). - 라이선스가 필요합니까? 평가용으로는 무료 체험이 가능하지만, 프로덕션에서는 임시 또는 구매한 라이선스가 필요합니다.
- 대용량 스프레드시트를 효율적으로 변환할 수 있나요? 예—필요한 범위만 로드하면 메모리 사용량을 줄이고 처리 속도를 높일 수 있습니다.
- 필요한 Java 버전은? JDK 8 이상.
“시트당 한 페이지”란 무엇인가요?
One page per sheet는 변환기가 각 워크시트의 전체 내용을 단일 PDF 페이지에 압축한다는 의미이며, 시트에 인쇄 영역이 몇 개 있든 상관없습니다. 이는 페이지 수를 예측 가능하게 보장하며, 각 시트가 하나의 시각적 페이지에 해당해야 하는 보고서나 슬라이드형 PDF에 이상적입니다.
왜 GroupDocs.Conversion for Java를 사용하나요?
GroupDocs.Conversion for Java는 견고하고 고성능 변환 엔진입니다. 이 엔진은 30개 이상의 스프레드시트 형식(XLS, XLSX, CSV, ODS 등)을 지원하며, 스트리밍 아키텍처 덕분에 전체 문서를 메모리에 로드하지 않고 500 MB까지 파일을 처리할 수 있습니다. API는 간결합니다: 몇 번의 메서드 호출만으로 테이블, 차트 및 셀 서식을 유지한 채 프로덕션 수준의 PDF를 생성합니다.
전제 조건
- Java Development Kit (JDK) 8+ 설치
- Maven을 사용한 의존성 관리
- IntelliJ IDEA 또는 Eclipse와 같은 IDE
- 기본 Java 지식 및 Maven 프로젝트 구조에 대한 이해
GroupDocs.Conversion for Java 설정
Maven 구성
pom.xml에 GroupDocs 저장소와 변환 의존성을 추가합니다:
pom.xml에는<groupId>com.groupdocs</groupId>저장소 항목과<artifactId>groupdocs-conversion</artifactId>의존성이 포함되어야 합니다. 파일을 저장한 후mvn clean install을 실행하여 라이브러리를 다운로드합니다.
라이선스 획득 단계
- Free trial – 기능을 테스트하기 위해 체험 버전을 다운로드합니다.
- Temporary license – 개발 중 전체 기능에 접근하기 위해 임시 라이선스를 요청합니다.
- Purchase – GroupDocs 웹사이트에서 라이선스를 구매합니다.
의존성을 추가한 후, API 사용을 시작할 수 있습니다:
Converter는 문서 변환을 조정하는 주요 클래스입니다.com.groupdocs.conversion패키지를 임포트하고,Converter인스턴스를 생성한 뒤 적절한 변환 메서드를 호출합니다.
특정 범위로 스프레드시트를 로드하는 방법은?
특정 범위를 로드하면 엔진이 정의된 영역 외의 행과 열을 무시하도록 하여 변환 속도를 높이고 메모리 사용량을 줄입니다.
setConvertRange는 변환을 특정 셀 범위만 포함하도록 구성합니다. setConvertRange 메서드는 "A10:C30"와 같은 범위 문자열을 받아 해당 셀들만 변환하도록 제한합니다. 이는 대용량 Excel 파일을 다룰 때 PDF 출력에 필요한 데이터의 일부만 해당될 경우 특히 유용합니다.
스프레드시트를 시트당 한 페이지 PDF로 변환하는 방법은?
setOnePagePerSheet는 각 워크시트를 단일 PDF 페이지에 렌더링하도록 강제합니다. 변환 설정 객체에 setOnePagePerSheet(true) 옵션을 설정합니다. 이 플래그는 원래 인쇄 레이아웃에 관계없이 변환기가 각 워크시트를 하나의 PDF 페이지에 렌더링하도록 강제합니다. 변환이 실행되면 엔진은 워크북의 모든 시트를 순회하면서 범위 필터(있는 경우)를 적용하고 각 시트를 최종 PDF 문서의 개별 페이지에 기록합니다.
실제 적용 사례
| 시나리오 | 기능이 도움이 되는 방법 |
|---|---|
| 재무 보고 | 분기별 숫자를 포함하는 행만 로드하고 각 부서에 대해 깔끔한 시트당 한 페이지 PDF를 생성합니다. |
| 학술 출판 | 연구 데이터 시트를 변환하고 관련 범위에 집중하여 각 시트가 자체 페이지에 인쇄되도록 하여 인용을 용이하게 합니다. |
| 비즈니스 프레젠테이션 | 시트당 한 페이지 설정 덕분에 각 슬라이드가 워크시트에 해당하는 프레젠테이션용 PDF를 생성합니다. |
성능 고려 사항
- 변환 범위 축소 –
setConvertRange를 사용하여 행/열을 제한합니다. - 리소스를 즉시 해제 – 스트림을 닫고 변환 후
Converter가 범위 밖으로 벗어나도록 합니다. - 병렬 처리 – 배치 작업의 경우 별도 스레드에서 변환을 실행하여 UI 응답성을 유지합니다.
자주 묻는 질문
Q: GroupDocs.Conversion에 필요한 최소 Java 버전은 무엇인가요?
A: 라이브러리와 완전한 호환성을 보장하려면 JDK 8 이상을 권장합니다.
Q: 여러 스프레드시트 형식을 한 번에 변환할 수 있나요?
A: 예, GroupDocs.Conversion은 단일 변환 호출에서 Excel, CSV, ODS 및 기타 많은 형식을 지원합니다.
Q: 전체 기능 접근을 위한 임시 라이선스를 어떻게 얻나요?
A: GroupDocs 웹사이트를 통해 요청하십시오.
Q: 스프레드시트가 메모리에서 변환하기에 너무 큰 경우는 어떻게 하나요?
A: setConvertRange로 필요한 범위만 로드하고 변환 중에 파일을 디스크로 스트리밍하는 것을 고려하십시오.
Q: GroupDocs.Conversion을 클라우드 스토리지 서비스와 통합할 수 있나요?
A: 예, 표준 Java I/O 스트림을 사용하여 AWS S3, Azure Blob Storage, Google Cloud Storage 등에 읽고 쓸 수 있습니다.
리소스
마지막 업데이트: 2026-08-14
테스트 환경: GroupDocs.Conversion 25.2 for Java
작성자: GroupDocs
<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>
import com.groupdocs.conversion.Converter;
// Basic initialization code here...
import com.groupdocs.conversion.options.load.SpreadsheetLoadOptions;
public class FeatureLoadSpreadsheetWithRange {
public static void run() {
// Create load options for specifying a range of cells
SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
// Specify the cell range (e.g., "10:30" means rows 10 to 30)
loadOptions.setConvertRange("10:30");
}
}
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
public class FeatureConvertToPdfWithOnePagePerSheet {
public static void run() {
// Initialize load options with one-page-per-sheet setting
SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
loadOptions.setOnePagePerSheet(true);
// Initialize the Converter object with your document path and load options
Converter converter = new Converter("YOUR_DOCUMENT_DIRECTORY/sample.xlsx", () -> loadOptions);
// Configure PDF conversion to produce one page per sheet
PdfConvertOptions pdfOptions = new PdfConvertOptions();
// Execute the conversion process
converter.convert("YOUR_OUTPUT_DIRECTORY/ConvertedSpreadsheet.pdf", pdfOptions);
}
}