Why you would use anything other than a HTML -> PDF rendering engine is beyond me.

Is there an open source pure-.NET library that implements this?

I've heard good things about https://github.com/Kozea/WeasyPrint in Python.