CSV(Comma-Separated Values)는 데이터 교환에 가장 널리 사용되는 텍스트 기반 형식 중 하나입니다. 하지만 CSV 파일은 데이터를 구조화하여 보여주거나 인쇄하기에는 적합하지 않습니다. 반면 PDF(Portable Document Format)는 운영체제나 장치에 관계없이 동일한 레이아웃과 서식을 유지하는 특성을 가지고 있어, 보고서 작성이나 데이터 배포 시 자주 활용됩니다.
이 글에서는 Java용 Spire.XLS for Java 라이브러리를 사용하여 CSV 데이터를 읽고 PDF 문서로 변환하는 과정을 단계별로 설명합니다. 이 라이브러리는 주로 Excel 파일 작업에 사용되지만, CSV 파일을 불러와 PDF로 내보내는 기능도 함께 제공합니다.
프로젝트에서 사용할 라이브러리를 의존성에 추가합니다. Maven을 사용하는 경우 pom.xml 파일에 아래 리포지토리와 의존성을 포함시킵니다 .
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>16.7.3</version>
</dependency>
</dependencies>
Maven 환경이 아니라면 JAR 파일을 직접 내려받아 프로젝트의 빌드 경로에 추가하는 방식으로도 사용할 수 있습니다 .
CSV를 PDF로 변환하는 핵심 과정은 Workbook 클래스 하나로 처리됩니다. 다음은 공식 문서를 참조한 기본 변환 코드입니다 .
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class ConvertCsvToPdf {
public static void main(String []args) {
// Workbook 인스턴스 생성
Workbook wb = new Workbook();
// CSV 파일 로드 (구분자 지정 가능)
wb.loadFromFile("Sample.csv", ",");
// 워크시트가 한 PDF 페이지에 맞도록 설정
wb.getConverterSetting().setSheetFitToPage(true);
// 첫 번째 워크시트 가져오기
Worksheet sheet = wb.getWorksheets().get(0);
// 모든 열의 너비를 내용에 맞게 자동 조정
for (int i = 1; i < sheet.getColumns().length; i++) {
sheet.autoFitColumn(i);
}
// 워크시트를 PDF로 저장
sheet.saveToPdf("toPDF.pdf");
}
}
이 코드의 주요 특징은 다음과 같습니다:
loadFromFile(filePath, separator) 메서드로 CSV 파일을 읽고 구분자를 지정합니다 .getConverterSetting().setSheetFitToPage(true)를 통해 PDF 페이지에 내용이 잘 맞도록 설정합니다 .autoFitColumn() 메서드로 각 열의 너비를 자동 조정하여 데이터가 잘리지 않도록 합니다 .단순 변환 외에도, 필요에 따라 PDF 출력물의 모양을 일부 제어할 수 있습니다 .
Worksheet 객체를 가져와 saveToPdf() 메서드를 사용합니다.PageSetup 객체를 통해 용지 방향, 여백, 배율 등을 조정할 수 있습니다. 예를 들어 sheet.getPageSetup().setOrientation(PageOrientationType.Landscape)로 가로 방향을 설정할 수 있습니다 .스타일 적용 예시:
// 셀 범위에 스타일 적용
CellRange range = sheet.getRange("A1:C10");
range.getStyle().getFont().setBold(true);
range.getStyle().getFont().setSize(12);
range.getStyle().getBorders().setAllBorders(BorderLineStyle.Thin);
range.getStyle().setColor(java.awt.Color.LIGHT_GRAY);
Java에서 CSV를 PDF로 변환하는 방법은 이 라이브러리 외에도 다양합니다.
선택하는 도구는 프로젝트의 복잡도, 비용(라이선스), 개발 시간 등의 요소를 고려하여 결정하는 것이 좋습니다 .
이 글에서는 Java용 Spire.XLS 라이브러리를 통해 CSV 파일을 PDF 문서로 변환하는 기본적인 방법과 몇 가지 사용자 설정 옵션을 코드 예제와 함께 살펴보았습니다. 공식 문서를 기준으로 loadFromFile(), setSheetFitToPage(), autoFitColumn(), saveToPdf() 메서드를 활용하면 CSV 데이터를 서식이 유지되는 PDF로 비교적 간편하게 변환할 수 있습니다. 다만 이 라이브러리는 상용 제품이므로 무료 버전의 제약 사항이나 라이선스 비용을 프로젝트 상황에 맞게 검토해야 하며, 다른 오픈소스 대안들과의 비교를 통해 가장 적합한 도구를 선택할 것을 권장합니다.