Relorer.QuestPDF.HTML is an extension for QuestPDF that allows to generate PDF from HTML
QuestPDF currently does not support inserting html into a pdf document. So I wrote a small library for this. It doesn't support the full functionality of html and css, but I think it should be enough for most cases.
- QuestPDF
- HtmlAgilityPack is used for html parsing
The simplest example of use:
Document.Create(container => { container.Page(page => { page.Content().Column(col => { col.Item().HTML(handler => { handler.SetHtml(html); }); }); }); }).GeneratePdf(path); I strongly recommend overloading the image upload method, because the outdated WebClient is used by default without using asynchronous. To do this, you can use the OverloadImgReceivingFunc:
col.Item().HTML(handler => { handler.OverloadImgReceivingFunc(GetImgBySrc); handler.SetHtml(html); }); You can customize the styles of text and containers for tags:
handler.SetTextStyleForHtmlElement("div", TextStyle.Default.FontColor(Colors.Grey.Medium)); handler.SetTextStyleForHtmlElement("h1", TextStyle.Default.FontColor(Colors.DeepOrange.Accent4).FontSize(32).Bold()); handler.SetContainerStyleForHtmlElement("table", c => c.Background(Colors.Pink.Lighten5)); handler.SetContainerStyleForHtmlElement("ul", c => c.PaddingVertical(10)); You can set the vertical padding size for lists. This padding will not apply to sub-lists:
handler.SetListVerticalPadding(40); You can use HTMLToQPDF.Example to try out the capabilities of this extension.
| Default Styles | Options for changing styles |
![]() | ![]() |


