Готовый промт: копируйте и адаптируйте
Типовые подводные камни и как их обходить
Склеенные ячейки (merged cells)
OCR часто не видит, что две ячейки — одна. Промт выше просит paddleocr с table=True — он лучше определяет span. Если не помогло: допишите «используй логику: если bbox двух ячеек перекрывается по вертикали/горизонтали > 80% — объединяй».
Сканы низкого качества / наклон
Фото с телефона под углом — враг OCR. В промте уже есть use_angle_cls=True. Если всё равно криво: добавьте «перед OCR сделай perspective transform: найди углы таблицы (approxPolyDP) и выпрями warpPerspective».
Огромные файлы (100+ таблиц)
Песочница имеет лимит по времени (120 сек) и памяти. Промт просит батчи. Если упадёт по таймауту — напишите: «Разбей на части: обработай первые 20 таблиц, верни промежуточный файл, потом следующие».
Рукописный текст в ячейках
Tesseract/Paddle плохо читают руки. Вариант: «Для ячеек, где confidence < 0.6, не гадай — пиши [рукописно]». Потом такие места доработаете вручную за секунды, а не минуты.
Цветовые заливки и границы
python-docx умеет заливку (shading) и borders. Добавьте в промт: «Перенеси background color ячейки (если определишь по среднему цвету bbox) в table_cell.shading.fill». Полностью идентично не выйдет, но близко.
Таблица на несколько страниц
В Word это одна таблица, разорванная разрывом страницы. В .xml это два блока. Промт собирает по порядку — получится две таблицы. Допишите: «Если две соседние таблицы имеют одинаковое число колонок и похожие заголовки — объедини в одну».