Документация Jekyll в PDF с оглавлением
Я хотел бы написать документацию, используя Jekyll с выходами HTML и PDF. HTML может иметь навигацию, но PDF должен иметь оглавление. Есть ли бесплатный и простой способ сделать это?
Часть HTML проста, но я хотел бы использовать @media print CSS для создания PDF-файла.
У меня есть несколько идей, как это сделать.
- Используйте PrinceXML, к сожалению, это коммерческий продукт с неприятным ценником ~$500
- Используйте WKHTMLTOPDF
- Используйте Maruku, так как с его помощью можно конвертировать PDF
Я хотел бы иметь несколько страниц HTML и одностраничный PDF с оглавлением. Какие-либо предложения?
4 ответа
Если "бесплатный" - это ваш самый важный критерий, тогда wkhtmltopdf - ваш лучший выбор. Он поддерживает такие вещи, как обложки, ток, колонтитулы и разделы. В зависимости от того, насколько экзотичным будет макет вашего документа, вы, скорее всего, столкнетесь с некоторыми проблемами, связанными с разрывом страниц, но с небольшими изменениями все будет в порядке.
Я уже некоторое время использую wkhtmltopdf, с некоторыми довольно сложными документами (с диаграммами javascript, таблицами, изображениями svg и т. Д.), И у меня не было слишком много проблем.
Убедитесь, что вы используете статическую версию wkhtmltopdf, так как это единственная версия, которая поддерживает отображение страницы оглавления.
- Для создания оглавления с использованием Jekyll, вы можете использовать
{:toc}
макрос, предложенный markdown, или напишите свой собственный текстильный фильтр содержания, если вы предпочитаете использовать текстиль. - Для создания PDF из HTML и CSS я нашел http://weasyprint.org/ как хорошее решение. Поскольку они не зависят от внешнего механизма рендеринга, они не зависят от дорожных карт стороннего проекта для реализации соответствующих функций, таких как контент, сгенерированный CSS или
@page
CSS-декларация. (Но в отличие от wkhtmltopdf, weasyprint не разбирает javascript).
Вы можете использовать гем PDFKit, который использует wkhtmltopdf за кулисами. Затем вы можете поместить свою логику PDF в плагин Jekyll в качестве генератора или конвертера.
Вы также можете использовать расширение браузера под названием Awesome Screenshot для создания JPEG/PDF со страницы. Расширение позволяет создать полностраничное изображение или экспортировать его в PDF. С помощью этого инструмента вы можете очень быстро экспортировать все страницы (и/или позже объединить все PDF-файлы вместе для создания единого документа).
Я знаю, что это быстрое и грязное решение (не идеальное). Например: при использовании изображений вместо текста полнотекстовый поиск работать не будет. Кроме того, это может потребовать некоторой ручной работы, но это делает работу, когда вы просто хотите ее прочитать.