Skip to content

HTMLToQPDF is an extension for QuestPDF that allows to generate PDF from HTML

License

Notifications You must be signed in to change notification settings

Relorer/HTMLToQPDF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Dependencies

Usage

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