PlutoBook 0.2.0 и 0.3.0

good-penguin.png

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

>>> Подробности на GitHub

©  Linux.org.ru