Excel & IT Info

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

Python

파이썬에서 PDF를 Word로 변환하는 5가지 방법

권현욱(엑셀러) 2024. 10. 1. 19:02
반응형

들어가기 전에

PDF 문서를 Microsoft Word 파일로 변환하면 보다 효율적으로 PDF 콘텐츠를 변경하고, 주석을 추가하고, 협업할 수 있습니다. 무료 오픈 소스 라이브러리나 상용 라이브러리를 사용하여 Python에서 PDF를 Word로 변환하는 5가지 방법을 소개합니다.

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

이미지: 아이엑셀러 닷컴


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

  • 원문: 5 Ways to Convert PDF to Word in Python: A Comparison Guide
  • URL: https://medium.com/@alexaae9/5-ways-to-convert-pdf-to-word-in-python-a-comparison-guide-1771cfd109e7

1. PyPDF2 및 python-docx 사용

PyPDF2는 Python에서 PDF 파일 작업을 위한 무료 오픈 소스 라이브러리로, PDF 문서 읽기, 조작 및 처리를 위한 다양한 기능을 제공합니다. python-docx는 Microsoft Word(.docx) 파일 생성 및 업데이트를 위한 무료 오픈 소스 라이브러리입니다. PyPI를 통해 설치하려면 다음 pip 명령을 사용하세요.

pip install PyPDF2
pip install python-docx

 

코드 예시:

from PyPDF2 import PdfReader
from PyPDF2 import PdfWriter
from docx import Document
from docx.shared import Inches

# Create a new Word document
document = Document()

# Open a PDF file
with open("C:\\Users\\Administrator\\Desktop\\Input.pdf", "rb") as file:
    
    # Create a PdfReader object
    pdf_reader = PdfReader(file)

    # Open the Word document for writing
    with open("output.docx", "wb") as output_file:

        # Loop through each page of the PDF file
        for page_num in range(len(pdf_reader.pages)):
            
            # Get the current page
            page = pdf_reader.pages[page_num]

            # Extract text from the page
            text = page.extract_text()
            
            # Add a paragraph in Word to hold the text
            document.add_paragraph(text)

# Save the Word document
document.save("output.docx")

 

장점

  • 무료

 

단점

  • 텍스트만 추출되어 Word 문서에 배치됩니다.
  • 원본 PDF 파일의 모든 서식과 레이아웃이 손실됩니다.

 

2. pdfplumber와 python-docx 사용

python-docx는 Microsoft Word(.docx) 파일을 만들고 업데이트하기 위한 무료 오픈 소스 라이브러리입니다. pdfplumber는 PDF 파일에서 텍스트와 표를 추출하기 위한 무료 오픈 소스 Python 라이브러리입니다. PyPI를 통해 다음 명령을 통해 설치할 수 있습니다.

pip install pdfplumber
pip install python-docx

 

코드 예시:

import pdfplumber
from docx import Document
from docx.shared import Inches

# Open a PDF file
with pdfplumber.open("C:\\Users\\Administrator\\Desktop\\Input.pdf") as pdf:

    # Extract text from the PDF
    text = ""
    for page in pdf.pages:
        text += page.extract_text()
 
# Create a new Word document
document = Document()

# Add a paragraph in Word to hold the text
document.add_paragraph(text)

# Save the Word document
document.save("output.docx")

 

장점

  • 무료


단점

  • 텍스트만 추출되어 Word 문서에 배치됩니다.
  • 원본 PDF 파일의 모든 서식과 레이아웃이 손실됩니다.

3. pdf2docx 사용

pdf2docx는 PDF 파일을 Microsoft Word(.docx) 문서로 변환하는 간단하고 효율적인 방법을 제공하는 Python 라이브러리입니다. 문서 변환, 데이터 추출, 텍스트 처리 등 다양한 용도로 사용할 수 있는 무료 오픈소스 라이브러리입니다. PyPI에서 다음 pip 명령을 사용하여 설치할 수 있습니다.

pip install pdf2docx

 

코드 예시:

from pdf2docx import Converter

def convert_pdf_to_docx(pdf_file, docx_file):

    # Create a Converter object
    cv = Converter(pdf_file)

    # Convert specified PDF page to docx 
    cv.convert(docx_file, start=0, end=None)
    cv.close()

# Convert a PDF to a Docx file
convert_pdf_to_docx("C:\\Users\\Administrator\\Desktop\\Input.pdf", "Output.docx")

 

장점

  • 무료
  • 텍스트와 그래픽 요소가 모두 변환됩니다.
  • 서식과 레이아웃은 그대로 유지됩니다.

 

단점

  • 상용 라이브러리를 사용할 때보다 복잡한 PDF 문서를 변환하는 데 시간이 조금 더 걸립니다

 

4. Python용 Spire.PDF 사용

Python용 Spire.PDF는 Python에서 PDF 문서 작업을 위한 풍부한 기능을 갖춘 라이브러리입니다. PDF 파일을 프로그래밍 방식으로 생성, 수정, 조작할 수 있는 다양한 도구를 제공합니다. PyPI에서 설치하려면 다음 pip 명령을 사용합니다.

pip install Spire.PDF

 

코드 예시:

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

# Create a PdfDocument object
doc = PdfDocument()

# Load a PDF document
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf")

# Convert PDF to Word with streaming layout
# doc.ConvertOptions.SetPdfToDocOptions(True, True)

# Convert it to a docx file
doc.SaveToFile("Output.docx", FileFormat.DOCX)

# Dispose resources
doc.Close()

 

장점

  • 텍스트와 그래픽 요소가 모두 변환됩니다.
  • 서식과 레이아웃이 유지됩니다(고정 페이지 레이아웃 모드에서).
  • 변환 속도가 빠릅니다.

 

단점

  • 가장 낮은 수준의 라이선스 비용은 $999입니다.

 

5. .NET을 통해 Python용 Aspose.Words 사용

.NET을 통한 Python용 Aspose.Words는 Python을 사용하여 Microsoft Word 문서(.docx, .doc)를 조작하고 변환하기 위한 상용 라이브러리입니다. 또한 PDF 및 HTML과 같은 다른 형식을 Word 형식으로 변환하는 기능도 지원합니다. 또한 PyPI를 통해 직접 설치할 수 있습니다.

pip install aspose-words

 

코드 예시:

import aspose.words as aw

# Load a PDF document
doc = aw.Document("C:\\Users\\Administrator\\Desktop\\Input.pdf")

# Convert it to a Docx file
doc.save("Output.docx")

 

장점

  • 텍스트와 그래픽 요소가 모두 변환됩니다.
  • 서식과 레이아웃이 그대로 유지됩니다.
  • 변환 속도가 빠릅니다.

 

단점

  • 가장 낮은 수준의 라이선스 비용은 $1199입니다.

 

마치며

무료 오픈 소스 라이브러리는 라이선스나 비용 걱정 없이 Python을 사용하여 PDF를 Word로 변환할 수 있는 편리한 방법을 제공합니다. 상용 솔루션은 일반적으로 무료 오픈 소스 라이브러리에 비해 더 고급 기능과 더 나은 성능을 제공합니다. 이러한 옵션 중 선택은 특정 요구 사항, 예산 및 필요한 기능 수준에 따라 달라집니다.