LINUX.ORG.RU

PlutoBook 0.2.0 и 0.3.0

 , , , ,

PlutoBook 0.2.0 и 0.3.0

2

2

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

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

PlutoBook позволяет разработчикам создать легковесный просмотрщик электронных книг или документов…

Только вот с копированием текста ничего не получится, а так будет интересно поковырять библиотеку долгими зимними вечерами.

u-235
()
Ответ на: комментарий от dataman

Он про копирование текста из отрендеренного. Если рендер был в растровую картинку, а не pdf. Ну типа делаем свой микробраузер, рисуем в png и отображаем его, можно ли послать координаты выделения на png картинке и получить в ответ данные которые попали под выделение, чтобы сунуть их в буфер обмена и ещё попутно визуально выделить оверлеем например. Путешественник во времени наверное про всё вот это.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Он про копирование текста из отрендеренного. Если рендер был в растровую картинку, а не pdf.

Да, именно про это.

u-235
()
Ответ на: комментарий от knovich

Как реализовать рендеринг html в файл, минуя экран, средствами Qt в Wayland?

Как бы библиотека для этого и предназначена.

u-235
()
Ответ на: комментарий от knovich

Я бы взял litehtml, основанной на html-парсере Gumbo, написанном в Google.
Кстати, автор rssguard (на Qt) теперь использует в ней litehtml.
Можно поизучать, как он это сделал: https://github.com/martinrotter/rssguard/tree/master/src/librssguard/gui/webviewers/qlitehtml.

dataman ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.