[python] PDF 파일에서 특정 영역 이동하기

PDF 문서는 종종 다양한 영역(페이지, 텍스트, 이미지 등)으로 구성되어 있습니다. 때때로 우리는 특정 영역을 찾아 이동해야 할 때가 있습니다. 이번 블로그 포스트에서는 Python을 사용하여 PDF 파일에서 특정 영역으로 이동하는 방법을 알아보겠습니다.

PDF 파일 열기

Python에서 PDF 파일을 다루기 위해 PyPDF2 라이브러리를 사용할 수 있습니다. 먼저, 해당 라이브러리를 설치하고 import합니다.

import PyPDF2

이제 PDF 파일을 열어서 작업을 진행할 준비가 끝났습니다. 다음과 같이 파일을 열어봅시다.

pdf_file = open('example.pdf', 'rb')  # 'example.pdf'는 원하는 PDF 파일의 경로입니다.

특정 페이지로 이동하기

PDF 파일의 특정 페이지로 이동하기 위해서는 getPage() 메서드를 사용합니다. 이 메서드는 원하는 페이지의 인덱스를 인수로 받아 해당 페이지 객체를 반환합니다.

pdf_reader = PyPDF2.PdfFileReader(pdf_file)

page_index_to_move = 5  # 이동하고자 하는 페이지의 인덱스 (0부터 시작합니다)
page_to_move = pdf_reader.getPage(page_index_to_move)

이제 우리는 page_to_move 가 이동하고자 하는 페이지 객체를 가리키도록 설정했습니다.

특정 영역으로 이동하기

특정 페이지로 이동했다면, 우리는 이 페이지에서 원하는 영역으로 이동할 수 있습니다. 이를 위해 PdfReader() 클래스의 getPage() 메서드와 함께 extract_text() 메서드를 사용할 수 있습니다.

text_to_find = "특정 텍스트"  # 이동하고자 하는 영역에 포함된 텍스트

page_text = page_to_move.extract_text()
if text_to_find in page_text:
    position = page_text.index(text_to_find)

    # 텍스트의 시작 위치로 커서를 이동합니다.
    page_to_move.setDisplayPosition(page_to_move.getPhysicalBox().getLowerLeft(), position)

위 코드에서는 먼저 page_to_move로부터 해당 페이지의 텍스트를 추출합니다. 그런 다음, 원하는 텍스트(text_to_find)가 텍스트에 있는지 확인하고 위치를 찾습니다. 마지막으로, setDisplayPosition() 메서드를 사용하여 해당 위치로 커서를 이동합니다.

변경사항 저장하기

이제 영역 이동 작업이 완료되었습니다. 마지막으로 변경사항을 저장하고, 파일을 닫아야 합니다.

output_pdf = PyPDF2.PdfFileWriter()
output_pdf.addPage(page_to_move)

with open('moved_example.pdf', 'wb') as output_file:
    output_pdf.write(output_file)

pdf_file.close()

위 코드에서는 PdfFileWriter() 클래스를 사용하여 변경된 페이지를 output_pdf 객체에 추가합니다. 그런 다음, write() 메서드를 사용하여 변경사항이 반영된 PDF 파일을 저장합니다. 마지막으로, 원본 PDF 파일을 닫습니다.

결론

이번 튜토리얼에서는 Python을 사용하여 PDF 파일에서 특정 영역으로 이동하는 방법을 알아봤습니다. PyPDF2 라이브러리를 이용하여 PDF 파일을 열고, 원하는 페이지를 선택하고, 원하는 영역으로 커서를 이동시킬 수 있습니다. 이를 통해 PDF 파일의 특정 영역을 탐색하고 관리하는 데 도움이 될 수 있습니다.

참고 자료