I can really recommend weasyprint for (markdown→)html→pdf generation: https://github.com/Kozea/WeasyPrint
Things like columns, footers/headers, hyphenation are all easily done with modern CSS.
Things like columns, footers/headers, hyphenation are all easily done with modern CSS.