html2pdf4doc_python is the Python wrapper/CLI for the html2pdf4doc JavaScript library that prints HTML pages into PDFs using Chrome/Chromedriver.
This repository focuses strictly on the Python-side automation layer. The rendering logic remains in the JS core.
-
Install Google Chrome (or Chrome for Testing) on the machine that will run the CLI.
-
Install the package from PyPI:
pip install html2pdf4docPython 3.8+ is required.
See also: the Ubuntu-based container Dockerfile and the GitHub CI files found
in the .github/workflows folder.
Download or reuse ChromeDriver with SSL verification enabled by default:
python -m html2pdf4doc.main get_driver
python -m html2pdf4doc.main print input.html output.pdfDisable SSL certificate verification only when needed, for example in a restricted corporate environment with custom TLS interception:
python -m html2pdf4doc.main get_driver --disable-ssl-check
python -m html2pdf4doc.main print --disable-ssl-check input.html output.pdfPin a specific Chrome/Chromium binary with --chrome-binary, for example to
use Chrome for Testing or a binary in a non-standard location. Without this
flag, html2pdf4doc auto-detects the Chrome/Chromium binary on the machine.
python -m html2pdf4doc.main get_driver --chrome-binary /path/to/chrome
python -m html2pdf4doc.main print --chrome-binary /path/to/chrome input.html output.pdfSet the HTML2PDF4DOC_CHROME_BINARY environment variable instead of the
flag, for example in CI or Docker environments:
export HTML2PDF4DOC_CHROME_BINARY=/path/to/chrome
python -m html2pdf4doc.main print input.html output.pdfhtml2pdf4doc resolves the Chrome binary in this order:
--chrome-binaryHTML2PDF4DOC_CHROME_BINARY- auto-detection.
1. (Optional) Create and activate a virtual environment
python -m venv .venv && source .venv/bin/activate
2. Install the dependencies
git clone https://github.com/strictdoc-project/html2pdf4doc_python.git
cd html2pdf4doc_python
# Bootstrap minimal Python dependencies: Invoke and TOML.
pip install invoke toml
# Install all Python dependencies and update the submodule with the html2pdf4doc.js.
invoke bootstrap
3. The JS library is maintained in a Git submodule submodules/html2pdf.
When the submodule is updated after a release or during the development, rebuild
the JS library, i.e., regenerate the html2pdf4doc.min.js:
invoke build
4. To validate changes, use the following commands:
invoke lint
invoke test # Normal tests.
invoke test-fuzz # More robust testing.
The project is distributed under the Apache License 2.0 (see LICENSE).