Gtkwebkit, сохранить HTML в PDF

В последние дни я ищу лучший и самый короткий способ конвертировать HTML-файлы в PDF. Поскольку я создаю свои html-файлы с помощью программы на C и просматриваю их через gtkwebkit, использующий cairo, это должен быть эффективный и прямой способ преобразования содержимого показанной страницы в html с помощью C (я думаю). Но не могу найти ни одного примера или направления, чтобы идти в сети.

До сих пор среди разных виртуальных принтеров я нахожу только инструменты командной строки, которые создаются в perl или зависят от того, что не нужно.

Пожалуйста, для любого предложения, примера или совета, чтобы получить эту функциональность от gtkwebkit и, если нет, может быть что-то с какой-то крошечной C-библиотекой.

1 ответ

Решение

Насколько я могу судить по прочтению документации (сам не пробовал):

  1. Получить основной кадр с webkit_web_view_get_main_frame(),
  2. Создать GtkPrintOperation с gtk_print_operation_new(),
  3. Установить export-file свойство в вашей операции печати, чтобы быть именем PDF, в который вы хотите экспортировать.
  4. Распечатать кадр с webkit_web_frame_print_full(), Не забудьте пройти GTK_PRINT_OPERATION_ACTION_EXPORT в качестве параметра "действие".

Однажды я написал код, чтобы сделать это, не открывая окна. Но затем у меня возникла проблема с использованием этого кода из нескольких потоков (например, на веб-сервере). Я провел небольшое исследование и выяснил, что сам gtk однопоточный. Так что я сделал свой код потокобезопасным, поставив операции печати в очередь в основной поток. В любом случае, если это поможет, проверьте это... https://github.com/gnudles/wkgtkprinter

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