Using itext7 with the pdfHtml add-on, I am getting this error below when the web application is deployed in IIS. Works fine on development
System.NullReferenceException: Object reference not set to an instance of an object.
at iText.Html2pdf.Attach.Impl.Tags.BrTagWorker..ctor(IElementNode element, ProcessorContext context)
at iText.Html2pdf.Attach.Impl.DefaultTagWorkerMapping.<>c.<.cctor>b__1_10(IElementNode lhs, ProcessorContext rhs)
at iText.Html2pdf.Attach.Impl.DefaultTagWorkerFactory.GetTagWorker(IElementNode tag, ProcessorContext context)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.Visit(INode node)
at iText.Html2pdf.Attach.Impl.DefaultHtmlProcessor.ProcessDocument(INode root, PdfDocument pdfDocument)
at iText.Html2pdf.Attach.Attacher.Attach(IDocumentNode documentNode, PdfDocument pdfDocument, ConverterProperties converterProperties)
at iText.Html2pdf.HtmlConverter.ConvertToDocument(String html, PdfDocument pdfDocument, ConverterProperties converterProperties)
at iText.Html2pdf.HtmlConverter.ConvertToPdf(String html, PdfDocument pdfDocument, ConverterProperties converterProperties)
at iText.Html2pdf.HtmlConverter.ConvertToPdf(String html, PdfWriter pdfWriter, ConverterProperties converterProperties)
Here is the code that I use to convert html string to pdf
public void GeneratePdf(string htmlContent, string fileName, string securityCode) {
StringBuilder sb = new StringBuilder();
sb.Append(htmlContent);
string baseUri = _env.ContentRootPath + "\\assets\\";
ConverterProperties prop = new();
prop.SetBaseUri(baseUri);
WriterProperties writerProperties = new();
writerProperties.SetStandardEncryption(Encoding.Default.GetBytes(securityCode),
Encoding.Default.GetBytes(securityCode),
EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128);
PdfWriter pdfWriter = new(new FileStream(fileName, FileMode.Create), writerProperties);
HtmlConverter.ConvertToPdf(sb.ToString(), pdfWriter, prop);
}
Found out that iText7's pdfHtml add-on is bad with <br/>
tags. Removed all line break tags which fixed the error. Note that this only happens when the application is deployed in IIS.