HTMLDOC is a program that reads HTML and Markdown source files or web pages and converts these into corresponding EPUB, HTML, PostScript, or PDF files with optional tables of contents.
HTMLDOC was developed in the 1990's as a documentation generator for my previous company, and has since seen a lot of usage as a report generator embedded in web servers. However, it does not support many things in "the modern web", such as Cascading Style Sheets (CSS), PDF Encryption (other than 128-bit RC4), PDF forms, complex HTML tables (other than HTML-3.2), Unicode with right-to-left text formatting, Emoji.
HTMLDOC can run from the command line (CLI) as well as with a graphical user interface (GUI). It also supports operation as a CGI program for a web server to provide PDF-formatted output from a web page. The GUI starts automatically if you run HTMLDOC without any options. Since support for Markdown input and EPUB output is still under development, both options are not available from the GUI, but only from the CLI.
htmldoc is available as an AppImage which means "one app = one file", which you can download and run on your Linux system while you don't need a package manager and nothing gets changed in your system. Awesome!
AppImages are single-file applications that run on most Linux distributions. Download an application, make it executable, and run! No need to install. No system libraries or system preferences are altered. Most AppImages run on recent versions of Arch Linux, CentOS, Debian, Fedora, openSUSE, Red Hat, Ubuntu, and other common desktop distributions.
Running htmldoc on Linux without installationUnlike other applications, AppImages do not need to be installed before they can be used. However, they need to be marked as executable before they can be run. This is a Linux security feature.
Behold! AppImages are usually not verified by others. Follow these instructions only if you trust the developer of the software. Use at your own risk!
Download the htmldoc AppImage and make it executable using your file manager or by entering the following commands in a terminal:
chmod +x ./*.AppImage
Then double-click the AppImage in the file manager to open it.
If you want to restrict what htmldoc can do on your system, you can run the AppImage in a sandbox like Firejail. This is entirely optional and currently needs to be configured by the user.
If you would like to update to a new version, simply download the new htmldoc AppImage.
The htmldoc AppImage also can be updated using AppImageUpdate. Using this tool, htmldoc can be updated by downloading only the portions of the AppImage that have actually changed since the last version.
Integrating AppImages into the system
If you would like to have the executable bit set automatically, and would like to see htmldoc and other AppImages integrated into the system (menus, icons, file type associations, etc.), then you may want to check the optional appimaged daemon.
Note for application authors
Thanks for distributing htmldoc in the AppImage format for all common Linux distributions. Great! Here are some ideas on how to make it even better.
Pro Tips for further enhancing the htmldoc AppImage
Thanks for shipping AppStream metainfo inside your AppImage. Please open a pull request on https://github.com/AppImage/appimage.github.io/blob/master/data/htmldoc if you have changed it and would like to see this page updated accordingly.
If you would like to see a donation link for the application here, please include one in the AppStream data.