An update to PDFOutliner is now available on the Mac App Store.
The update improves the AutoTOC feature and you can now mark the fonts used for building the table of contents. You can also save these "font sets" to a text file on disk, to load it for the next run. For example, I use Ulysses to write documentation for my apps, and export a PDF. To add a table of contents, I use PDFOutliner. The video below shows the workflow in PDFOutliner (5 min.)
Why choose PDF?
EPUBs are great for reading on mobile devices, however PDFs have the advantage for serious reading, especially on large screens like tablets and desktops. Unlike EPUBs, PDFs allow for annotations, and precise references through page links (for example, PDFoo URLs) and bookmark outlines (PDFOutliner). I like to fast read technical manuals in PDFSpeech, which makes it easier to consume "boring" parts using text-to-speech technology. To convert an EPUB to PDF, we will use Calibre, the free and excellent e-book management app.
Calibre for Converting EPUB to PDF
Import the EPUB into Calibre by dropping it onto the window. For this example, I'm using the OmniGraffle 7 Reference Guide. Note that on the right sidebar, below the book cover, is a link "Click to open" that will reveal the folder where the e-book is saved on disk. We will need to access this folder directly in the last step.
Right click on the book row, and select Convert books → Convert individually, from the contextual menu. In the dialog that opens, select PDF in the top-right. Then select "Page setup" in the left sidebar, and ensure that the Output profile on top is set to Tablet. This ensures that images in the EPUB (often included by the publisher at very high resolutions) are not unnecessarily downgraded when printed to PDF.
Tweak the PDF page size for PDFSpeech
In the same Convert dialog, select the PDF output tab in the left sidebar. Check the option for "Preserve aspect ratio of cover". The default page size is specified here (Letter by default) though you can specify a custom page size too.
You will usually want to experiment with page sizes for the generated PDF. You can run the EPUB to PDF conversion multiple times in Calibre if you wish, and Calibre will replace the generated PDF. For this EPUB, I chose a size of 13 x 26 inch to balance the relative size of text and images on the page. I like to have sufficient content on each page of a PDF so that when PDFSpeech highlights and reads text, I can see it in the context of headings & images around the text.
Make the PDF Compatible with macOS Tools
The PDF generated by Calibre is however not fully compatible with Preview and other tools based on the macOS PDF engine. You can view the PDF but you cannot select the text within. Two workarounds: open the PDF in Preview, then Export as PDF... to generate a compatible PDF. The other option is to use ghostscript utility from the command-line, in Terminal app, for which you'll work in the book's directory on disk.