htop
Overview
HTML to PDF converter based on headless_chrome, inspired by html2pdf.
In case of any problems while using htop, please see the Troubleshooting section or report a bug.
Installation
cargo install htop
Usage
Display shortened usage description:
htop -h
Display detailed usage description:
htop --help
Display the detailed description of a selected command:
htop help <command>
Convert HTML to PDF
Convert a single HTML file into a single PDF file:
htop single input_file.html output_file.pdf
Convert multiple HTML files into multiple PDF files:
htop multiple input_directory output_directory
Convert a single web page into a single PDF file
htop url https://decision-toolkit.org output-file.pdf
Convert HTML to JPEG
Convert a single HTML file into a single JPEG file:
htop --jpeg single input_file.html output_file.jpg
Convert multiple HTML files into multiple JPEG files:
htop --jpeg multiple input_directory output_directory
Convert a single web page into a single JPEG file:
htop --jpeg url https://decision-toolkit.org output-file.jpg
Convert HTML to PNG
Convert a single HTML file into a single PNG file:
htop --png single input_file.html output_file.png
Convert multiple HTML files into multiple PNG files:
htop --png multiple input_directory output_directory
Convert a single web page into a single PNG file:
htop --jpeg url https://decision-toolkit.org output-file.png
Convert HTML to WebP
Convert a single HTML file into a single WebP file:
htop --webp single input_file.html output_file.webp
Convert multiple HTML files into multiple WebP files:
htop --webp multiple input_directory output_directory
Convert a single web page into a single WebP file:
htop --webp url https://decision-toolkit.org output-file.webp
Troubleshooting
Printing PDF hangs forever
When htop is used in a multiuser environment (or in cloud), it may happen that the printing process hangs forever. The reason is that in Linux the crash report is created in directory /tmp/Crashpad. When another user have already used htop, then such directory already exists and the access rights are set only for the other user. headless_chrome hangs while trying to get access to this directory.
The simplest workaround is to delete this directory before running htop:
sudo rm -rf /tmp/Crashpad
This might not work when multiple htop instances are started simultaneously.
To avoid creating the directory with crash reports, run all simultaneous htop instances
with the option --no-crash-reports
set:
htop --no-crash-reports url https://decision-toolkit.org
SELinux
It might happen, that SELinux will prevent chrome from using the 'execheap' accesses on a process. For Fedora Linux, this bug was reported here. VERY INSECURE workaround is to call:
sudo setsebool -N selinuxuser_execheap 1
See man setsebool
for more details.
License
Licensed under either of
- MIT license (see LICENSE-MIT) or
- Apache License, Version 2.0 (see LICENSE and NOTICE)
at your option.
Contribution
Any contributions to htop are greatly appreciated. All contributions intentionally submitted for inclusion in the work by you, shall be dual licensed as above, without any additional terms or conditions.
Brought to you with 💙 by Engos Software