← Все новости
Код в Word без картинок: подсветка синтаксиса через python-docx и Pygments

Код в Word без картинок: подсветка синтаксиса через python-docx и Pygments

В прошлой статье мой генератор отчетов вставлял код в Word картинками, и первый же комментарий был: «Код рисунками – брр». Справедливо: такой код не скопировать, не найти поиском, а при печати он мылится.Разобрался, как сделать правильно: листинги текстом с подсветкой синтаксиса, рамкой, заливкой и автонумерацией «Листинг N» через поля Word. Все на python-docx и Pygments, около ста строк. По пути – пара ловушек, о которых почти нигде не пишут: почему Word может не открыть документ из-за порядка XML-тегов и зачем задавать шрифт четыре раза.Бонус – замеры: 30 листингов текстом собираются за 0,6 с против 4,1 с картинками, а файл получается в три раза легче. Разобраться в деталях