Odoo's PDF rendering engine
  • C++ 88.9%
  • C 3%
  • RobotFramework 2.4%
  • Objective-C++ 1.9%
  • HTML 1.3%
  • Other 2.1%
Find a file
VAN BOSSUYT Nicolas 2c884bd154 [DOC] Update readme.md
2024-03-27 10:13:40 +01:00
.github [FIX] Build flavor should be stable and nightly. 2024-02-08 11:26:04 +01:00
benchs [ADD] Added smaller general ledge test 2024-02-26 10:13:01 +01:00
doc [DOC] Update readme 2024-01-17 13:25:00 +01:00
meta [FIX] Default value for ccache in wkBuild(). 2024-03-21 14:35:20 +01:00
qt [REV] Reverted layout speed-ups until we find a way to make them work with headers and footers 2024-02-22 15:46:02 +01:00
src [FIX] Removed missed copied if. 2024-03-14 11:38:56 +01:00
.clang-format [REF] removed everythings that is not needed by odoo. 2023-09-07 14:15:57 +02:00
.gitignore [FIX] Apply cutekit updates 2024-03-14 11:33:06 +01:00
authors.txt [DOC] Added roadmap. 2024-01-17 16:41:55 +01:00
bootstrap.sh [FIX] bootstrap: set yes as a true default 2024-01-17 11:28:17 +01:00
common.pri [FIX] Work around a strip segfault. 2024-01-31 15:53:00 +01:00
compile_flags.txt [FIX] Make the compile_flags.txt point to the correct src/lib path. 2023-09-15 11:20:14 +02:00
license.txt [DOC] Update readme 2024-01-17 13:25:00 +01:00
project.json [IMP] Initial cutekit support 2023-12-21 15:03:16 +01:00
readme.md [DOC] Update readme.md 2024-03-27 10:13:40 +01:00
VERSION [IMP] Only run the nigtly build on schedule. 2023-10-24 13:41:06 +02:00
wkhtmltopdf.pro [FIX] Work around a strip segfault. 2024-01-31 15:53:00 +01:00
wkhtmltopdf.qrc [DOC] Added roadmap. 2024-01-17 16:41:55 +01:00

WkHtmlToPDF

Check Publish Nightly

Warning

This not ready for production use yet, here be dragons!

Important

This is a fork of the original wkhtmltopdf project tailored for use with Odoo. It is not intended for general use. If you are looking for the original project, please see https://github.com/wkhtmltopdf/wkhtmltopdf

wkhtmltopdf and wkhtmltoimage are command line tools to render HTML into PDF and various image formats using the QT Webkit rendering engine. These run entirely "headless" and do not require a display or display service.

See https://wkhtmltopdf.org for updated documentation.

Changes

Since this fork doesn't need to follow upstream QT and WebKit, we have made the following opinionated changes:

  • Greatly reduced the amount of style recomputations and layout passes which improves performances by 50% in most cases
  • Disabled bearer networking because it caused file descriptor leaks
  • Merge everything into a single repository, including the patched QT
  • In general, everything that is not needed by wkhtmltopdf has been removed from QT
  • Removed support for DSA since it is deprecated in OpenSSL and breaks the build on archlinux
  • Switched to build system to CuteKit instead of the hand-rolled one
  • Greatly improved tooling and build system with support for CPU and memory profiling

Roadmap

The long term goal is to make wkhtmltopdf as lean as possible and improve speed and stability. This will be done by:

  • Slim down QT even further and keep the bare minimum for rendering and networking
  • Remove the need for X11 and OpenGL
  • Slim down WebKit and keep the bare minimum for parsing and rendering HTML
  • Implement an area allocator to reduce memory fragmentation and improve cache locality when building the DOM and CSS Box Tree with the aim of improving performance and reducing memory usage
  • Add support for more recent versions of CSS and HTML
  • Remove support for JavaScript (?)

Building

$ ./bootstrap.sh tools setup

$ ./bootstrap.sh wk configure

$ ./bootstrap.sh wk build

License

LGPL License

WkHtmlToPDF is licensed under the LGPL License.

The full text of the license can be accessed via this link and is also included in the license.txt file of this software package.