Thanks for the question @rnaveen2
I have recently implemented similar use-case in my project. We have used headless chrome
chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/
https://developers.google.com/web/updates/2017/04/headless-chrome
You can pass your HTML to headless chrome in the place of URL and save it.
Thanks,
Kiran Vedantam.