17 и 20 августа состоялись выпуски 0.2.0 и 0.3.0 библиотеки PlutoBook, предназначенной для рендеринга документов HTML и XML с применением таблицы стилей CSS и распределением элементов по одной или нескольким страницам, которые затем могут быть преобразованы в растровые изображения или документы PDF.
Библиотека использует собственный движок рендеринга (на базе Cairo) и не зависит от таких движков, как Chromium, WebKit или Gecko.
Движок разработан с учётом требований надежности, легковесности и эффективности использования памяти, с использованием современных возможностей C++, таких как std::pmr::monotonic_buffer_resource
, для минимизации фрагментации памяти и оптимизации производительности её выделения.
В комплект поставки входят консольные утилиты html2pdf
и html2png
.
Проект написан на языке C++ (стандарт C++20) и распространяется по лицензии MIT.
Также предоставляется Python-библиотека PlutoPrint.
Список изменений:
-
Добавлено автоматическое определение во время выполнения сертификатов безопасности и их директорий для библиотеки libcurl.
-
Улучшен класс
DefaultResourceFetcher
, с добавлением в C++ API функций для настройки сетевых параметров:setCAInfo
setCAPath
setVerifyHost
setVerifyPeer
setFollowRedirects
setMaxRedirects
setTimeout
И соответствующие функции C API:
plutobook_set_ssl_cainfo
plutobook_set_ssl_capath
plutobook_set_ssl_verify_peer
plutobook_set_ssl_verify_host
plutobook_set_http_follow_redirects
plutobook_set_http_max_redirects
plutobook_set_http_timeout
-
Добавлена консольная утилита
html2png
. -
Параметр
format
заменён на параметрыwidth
иheight
в функцииBook::writeToPng
и связанных функциях. -
В консольную утилиту
html2pdf
добавлена поддержка новых опций:--size
--margin
--media
--orientation
--width
--height
--margin-top
--margin-right
--margin-bottom
--margin-left