← На главную

Linux-пайплайн: Python-скрипт делает EPUB и PDF из ODT без Adobe

22.05.2026 17:17 · hackernews

Автор статьи, разработчик и независимый писатель, долго мучился с вёрсткой собственных книг. Сначала его пайплайн выглядел так: исходник в Microsoft Word, печатная версия в Adobe InDesign, электронная в Calibre, а для Amazon — ещё и отдельно в Kindle Create. Любое мелкое изменение превращалось в ад — надо было обновлять все три формата. Вдобавок он работает на Linux, а InDesign и Kindle Create там не запускаются, приходилось переключаться на Mac.

Перелом наступил, когда на Hacker News он наткнулся на проект Standard Ebooks. Автор впечатлился качеством их электронных книг и решил попробовать их подход. Процесс оказался дотошным и педантичным: сотни проверок в linter, строгие правила для стилей, шрифтов и семантики. Но результат того стоил — чистый и совместимый EPUB собирался одной командой se build, а Kindle Create больше не требовался.

Позже автор перевёл исходный файл из DOCX в ODT (формат LibreOffice Writer). Это дало открытый, семантически богатый файл с отдельными стилями для песен, писем, иностранных языков и прямой речи. Такую разметку легко парсить. Он написал на Python (с помощью lxml и Claude Code) скрипт конвертации ODT в XHTML для Standard Ebooks. Электронная версия была готова.

Самым сложным оказалась печатная PDF. LibreOffice Writer не дотягивал по микротипографике, Scribus тормозил на 200+ страницах. Тогда автор вспомнил про LaTeX. Сравнив результат с InDesign, он почти не увидел разницы. Осталось научить скрипт конвертировать ODT не только в XHTML, но и в TeX. Готовый пайплайн: редактируешь единственный ODT-файл, запускаешь скрипт — получаешь PDF через LaTeX и EPUB через Standard Ebooks. Никакого проприетарного софта, всё под Git-контролем, изменения видно через git diff.

Автор признаёт, что его путь избыточен для большинства авторов, но для него это идеальный баланс писательского комфорта и технологического контроля. В конце он делится ключевыми пакетами LaTeX: memoir, fontspec для OpenType-шрифтов вроде Adobe Garamond, polyglossia для языков вроде староокситанского, graphicx для карт и microtype — та самая продвинутая микротипографика, ради которой всё и затевалось.

Читать оригинал →