다양한 경우에 PDF 문서에서 특정 텍스트를 찾아서 바꿔야 할 수도 있습니다. 그러나 각 항목을 수동으로 검색하고 업데이트하면 추가 시간과 노력이 필요할 수 있습니다. 이러한 경우 찾기 및 바꾸기 옵션을 사용하면 더 쉽게 사용할 수 있습니다. 이 기사에서는 Java를 사용하여 PDF 문서에서 텍스트를 찾고 바꾸는 방법을 배웁니다.
- PDF에서 텍스트 찾기 및 바꾸기를 위한 Java API
- Java를 사용하여 PDF에서 텍스트 찾기 및 바꾸기
- PDF의 특정 페이지에 있는 텍스트 바꾸기
- 정규 표현식을 사용하여 텍스트 바꾸기
PDF에서 텍스트 찾기 및 바꾸기를 위한 Java API - 무료 다운로드
Aspose.PDF for Java는 Java 응용 프로그램 내에서 PDF 파일을 생성하고 조작하도록 설계되었습니다. API는 텍스트 찾기 및 바꾸기를 포함하여 다양한 기본 및 고급 PDF 조작 기능을 제공합니다. API를 다운로드하거나 다음 Maven 구성을 사용하여 설치할 수 있습니다.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.1</version>
</dependency>
Java를 사용하여 PDF에서 텍스트 찾기 및 바꾸기
PDF의 특정 텍스트를 바꾸려면 먼저 검색 문자열과 일치하는 모든 텍스트 조각을 가져와야 합니다. 일단 가지고 있으면 각 조각을 업데이트된 텍스트로 하나씩 교체하십시오.
다음은 Java를 사용하여 PDF 파일에서 텍스트를 찾고 바꾸는 단계입니다.
- Document 클래스를 사용하여 PDF 파일을 로드합니다.
- TextFragmentAbsorber 클래스의 객체를 생성하고 찾고자 하는 텍스트로 초기화하여 교체합니다.
- Document.getPages().accept(TextFragmentAbsorber) 메서드를 사용하여 PDF의 페이지에 대한 흡수 장치를 수락합니다.
- TextFragmentAbsorber.getTextFragments()에서 반환된 모든 텍스트를 TextFragmentCollection 객체로 가져옵니다.
- TextFragmentCollection 개체의 각 TextFragment을 반복하고 TextFragment.setText(String) 메서드를 사용하여 텍스트를 바꿉니다.
- Document.save(String) 메소드를 사용하여 업데이트된 PDF 파일을 저장합니다.
다음 코드 샘플은 PDF에서 텍스트를 찾고 바꾸는 방법을 보여줍니다.
// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.Pdf-for-Java로 이동하십시오.
// 문서 열기
Document pdfDocument = new Document("source.pdf");
// 입력 검색 구문의 모든 인스턴스를 찾기 위해 TextAbsorber 객체 생성
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// 문서의 모든 페이지에 대해 흡수 장치를 수락하십시오.
pdfDocument.getPages().accept(textFragmentAbsorber);
// 추출된 텍스트 조각을 컬렉션으로 가져오기
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// 조각을 통해 루프
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// 텍스트 및 기타 속성 업데이트
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// 업데이트된 PDF 파일 저장
pdfDocument.save("Updated_Text.pdf");
PDF의 특정 페이지에서 텍스트 검색 및 바꾸기
전체 PDF에서 텍스트를 찾아 바꾸는 대신 텍스트 발생을 바꿀 단일 페이지를 지정할 수 있습니다. 이 경우 페이지 인덱스를 지정해야만 특정 페이지에 대해 TextFragmentAbsorber를 수락합니다.
다음은 Java의 PDF에서 특정 페이지의 텍스트를 검색하고 바꾸는 단계입니다.
- Document 클래스를 사용하여 PDF 파일을 로드합니다.
- TextFragmentAbsorber 클래스의 객체를 생성하고 찾고자 하는 텍스트로 초기화하여 교체합니다.
- Document.getPages().get_Item(Int pageIndex).accept(TextFragmentAbsorber) 메서드를 사용하여 PDF의 특정 페이지에 대한 흡수 장치를 수락합니다.
- TextFragmentAbsorber.getTextFragments()에서 반환된 모든 텍스트를 TextFragmentCollection 객체로 가져옵니다.
- TextFragmentCollection 개체의 각 TextFragment을 반복하고 TextFragment.setText(String) 메서드를 사용하여 텍스트를 바꿉니다.
- Document.save(String) 메소드를 사용하여 업데이트된 PDF 파일을 저장합니다.
다음 코드 샘플은 Java를 사용하여 PDF의 특정 페이지에서 텍스트를 찾고 바꾸는 방법을 보여줍니다.
// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.Pdf-for-Java로 이동하십시오.
// 문서 열기
Document pdfDocument = new Document("source.pdf");
// 입력 검색 구문의 모든 인스턴스를 찾기 위해 TextAbsorber 객체 생성
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// 문서의 첫 페이지에 대한 흡수 장치를 수락합니다.
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);
// 추출된 텍스트 조각을 컬렉션으로 가져오기
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// 조각을 통해 루프
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// 텍스트 및 기타 속성 업데이트
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// 업데이트된 PDF 파일 저장
pdfDocument.save("Updated_Text.pdf");
PDF에서 정규 표현식을 사용하여 텍스트 찾기 및 바꾸기
이메일, SSN 등과 같은 특정 패턴과 일치하는 텍스트를 검색하기 위해 정규식을 지정할 수도 있습니다. 다음은 Java를 사용하여 PDF에서 텍스트를 검색하고 바꾸기 위해 정규식을 정의하고 사용하는 단계입니다.
- Document 클래스를 이용하여 PDF 파일을 불러옵니다.
- TextFragmentAbsorber 클래스의 객체를 생성하고 사용하려는 정규식으로 초기화합니다.
- TextSearchOptions 클래스의 객체를 생성하고 true로 초기화하여 정규식 기반 검색이 가능하도록 한다.
- TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions) 메서드를 사용하여 옵션을 설정합니다.
- Document.getPages().accept(TextFragmentAbsorber) 메서드를 사용하여 PDF의 페이지에 대한 흡수 장치를 수락합니다.
- TextFragmentAbsorber.getTextFragments()에 의해 반환된 텍스트의 발견된 모든 항목을 TextFragmentCollection 객체로 가져옵니다.
- TextFragmentCollection 개체의 각 TextFragment을 반복하고 TextFragment.setText(String) 메서드를 사용하여 텍스트를 바꿉니다.
- Document.save(String) 메소드를 사용하여 업데이트된 PDF 파일을 저장합니다.
다음 코드 샘플은 정규식을 사용하여 PDF에서 텍스트를 찾고 바꾸는 방법을 보여줍니다.
// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.Pdf-for-Java로 이동하십시오.
// 문서 열기
Document pdfDocument = new Document("input.pdf");
// 입력 검색 구문의 모든 인스턴스를 찾기 위해 TextAbsorber 객체 생성
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000
// 정규식 사용을 활성화하도록 텍스트 검색 옵션 설정
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
// 문서의 모든 페이지에 대해 흡수 장치를 수락합니다.
pdfDocument.getPages().accept(textFragmentAbsorber);
// 추출된 텍스트 조각을 컬렉션으로 가져오기
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// 조각을 통해 루프
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// 텍스트 및 기타 속성 업데이트
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// 업데이트된 PDF 파일 저장
pdfDocument.save("Updated_Text.pdf");
무료 API 라이선스 받기
평가 제한 없이 API를 무료로 사용해 볼 수 있습니다. 무료 임시 라이선스 받기 지금.
결론
이 기사에서는 Java를 사용하여 PDF에서 텍스트를 찾고 바꾸는 방법을 배웠습니다. 또한 정규 표현식을 사용하여 특정 패턴에 따라 텍스트를 검색하고 바꾸는 방법을 살펴보았습니다. 문서를 사용하여 Java PDF API에 대해 자세히 알아볼 수 있습니다.