[python] PDF 파일에서 특정 텍스트 밑줄 그리기

PDF는 텍스트와 이미지를 포함한 문서를 만들고 공유하기 위해 많이 사용되는 형식입니다. 때때로 특정 텍스트를 강조하기 위해 밑줄을 그리고 싶을 수 있습니다. 이번 글에서는 Python을 사용하여 PDF 파일에서 특정 텍스트에 밑줄을 그리는 방법을 알아보겠습니다.

필요한 도구 설치

PDF를 다루기 위해서는 PyPDF2 라이브러리를 설치해야 합니다. 아래 명령을 사용하여 PyPDF2를 설치할 수 있습니다.

pip install PyPDF2

밑줄 그리기 코드

import PyPDF2

def underline_text_in_pdf(input_path, output_path, keyword):
    pdf_reader = PyPDF2.PdfFileReader(open(input_path, 'rb'))
    pdf_writer = PyPDF2.PdfFileWriter()

    num_pages = pdf_reader.getNumPages()

    for page_num in range(num_pages):
        page = pdf_reader.getPage(page_num)
        annotations = page['/Annots']

        if annotations is None:
            continue

        for annotation in annotations:
            if annotation['/Subtype'] == '/Highlight':
                if keyword in annotation.getObject()['/Contents']:
                    rect = annotation.getObject()['/Rect']
                    x1, y1, x2, y2 = rect.getX(), rect.getY(), rect.getX() + rect.getWidth(), rect.getY() - rect.getHeight()
                    page.mergePage(page)
                    pdf_writer.addPage(page)
                    pdf_writer.addLink(page.getDestinationPageNumber(), x1, y1, x2, y2)

    with open(output_path, 'wb') as output:
        pdf_writer.write(output)

underline_text_in_pdf('input.pdf', 'output.pdf', '특정 텍스트')

위 코드는 underline_text_in_pdf 함수를 통해 입력된 PDF 파일에서 특정 텍스트를 찾아 밑줄을 그립니다. 이 함수는 입력 파일 경로, 출력 파일 경로, 그리고 찾고자 하는 키워드를 인자로 받습니다. 함수는 PyPDF2를 사용하여 입력 파일을 읽고, 새로운 페이지를 생성하며, 밑줄이 필요한 부분을 찾아 그립니다.

사용 예시

underline_text_in_pdf('input.pdf', 'output.pdf', '특정 텍스트')

위의 코드는 input.pdf 파일에서 ‘특정 텍스트’를 찾아 밑줄을 그은 후, 결과를 output.pdf 파일로 저장합니다.

결론

Python의 PyPDF2 라이브러리를 사용하여 PDF 파일에서 특정 텍스트에 밑줄을 그리는 방법을 알아봤습니다. 이를 응용하여 필요한 텍스트를 강조하거나 문서의 가독성을 높일 수 있습니다. PDF 파일을 다루는 프로젝트를 진행하거나 공부 중이라면 이 기능을 활용해보세요!