Как превратить сканированные PDF в издания с крупным шрифтом в PDF и EPUB
Для Knigopoisk — русскоязычного магазина электронных книг и аудиокниг — мы сделали пайплайн, который превращает отсканированную PDF-книгу с OCR-слоем в доступные издания: PDF с крупным шрифтом нужного кегля, EPUB с перетекающим текстом и обложку в формате 2:3, которого ждут карточки книг на витрине. Это внутренний производственный инструмент, а не функция для покупателей.
Как работает пайплайн
- Извлечение —
extract.pyчитает PDF с помощью PyMuPDF и записывает каждую строку текста с её координатами на странице вrows.json. - Восстановление структуры —
build3.pyсклеивает строки в абзацы, убирает мягкие переносы и исправляет типичные ошибки OCR — например, неверно распознанные кириллические буквы и латинские символы внутри русских слов. По размеру шрифта заголовков он находит части, главы и разделы, а иллюстрации вырезает в отдельные изображения по подписям «Рис. N». - Сборка результатов —
make_outputs.pyпревращает список блоков в разделы и EPUB. - Вёрстка —
make_pdf.py <pt>верстает книгу с помощью ReportLab на формате A4 шрифтом DejaVu Sans. От 18 pt и выше собирается издание с крупным шрифтом и более узкими полями, а меньшие кегли дают обычное издание для чтения. Заголовки масштабируются от размера основного текста, висячие строки подавляются, у каждой страницы есть номер, а для навигации в PDF добавляются закладки. - Обложка —
make_cover.pyрендерит исходный титульный лист в 300 dpi, обрезает поля скана до полосы набора и оформляет результат в JPEG размером 800×1200.
Результаты на первой книге
Мы прогнали пайплайн от начала до конца на отсканированной русскоязычной книге по менеджменту объёмом больше 250 страниц. Извлечение дало 10 004 строки текста; проход по структуре восстановил 1 589 абзацев, 4 части, 15 глав и 14 иллюстраций; а на выходе получилось 29 разделов и EPUB весом 1,6 МБ. Каждый этап пишет в лог свои счётчики, поэтому результат легко проверить до того, как что-либо попадёт в каталог.
Смежные работы
Этот инструмент дополняет другие наши работы по внедрению ИИ и автоматизации для Knigopoisk — среди них пайплайн генерации ИИ-аудиокниг и партнёрский виджет Knigopoisk.



