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 функций для настройки сетевых параметров:setCAInfosetCAPathsetVerifyHostsetVerifyPeersetFollowRedirectssetMaxRedirectssetTimeout
И соответствующие функции C API:
plutobook_set_ssl_cainfoplutobook_set_ssl_capathplutobook_set_ssl_verify_peerplutobook_set_ssl_verify_hostplutobook_set_http_follow_redirectsplutobook_set_http_max_redirectsplutobook_set_http_timeout
-
Добавлена консольная утилита
html2png. -
Параметр
formatзаменён на параметрыwidthиheightв функцииBook::writeToPngи связанных функциях. -
В консольную утилиту
html2pdfдобавлена поддержка новых опций:--size--margin--media--orientation--width--height--margin-top--margin-right--margin-bottom--margin-left



