[java] Apache PDFBox를 사용하여 PDF 파일에서 특정 텍스트를 찾고 교체하기

Apache PDFBox는 Java 프로그램에서 PDF 파일을 조작하는 강력한 라이브러리입니다. 이 라이브러리를 사용하면 PDF 파일에서 특정 텍스트를 찾고 필요한 경우 교체할 수 있습니다. 이 글에서는 Apache PDFBox를 사용하여 PDF 파일에서 특정 텍스트를 찾고 교체하는 방법을 알아보겠습니다.

PDF 문서 열기

먼저 Apache PDFBox를 사용하기 위해 Maven 또는 Gradle과 같은 빌드 도구를 통해 종속성을 추가해야 합니다.

Maven의 경우 pom.xml 파일에 다음 종속성을 추가합니다:

<dependencies>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.25</version>
    </dependency>
</dependencies>

Gradle의 경우 build.gradle 파일에 다음 종속성을 추가합니다:

dependencies {
    implementation 'org.apache.pdfbox:pdfbox:2.0.25'
}

특정 텍스트 찾기

PDF 파일에서 특정 텍스트를 찾기 위해서는 PDFTextStripper 클래스를 사용합니다. 다음 예제 코드는 주어진 PDF 파일에서 특정 텍스트를 찾는 방법을 보여줍니다.

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

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

public class PDFTextSearch {
    public static void main(String[] args) {
        try {
            File file = new File("path/to/your/pdf/file.pdf");
            PDDocument document = PDDocument.load(file);
            
            PDFTextStripper pdfTextStripper = new PDFTextStripper();
            String text = pdfTextStripper.getText(document);
            
            if (text.contains("search_text")) {
                System.out.println("Text found!");
            } else {
                System.out.println("Text not found!");
            }
            
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

텍스트 교체하기

특정 텍스트를 찾은 후에 교체하기 위해서는 PDFTextStripperreplaceText 메서드를 사용합니다. 다음 예제 코드는 주어진 PDF 파일에서 특정 텍스트를 교체하는 방법을 보여줍니다.

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

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

public class PDFTextReplacement {
    public static void main(String[] args) {
        try {
            File file = new File("path/to/your/pdf/file.pdf");
            PDDocument document = PDDocument.load(file);

            PDFTextStripper pdfTextStripper = new PDFTextStripper();
            
            // Replace whitespace with underscore
            String newText = pdfTextStripper.replaceText(document, "search_text", "replacement_text");

            // Save the modified document
            document.save("path/to/your/new/pdf/file.pdf");

            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 search_text는 교체하려는 텍스트를, replacement_text는 교체될 텍스트를 나타냅니다.

결론

Apache PDFBox를 사용하여 Java 프로그램에서 PDF 파일의 특정 텍스트를 찾고 교체하는 방법에 대해 알아보았습니다. 이 라이브러리는 PDF 파일 조작을 위한 다양한 기능을 제공하기 때문에 더 많은 작업을 수행할 수 있습니다. 자세한 내용은 Apache PDFBox 문서를 참조하십시오.