[java] Apache PDFBox를 이용한 공백 제거

Java로 PDF 작업을 수행하는 경우, Apache PDFBox 라이브러리는 자주 사용됩니다. 이 라이브러리를 활용하여 PDF 파일 내의 공백을 제거하는 방법에 대해 알아보겠습니다.

Apache PDFBox 라이브러리 추가

먼저, Maven을 사용 중이라면 pom.xml 파일에 다음 의존성을 추가합니다.

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version> <!-- 최신 버전으로 대체해도 무방 -->
</dependency>

Gradle을 사용 중이라면 build.gradle 파일에 다음 의존성을 추가합니다.

implementation group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.24' // 최신 버전으로 대체해도 무방

라이브러리 추가 후 프로젝트를 업데이트 하거나 빌드합니다.

PDF 파일 내 공백 제거

다음은 Apache PDFBox를 사용하여 PDF 파일 내의 공백을 제거하는 간단한 예제입니다.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.IOException;

public class PDFWhitespaceRemover {
    public static void main(String[] args) throws IOException {
        PDDocument document = PDDocument.load(new File("input.pdf"));

        for (PDPage page : document.getPages()) {
            PDFTextStripper stripper = new PDFTextStripper();
            String content = stripper.getText(document, page);

            // 공백 제거
            content = content.replaceAll("\\s+", "");

            // 결과 출력 (선택 사항)
            System.out.println(content);
        }

        // 수정된 내용을 파일에 저장
        document.save("output.pdf");
        document.close();
    }
}

위의 예제는 PDFWhitespaceRemover 클래스를 통해 PDF 파일을 로드하고 각 페이지의 텍스트 내의 공백을 제거한 후 수정된 내용을 다시 저장합니다.

이제 Apache PDFBox를 사용하여 PDF 파일 내의 공백을 제거하는 방법에 대해 알게 되었습니다.

위의 예제 코드를 참고하여 자신의 프로젝트에 적합하게 수정하여 사용할 수 있습니다.

참고 자료