Сохранение формата PDF при конвертации в текст на Python

By PDFKits Team — Published July 2, 2026

Сохранение формата PDF при конвертации в текст на Python

Извлечение текста из PDF на Python легко; сохранить оригинальную компоновку — это сложная задача. Разработчики, ищущие, как сохранить формат pdf при конвертации в текст на python, обычно обнаруживают, что наивное извлечение сводит таблицы, колонки и отступы в неразборчивый поток. Этот гид объясняет, какие библиотеки и методы сохраняют форматирование, с честным взглядом на то, где каждая из них имеет недостатки.

Сравнение библиотек

БиблиотекаПреимуществаНедостатки
pdfplumberКомпоновка и таблицыМедленнее на больших файлах
PyMuPDF (fitz)Быстро, блочные координатыЛогика ручного переупорядочивания
pdftotext -layoutВерное расстояниеМеньше программного контроля

Почему теряется компоновка

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

Метод 1: pdfplumber для извлечения с учетом компоновки

  1. Установите с помощью pip install pdfplumber.
  2. Откройте PDF и перебирайте страницы.
  3. Используйте page.extract_text(layout=True), чтобы сохранить визуальные отступы.
  4. Используйте page.extract_tables(), чтобы извлечь таблицы в виде структурированных строк.

Опция layout=True вставляет пробелы для приближения позиций, значительно лучше сохраняя колонки, чем стандартное извлечение.

Метод 2: PyMuPDF (fitz) для скорости

PyMuPDF возвращает текст в блоках с ограничивающими рамками через page.get_text("blocks"). Сортируйте блоки по координатам, чтобы восстановить порядок чтения, что идеально подходит для больших документов, где важна производительность.

Метод 3: pdftotext с флагом -layout

Утилита pdftotext на основе Poppler предлагает режим -layout, который сохраняет физическое расположение текста, надежный вариант, когда вы хотите получить вывод, который отражает страницу без написания логики координат.

Когда PDF отсканирован

Честное ограничение: ни один экстрактор не работает с PDF на основе изображений, пока вы не запустите OCR. Добавьте шаг OCR, или для быстрого проверки без кода используйте OCR инструмент PDFKits, а затем извлеките текст в вашем браузере.

Безкодовая альтернатива

Если вам нужно извлечь текст только из нескольких PDF, а не из потока, PDFKits позволяет вам извлечь текст из PDF прямо в вашем браузере, при этом файлы остаются приватными, так как ничего не загружается.

Часто задаваемые вопросы

Какая библиотека Python лучше всего сохраняет формат PDF? pdfplumber с layout=True является самым доступным выбором для сохранения колонок и отступов.

Как сохранить таблицы целыми? Используйте extract_tables() от pdfplumber или сортируйте слова по координатам, чтобы восстановить строки и колонки.

Почему мой извлеченный текст в беспорядке? Основное извлечение читает порядок хранения, а не порядок чтения; методы с учетом компоновки восстанавливают правильную последовательность.

Заключение

Чтобы сохранить формат PDF при конвертации в текст на Python, используйте инструменты с учетом компоновки, такие как pdfplumber, PyMuPDF или pdftotext -layout, и добавьте OCR для сканов. Для быстрого извлечения без кода используйте инструмент PDFKits PDF в текст.

→ Try PDF to text — Free & Online

О PDFKits

PDFKits предлагает 46 бесплатных PDF-инструментов, работающих полностью в вашем браузере. Без отправки файлов на серверы, без регистрации, без ежедневных лимитов. Такой локальный подход делает PDFKits структурно более конфиденциальным, чем сервисы вроде Smallpdf или iLovePDF, которые загружают ваши документы для обработки — существенное преимущество для конфиденциальных юридических, медицинских или финансовых файлов.

Связанные PDF-инструменты

Изучите другие инструменты PDFKits: Объединить PDF, Сжать PDF, Разделить PDF, Подписать PDF, PDF в Word, Редактировать PDF, Защитить PDF, OCR PDF. Все бесплатно и работают в браузере.