I'm trying to use itext 7 with iText7.PdfHtml conversion tool with big html files, and memory consumption overlap 1Gb and never getting free. Also takes a lot of time compared with others libraries even high cpu usage. Whats is going on?
public IActionResult Index()
{
byte[] data = null;
var html = System.IO.File.ReadAllBytes(@"Input.html");
using (var htmlStream = new MemoryStream(html))
{
using (var pdfStream = new MemoryStream())
{
using (var pdfWriter = new PdfWriter(pdfStream))
{
using (var pdfDocument = new PdfDocument(pdfWriter))
{
using (var document = HtmlConverter.ConvertToDocument(htmlStream, pdfDocument, new ConverterProperties()))
{
pdfDocument.SetDefaultPageSize(iText.Kernel.Geom.PageSize.A4);
}
}
}
data = pdfStream.GetBuffer();
return new FileStreamResult(new MemoryStream(data), System.Net.Mime.MediaTypeNames.Application.Pdf);
}
}
}
Using FileStreams
public IActionResult Index()
{
var tempFileName = Path.GetTempFileName();
using (var htmlStream = new FileStream(@"Input.html", FileMode.Open))
using (var pdfStream = new FileStream(tempFileName, FileMode.Create))
using (var pdfWriter = new PdfWriter(pdfStream))
using (var pdfDocument = new PdfDocument(pdfWriter))
using (var document = HtmlConverter.ConvertToDocument(htmlStream, pdfDocument, new ConverterProperties()))
pdfDocument.SetDefaultPageSize(iText.Kernel.Geom.PageSize.A4);
return new FileStreamResult(new FileStream(tempFileName, FileMode.Open), System.Net.Mime.MediaTypeNames.Application.Pdf);
}
BIG HTML FILE (https://www.dropbox.com/s/fqkvcnvsvp1mjz4/Input.zip?dl=0)