PDF у текст для скриптів — TXT без хмарного API
PDF у текст для скриптів і Python: витягніть TXT у браузері без API-ключа. Що потрапляє в файл, як годувати pandas і чому скан дасть порожній рядок.
PDF у текст для скриптів потрібен, коли не хочете ставити pypdf / pdfminer на чужий ноутбук і не хочете віддавати договір у хмарний API. Текстовий шар PDF — це координати гліфів, не абзаци. Онлайн-витяг збирає рядки згори вниз і віддає .txt, який уже можна згодувати pandas.read_fwf, пошуку чи дифу.
Це не заміна бібліотеки в CI. Нижче — як забрати чистий текст тут, що саме пише парсер, і який фрагмент коду далі чесний.
- Візьміть PDF з текстовим шаром: у переглядачі текст виділяється мишею.
- Витягніть його через PDF у текст на цій сторінці.
- Збережіть
.txtі читайте його скриптом — без повторного парсингу 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.