Конверт Майстер

PDF у текст для скриптів — TXT без хмарного API

PDF у текст для скриптів і Python: витягніть TXT у браузері без API-ключа. Що потрапляє в файл, як годувати pandas і чому скан дасть порожній рядок.

PDF у текст для скриптів потрібен, коли не хочете ставити pypdf / pdfminer на чужий ноутбук і не хочете віддавати договір у хмарний API. Текстовий шар PDF — це координати гліфів, не абзаци. Онлайн-витяг збирає рядки згори вниз і віддає .txt, який уже можна згодувати pandas.read_fwf, пошуку чи дифу.

Це не заміна бібліотеки в CI. Нижче — як забрати чистий текст тут, що саме пише парсер, і який фрагмент коду далі чесний.

  1. Візьміть PDF з текстовим шаром: у переглядачі текст виділяється мишею.
  2. Витягніть його через PDF у текст на цій сторінці.
  3. Збережіть .txt і читайте його скриптом — без повторного парсингу PDF на сервері.

Інструмент на цій сторінці — файл лишається у браузері

Перетягніть PDF, з якого треба витягти текст

Обрати файл

або натисніть, щоб вибрати з пристрою

Як парсер збирає рядки #

Інструмент бере getTextContent() з PDF.js, групує елементи за Y-координатою з допуском рядка, сортує зліва направо. «Порожні» текстові елементи, якими PDF.js позначає проміжки між колонками, враховуються як пробіли — інакше слова злипаються. Це той самий прийом, що в PDF у Excel.

Скан без шару дає порожній або майже порожній TXT. OCR ми не запускаємо. Деталі втрат полів — у довіднику що губиться при PDF у текст.

from pathlib import Path

text = Path("dohovir.txt").read_text(encoding="utf-8")
lines = [ln.strip() for ln in text.splitlines() if ln.strip()]
print(len(lines), "непорожніх рядків")

Код читає вже витягнутий UTF-8, а не PDF. Не підставляйте сюди open(pdf, "rb") — це інший стек.

КрокДеНавіщо
Перевірити шарПереглядач PDFНе ганяти скан у скрипт
Витягти TXTЦя сторінкаБез API-ключа й без сервера
Порахувати / знайтиPython, grep, ExcelДалі вже ваша логіка

Коли краще Word або Excel, а не TXT #

Якщо потрібні абзаци й жирний — PDF у Word. Якщо колонки сум — PDF у Excel. TXT навмисно плоский: зручно для in і регулярних виразів, погано для збереження таблиці.

У TXT потрапляє вміст сторінок, не паролі форм і не вкладені файли. Не кладіть витяг договорів у публічний репозиторій.

Чого витяг не замінить у CI #

Немає пакетного CLI на 10 000 файлів, немає Docker-образу. Для пайплайна ставте pypdf локально. Тут — разовий файл на машині аналітика без встановлення Python.

Скани: сканований PDF і OCR.

Часті запитання

Як витягти текст з PDF для Python без бібліотек?

Зробіть TXT у браузері, далі читайте файл як звичайний Unicode. Це не «PDF-парсер на чистому Python» — це розділення відповідальності: парсинг у вкладці, аналіз у скрипті.

Чому pdftotext і цей сайт дають різний порядок рядків?

Різний допуск по Y і різне ставлення до колонок. Наш парсер дивиться на порожні елементи PDF.js як на шпації. Двоколонкова сторінка все одно може змішати колонки — тоді краще Excel-конвертер.

Чи можна годувати скрипт сканом?

Ні, без OCR у TXT немає символів. Спершу розпізнайте документ спеціалізованим засобом.

Чи йде PDF на сервер, якщо я готую дані для скрипта?

Ні. Витяг у цій вкладці локальний. Далі ви самі вирішуєте, куди покласти TXT.

Схожі статті

Практичні інструкції з нашого блогу.