Skip to content

A callback was made on a garbage collected delegate #9

@EddyRts

Description

@EddyRts

We are experiencing a runtime error when converting multiple pages of a PDF document to a PDFiumBitmap, caused by the following error:

A callback was made on a garbage collected delegate of type 'PDFiumSharp!PDFiumSharp.Types.FileReadBlockHandler::Invoke'.

The code:

using (var memoryStream = new MemoryStream())
{
	await aAspNetCoreFormFile.CopyToAsync(memoryStream).ConfigureAwait(false);
	memoryStream.Position = 0L;

	var fileRead = FPDF_FILEREAD.FromStream(memoryStream);

	using (var doc = new PdfDocument(memoryStream, fileRead))
	{
		foreach (var page in doc.Pages)
		{
			using (var bitmap = new PDFiumBitmap((int)page.Width, (int)page.Height, false))
			{
				// set white background
				bitmap.FillRectangle(0, 0, (int)page.Width, (int)page.Height, new FPDF_COLOR(255, 255, 255));

				using (var stream = new MemoryStream())
				{
					page.Render(bitmap);
					bitmap.Save(stream);
					using (Image img = Image.FromStream(stream))
					{
						using (var outputStream = new MemoryStream())
						{
							img.Save(outputStream, jpgEncoder, myEncoderParameters);
							//Save the outputStream.ToArray() to the DB
						}
					}
				}
			}
		}
		doc.Close();
	}
}

The stacktrace:

Application: w3wp.exe
CoreCLR Version: 8.0.1825.31117
.NET Version: 8.0.18
Description: The application requested process termination through System.Environment.FailFast.
Message: A callback was made on a garbage collected delegate of type 'PDFiumSharp!PDFiumSharp.Types.FileReadBlockHandler::Invoke'.
Stack:
at PDFiumSharp.PDFium+PlatformInvoke.FPDF_LoadPage_x64(PDFiumSharp.Types.FPDF_DOCUMENT, Int32)
at PDFiumSharp.PDFium+PlatformInvoke.FPDF_LoadPage_x64(PDFiumSharp.Types.FPDF_DOCUMENT, Int32)
at PDFiumSharp.PDFium.FPDF_LoadPage(PDFiumSharp.Types.FPDF_DOCUMENT, Int32)
at PDFiumSharp.PdfPage.Load(PDFiumSharp.PdfDocument, Int32)
at PDFiumSharp.PdfPageCollection.get_Item(Int32)
at PDFiumSharp.PdfPageCollection+<System-Collections-Generic-IEnumerable-GetEnumerator>d__8.MoveNext()

PDFiumSharpV2 V1.1.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions