Apple - Can man pages be converted to html and/or pdf format?
Yes, there are numerous tools to convert manual pages to HTML and PDF.
UNIX Approach
Converting a man page to HTML, PDF, and text provides detailed instructions for macOS:
cat /usr/share/man/man1/osascript.1 | groff -mandoc -Thtml >man_osascript.html
If the file ends in .gz
, then substitute the following.
gunzip --to-stdout /usr/share/man/man8/cupsfilter.8.gz | groff -mandoc -Thtml >man_cupsfilter.html
For converting from HTML to PDF:
cupsfilter man_osascript.html > man_osascript.pdf
For other tool chains, see these related questions:
- How do I convert Linux man pages to HTML without using groff?
- What's the easy way to convert all man pages to html?
- Convert all Linux man pages to text / html or markdown
pandoc
Another approach is to use the popular pandoc tool. This tool can convert manual pages to a wide range of formats.
Link x-man-page
macOS's Terminal.app offers a x-man-page
URL scheme for pretty printing manual pages. Try opening the link below to see the ls
man page:
x-man-page://ls
man -t yourcommand | open -fa "Preview"
where yourcommand
is the one you want the man page of.
$ man -t tmutil | open -fa "Preview"
Here is a function I added to my .bash_profile
file to create a PDF of each BSD command I'd check the manual page for:
manp ()
{
docDir="$HOME/Documents/BSD Commands"
[[ ! -d $docDir ]] && mkdir -p "$docDir"
if [[ ! -f $docDir/$1.pdf ]]; then
man -t "$1" | pstopdf -i -o "$docDir/$1.pdf"
open "$docDir/$1.pdf"
else
open "$docDir/$1.pdf"
fi
}
So, in Terminal, typing e.g. manp bash
instead of man bash
a PDF gets created, if it hasn't already been, and then opened by the app registered to handle PDF documents. The default is Preview, however on my system it's set to use Skim, as its search functionality is better then Preview and as a matter of fact will find the search string when Preview just will not.
Note that the first time the function is used it will enumerate some fonts in the output in Terminal, however this is a one time enumeration of the fonts.
As a side note, typing just the command name in Terminal and then right-click on it and select Open man Page, displays it in a fully scrollable and searchable Terminal window, which is much better then typing e.g. man bash
.