Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Python

파이썬을 사용하여 PDF에서 텍스트를 찾고 바꾸는 방법

권현욱(엑셀러) 2024. 5. 11. 18:41
반응형

들어가기 전에

PDF 문서에서 오류나 오타가 발견되면 문서의 정확성과 전문성을 유지하기 위해 잘못된 텍스트를 정확한 정보로 바꾸는 것이 필요합니다. Python을 사용하여 PDF에서 텍스트를 검색하고 바꾸는 방법을 소개합니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft Excel MVP · Excel 솔루션 프로바이더 · 작가

 

※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.


  • 원문: How to Find and Replace Text in PDF with Python
  • URL: https://medium.com/@alice.yang_10652/how-to-find-and-replace-text-in-pdf-with-python-9a788ed3cd9a

PDF에서 텍스트를 찾고 바꾸는 파이썬 라이브러리

PDF에서 텍스트를 찾아 Python으로 바꾸려면 Spire.PDF for Python 라이브러리를 사용할 수 있습니다. Python용 Spire.PDF는 Python 애플리케이션 내에서 PDF 파일 생성, 읽기, 편집 및 변환을 지원하는 기능이 풍부하고 사용자 친화적인 라이브러리입니다.

 

이 라이브러리를 사용하면 텍스트 또는 이미지 추가, 텍스트 또는 이미지 추출, 텍스트 또는 이미지 교체, 디지털 서명 추가, 페이지 추가 또는 삭제, PDF 병합 또는 분할, 책갈피 생성, 텍스트 추가 등 PDF에 대한 광범위한 조작을 수행할 수 있습니다.

 

또한 PDF 파일을 Word, Excel, 이미지, HTML, SVG, XPS, OFD, PCL 및 PostScript와 같은 다양한 파일 형식으로 변환할 수도 있습니다. 다음 pip 명령을 사용하여 PyPI 에서 Python용 Spire.PDF를 설치할 수 있습니다.

pip install Spire.Pdf

 

설치에 대한 자세한 내용은 공식 문서인 VS Code에서 Python용 Spire.PDF를 설치하는 방법을 확인하세요.

 

특정 텍스트의 모든 인스턴스를 파이썬으로 찾아 바꾸기

이름, 주소 또는 용어 업데이트와 같이 문서에서 대량 변경이 필요한 경우 특정 텍스트의 모든 인스턴스를 원하는 값으로 바꿔야 합니다.

 

다음은 Python 및 Python용 Spire.PDF를 사용하여 PDF 문서에서 특정 텍스트의 모든 인스턴스를 바꾸는 방법을 보여주는 예제입니다.

from spire.pdf.common import *
from spire.pdf import *

# Create an object of the PdfDocument class
doc = PdfDocument()
# Load a PDF file
doc.LoadFromFile("Adobe Acrobat.pdf")

# Iterate through the pages in the document
for i in range(doc.Pages.Count):
    # Get the current page
    page = doc.Pages[i]    
    # Create an object of the PdfTextReplace class and pass the page to the constructor of the class as a parameter
    replacer = PdfTextReplacer(page)
    
    # Replace All instances of a specific text with new text
    replacer.ReplaceAllText("Adobe Acrobat", "PDF Editor")

    # Replace All instances of a specific text with new text and set text color
    #replacer.ReplaceAllText("Adobe Acrobat", "PDF Editor", Color.get_Yellow())

# Save the resulting file
doc.SaveToFile("ReplaceAllFoundText.pdf")

doc.Close()

 

다음은 텍스트를 변경하기 전 PDF 파일의 스크린샷입니다.

 

(이미지: medium)

 

텍스트를 바꾼 후 출력 PDF 파일의 스크린샷입니다.

 

(이미지: medium)

 

특정 텍스트의 첫 번째 인스턴스를 찾아 파이썬으로 바꾸기

특정 텍스트의 모든 인스턴스를 바꾸는 것 외에도 PDF에서 특정 텍스트의 첫 번째 인스턴스만 새 텍스트로 바꿀 수 있습니다.

 

다음은 Python 및 Python용 Spire.PDF를 사용하여 PDF 문서에서 특정 텍스트의 첫 번째 인스턴스를 바꾸는 방법을 보여주는 예제입니다.

from spire.pdf.common import *
from spire.pdf import *

# Create an object of the PdfDocument class
doc = PdfDocument()
# Load a PDF file
doc.LoadFromFile("Adobe Acrobat.pdf")

# Get the first page
page = doc.Pages[0]

# Iterate through the pages in the document
for i in range(doc.Pages.Count):
    # Get the current page
    page = doc.Pages[i]    
    # Create an object of the PdfTextReplace class and pass the page to the constructor of the class as a parameter
    replacer = PdfTextReplacer(page)

    # Replace the first instance of a specific text with new text
    replacer.ReplaceText("Adobe Acrobat", "PDF Editor")

# Save the resulting file
doc.SaveToFile("ReplaceFirstFoundText.pdf")
doc.Close()

Excel과 VBA의 모든 것 아이엑셀러 닷컴 · 강사들이 숨겨 놓고 보는 엑셀러TV