Документация Jekyll в PDF с оглавлением

Я хотел бы написать документацию, используя Jekyll с выходами HTML и PDF. HTML может иметь навигацию, но PDF должен иметь оглавление. Есть ли бесплатный и простой способ сделать это?

Часть HTML проста, но я хотел бы использовать @media print CSS для создания PDF-файла.

У меня есть несколько идей, как это сделать.

  1. Используйте PrinceXML, к сожалению, это коммерческий продукт с неприятным ценником ~$500
  2. Используйте WKHTMLTOPDF
  3. Используйте Maruku, так как с его помощью можно конвертировать PDF

Я хотел бы иметь несколько страниц HTML и одностраничный PDF с оглавлением. Какие-либо предложения?

Btw. Buildr решил эту проблему с помощью PrinceXML.

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-файлы вместе для создания единого документа).

Я знаю, что это быстрое и грязное решение (не идеальное). Например: при использовании изображений вместо текста полнотекстовый поиск работать не будет. Кроме того, это может потребовать некоторой ручной работы, но это делает работу, когда вы просто хотите ее прочитать.

Другие вопросы по тегам