Написать примерно следующий код.
1 путь использовать браузер
https://github.com/eKoopmans/html2pdf.js - получаете PDF из браузера, отправляете сформированный файл на endpoint на своем сервере, он шлет на почту, формируете загрузку в клиенте
2 путь формируете пдф на сервере, отправляете его на почту, и на клиенте формируете код для автозагрузки