Как стать автором
Обновить

5 способов преобразования PDF в Word в Python: Сравнительное руководство

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров11K
Автор оригинала: Alexander Stock

Преобразование PDF-документов в редактируемые файлы Microsoft Word позволяет вносить изменения, добавлять аннотации и более эффективно работать с PDF-контентом.

В этом блоге я собрал 5 решений для конвертации PDF в Word на Python с использованием бесплатных библиотек с открытым исходным кодом или коммерческих библиотек, а также выделил плюсы и минусы каждого решения.

  • Конвертация PDF в Word с помощью PyPDF2 и python-docx

  • Конвертация PDF в Word с помощью pdfplumber и python-docx

  • Конвертация PDF в Word с помощью pdf2docx

  • Конвертация PDF в Word с помощью Spire.PDF for Python

  • Конвертация PDF в Word с помощью Aspose.Words for Python via .NET

Конвертация PDF в Word с помощью PyPDF2 и python-docx

PyPDF2 — это бесплатная библиотека с открытым исходным кодом для работы с PDF‑файлами на Python, предоставляющая широкий набор функций для чтения, манипулирования и обработки 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

# Создание нового документа Word
document = Document()

# Открытие PDF-файла
with open("C:\\Users\\Administrator\\Desktop\\Input.pdf", "rb") as file:
    
    # Создание объекта PdfReader
    pdf_reader = PdfReader(file)

    # Открытие документа Word для записи
    with open("output.docx", "wb") as output_file:

        # Перебор каждой страницы PDF-файла
        for page_num in range(len(pdf_reader.pages)):
            
            # Получение текущей страницы
            page = pdf_reader.pages[page_num]

            # Извлечение текста со страницы
            text = page.extract_text()
            
            # Добавление абзаца в Word, содержащего текст
            document.add_paragraph(text)

# Сохранение документа Word
document.save("output.docx")

Плюсы:

  • Бесплатно.

Минусы:

  • Только текст будет извлечен и помещен в документ Word.

  • Все форматирование и оформление исходного PDF-файла будут потеряны.

Конвертация PDF в Word с помощью pdfplumber и python-docx

python-docx — это бесплатная библиотека с открытым исходным кодом для создания и обновления файлов Microsoft Word (.docx).

pdfplumber — свободная библиотека Python с открытым исходным кодом для извлечения текста и таблиц из PDF-файлов.

Вы можете установить их через PyPI с помощью следующих команд.

pip install pdfplumber
pip install python-docx

Пример кода:

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

# Открытие PDF-файла
with pdfplumber.open("C:\\Users\\Administrator\\Desktop\\Input.pdf") as pdf:

    # Извлечение текста из PDF
    text = ""
    for page in pdf.pages:
        text += page.extract_text()
 
# Создание нового документа Word
document = Document()

# Добавление абзаца в Word, содержащего текст
document.add_paragraph(text)

# Сохранение документа Word
document.save("output.docx")

Плюсы:

  • Бесплатно.

Минусы:

  • Только текст будет извлечен и помещен в документ Word.

  • Все форматирование и оформление исходного PDF-файла будут потеряны.

Конвертация PDF в Word с помощью pdf2docx

pdf2docx — это библиотека Python, которая обеспечивает простой и эффективный способ преобразования PDF‑файлов в документы Microsoft Word (.docx). Это бесплатная библиотека с открытым исходным кодом, которая может быть использована для различных целей, таких как преобразование документов, извлечение данных и обработка текста.

Ее можно установить с PyPI с помощью следующей команды pip.

pip install pdf2docx

Пример кода:

from pdf2docx import Converter

def convert_pdf_to_docx(pdf_file, docx_file):

    # Создание объекта Converter
    cv = Converter(pdf_file)

    # Конвертация указанной страницы PDF в docx 
    cv.convert(docx_file, start=0, end=None)
    cv.close()

# Конвертация PDF в файл Docx
convert_pdf_to_docx("C:\\Users\\Administrator\\Desktop\\Input.pdf", "Output.docx")

Плюсы:

  • Бесплатно.

  • Конвертируются как текстовые, так и графические элементы.

  • Форматирование и макет сохраняются.

Минусы:

  • Конвертирование сложных PDF-документов занимает немного больше времени по сравнению с использованием коммерческих библиотек.

Конвертация PDF в Word с помощью Spire.PDF for Python

Spire.PDF for Python — это многофункциональная библиотека для работы с PDF‑документами на языке Python. Она предоставляет широкий спектр инструментов для создания, модификации и программного манипулирования PDF-файлами.

Чтобы установить ее с PyPI, воспользуйтесь следующей командой pip.

pip install Spire.PDF

Пример кода:

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

# Создание объекта PdfDocument
doc = PdfDocument()

# Загрузка PDF-документа
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf")

# Конвертация PDF в Word с потоковой разметкой
# doc.ConvertOptions.SetPdfToDocOptions(True, True)

# Сохранение в файл docx
doc.SaveToFile("Output.docx", FileFormat.DOCX)

# Освобождение ресурсов
doc.Close()

Плюсы:

  • Преобразуются как текстовые, так и графические элементы.

  • Форматирование и макет сохраняются (в режиме фиксированного макета страницы).

  • Скорость конвертирования высокая.

Минусы:

  • Лицензия самого низкого уровня стоит 999 долларов.

Конвертация PDF в Word с помощью Aspose.Words for Python via .NET

Aspose.Words for Python via .NET — это коммерческая библиотека для манипулирования и конвертирования документов Microsoft Word (.docx, .doc) с помощью Python. Она также поддерживает преобразование других форматов, таких как PDF и HTML, в формат Word.

Кроме того, ее можно установить непосредственно через PyPI.

pip install aspose-words

Пример кода:

import aspose.words as aw

# Загрузка PDF-документа
doc = aw.Document("C:\\Users\\Administrator\\Desktop\\Input.pdf")

# Конвертация в файл Docx
doc.save("Output.docx")

Плюсы:

  • Преобразуются как текстовые, так и графические элементы.

  • Форматирование и макет сохраняются.

  • Скорость преобразования высокая.

Минусы:

  • Лицензия самого низкого уровня стоит 1199 долларов.

Заключение

Бесплатные библиотеки с открытым исходным кодом предоставляют удобный способ работы с документами PDF и Word с помощью Python без каких-либо проблем с лицензированием или стоимостью. Коммерческие решения, как правило, предлагают более продвинутые функции и более высокую производительность по сравнению с бесплатными библиотеками с открытым исходным кодом. Выбор между этими вариантами зависит от ваших конкретных требований, бюджета и уровня необходимых функций.

Теги:
Хабы:
Всего голосов 5: ↑3 и ↓2+3
Комментарии7

Публикации

Истории

Работа

Data Scientist
102 вакансии
Python разработчик
200 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн