[java] Java Apache PDFBox 기능 소개

Apache PDFBox는 Java로 작성된 오픈 소스 라이브러리로, PDF 파일을 생성, 편집 및 분석할 수 있는 다양한 기능을 제공합니다. 이 기능들을 소개하겠습니다.

1. PDF 생성

PDFBox를 사용하면 Java 코드로 PDF 파일을 생성할 수 있습니다. 다양한 요소를 포함하는 PDF 문서를 만들 수 있으며, 텍스트, 이미지, 표 등을 추가할 수 있습니다.

PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);

PDPageContentStream contentStream = new PDPageContentStream(document, page);

contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.beginText();
contentStream.newLineAtOffset(100, 700);
contentStream.showText("Hello, World!");
contentStream.endText();

contentStream.close();

document.save("output.pdf");
document.close();

위의 예시 코드는 PDFBox를 사용하여 “Hello, World!”라는 텍스트가 포함된 PDF 파일을 생성하는 간단한 예시입니다.

2. PDF 편집

PDFBox를 사용하면 생성된 PDF 파일을 편집할 수도 있습니다. 텍스트, 이미지, 레이아웃 등을 수정할 수 있으며, 필요에 따라 페이지를 추가하거나 삭제할 수도 있습니다.

PDDocument document = PDDocument.load(new File("input.pdf"));

// 텍스트 수정
PDPage page = document.getPage(0);
PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true);
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 16);
contentStream.beginText();
contentStream.newLineAtOffset(100, 500);
contentStream.showText("Modified Text");
contentStream.endText();
contentStream.close();

// 이미지 추가
PDPage page = document.getPage(0);
PDImageXObject image = PDImageXObject.createFromFile("image.jpg", document);
PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true);
contentStream.drawImage(image, 100, 100, image.getWidth(), image.getHeight());
contentStream.close();

document.save("output.pdf");
document.close();

위의 예시 코드는 기존 PDF 파일을 열어 텍스트를 수정하고 이미지를 추가하는 방법을 보여줍니다.

3. PDF 분석

PDFBox를 사용하면 PDF 파일의 내용을 분석할 수 있습니다. 텍스트 추출, 페이지 순서 변경, PDF 정보 읽기 등 다양한 기능을 제공합니다.

PDDocument document = PDDocument.load(new File("input.pdf"));

// 텍스트 추출
PDFTextStripper textStripper = new PDFTextStripper();
String text = textStripper.getText(document);
System.out.println(text);

// 페이지 순서 변경
PDPageTree pages = document.getPages();
pages.remove(1); // 두 번째 페이지 삭제
pages.add(0, pages.remove(2)); // 세 번째 페이지를 첫 번째로 이동

// PDF 정보 읽기
PDDocumentInformation info = document.getDocumentInformation();
System.out.println("Title: " + info.getTitle());
System.out.println("Author: " + info.getAuthor());
System.out.println("Subject: " + info.getSubject());

document.save("output.pdf");
document.close();

위의 예시 코드는 PDF 파일에서 텍스트를 추출하고, 페이지 순서를 변경하며, PDF 문서의 정보를 읽어오는 방법을 보여줍니다.

참고 자료

  1. Apache PDFBox 공식 사이트
  2. PDFBox GitHub 저장소