PdfPig.Rendering.Skia 0.1.12.1

PdfPig.Rendering.Skia

Cross-platform library to render pdf documents as images with PdfPig using SkiaSharp, or to extract images contained in a pdf page as SkiaSharp images.

[!IMPORTANT] This is a very early version and the code is constantly evolving.

Available as a Nuget package https://www.nuget.org/packages/PdfPig.Rendering.Skia/

Uses parts of PDFBox code.

How to Render pages as images

Save pages as image to disk

using UglyToad.PdfPig.Graphics.Colors;
using UglyToad.PdfPig;
using UglyToad.PdfPig.Rendering.Skia;
using SkiaSharp;

[...]

using (var document = PdfDocument.Open(_path, SkiaRenderingParsingOptions.Instance))
{
	string fileName = Path.GetFileName(_path);

	document.AddSkiaPageFactory(); // Same as document.AddPageFactory<SKPicture, SkiaPageFactory>()

	for (int p = 1; p <= document.NumberOfPages; p++)
	{
		using (var fs = new FileStream($"{fileName}_{p}.png", FileMode.Create))
		using (var ms = document.GetPageAsPng(p, _scale, RGBColor.White))
		{
			ms.WriteTo(fs);
		}
	}
}

Get the SKBitmap from a page

using UglyToad.PdfPig.Graphics.Colors;
using UglyToad.PdfPig;
using UglyToad.PdfPig.Rendering.Skia;
using SkiaSharp;

[...]

using (var document = PdfDocument.Open(_path, SkiaRenderingParsingOptions.Instance))
{
	document.AddSkiaPageFactory(); // Same as document.AddPageFactory<SKPicture, SkiaPageFactory>()

	for (int p = 1; p <= document.NumberOfPages; p++)
	{
		var bitmap = document.GetPageAsSKBitmap(p, _scale, RGBColor.White);
		// Use the SKBitmap
	}
}

Get the SKPicture from a page

using UglyToad.PdfPig.Graphics.Colors;
using UglyToad.PdfPig;
using UglyToad.PdfPig.Rendering.Skia;
using SkiaSharp;

[...]

using (var document = PdfDocument.Open(_path, SkiaRenderingParsingOptions.Instance))
{
	document.AddSkiaPageFactory(); // Same as document.AddPageFactory<SKPicture, SkiaPageFactory>()

	for (int p = 1; p <= document.NumberOfPages; p++)
	{
		var picture = document.GetPage<SKPicture>(p);
		// Use the SKPicture
	}
}

How to extract images contained in a pdf page

using UglyToad.PdfPig.Rendering.Skia.Helpers;

[...]

using (var document = PdfDocument.Open(_path, SkiaRenderingParsingOptions.Instance))
{
	for (int p = 1; p <= document.NumberOfPages; p++)
	{
		var page = document.GetPage(p);
		foreach (var pdfImage in page.GetImages())
		{
			var skImage = pdfImage.GetSKImage();			
			// Use SKImage
		}
	}
}

No packages depend on PdfPig.Rendering.Skia.

Version Downloads Last updated
0.1.12.2 1 12/28/2025
0.1.12.1 1 11/16/2025
0.1.12.1-alpha009-skia3 0 11/08/2025
0.1.12.1-alpha008-skia3 0 11/07/2025
0.1.12.1-alpha007-skia3 0 10/23/2025
0.1.12.1-alpha007 0 10/23/2025
0.1.12.1-alpha006-skia3 0 10/10/2025
0.1.12.1-alpha006.1-skia3 0 10/22/2025
0.1.12.1-alpha006 0 10/10/2025
0.1.12.1-alpha005-skia3.1 0 10/05/2025
0.1.12.1-alpha005-skia3 0 10/05/2025
0.1.12.1-alpha004 0 09/19/2025
0.1.12.1-alpha003 0 09/16/2025
0.1.12.1-alpha002 0 09/14/2025
0.1.12.1-alpha001 0 09/14/2025
0.1.11.6 0 10/23/2025
0.1.11.5 0 10/10/2025
0.1.11.4 0 09/16/2025
0.1.11.3 0 08/17/2025
0.1.11.2 0 08/16/2025
0.1.11.1 0 07/27/2025
0.1.11.1-alpha013 0 07/19/2025
0.1.11.1-alpha012 0 06/07/2025
0.1.11.1-alpha011 0 05/30/2025
0.1.11.1-alpha010 0 05/18/2025
0.1.11.1-alpha009 0 05/13/2025
0.1.11.1-alpha008 0 05/11/2025
0.1.11.1-alpha007 0 05/10/2025
0.1.11.1-alpha006 0 05/09/2025
0.1.11.1-alpha005 1 12/28/2025
0.1.11.1-alpha004 0 05/02/2025
0.1.11.1-alpha003 0 04/24/2025
0.1.11.1-alpha002 0 03/30/2025
0.1.11.1-alpha001 0 03/30/2025
0.1.10.4 0 05/05/2025
0.1.10.3 0 05/02/2025
0.1.10.2 0 03/15/2025
0.1.10.2-alpha003 0 03/09/2025
0.1.10.2-alpha002 1 12/28/2025
0.1.10.2-alpha001 0 03/08/2025
0.1.10.1 0 03/08/2025
0.1.10.1-alpha008 0 02/26/2025
0.1.10.1-alpha007 0 02/23/2025
0.1.10.1-alpha006 0 02/22/2025
0.1.10.1-alpha005 1 12/28/2025
0.1.10.1-alpha004 0 02/16/2025
0.1.10.1-alpha003 0 02/15/2025
0.1.10.1-alpha001 0 01/26/2025
0.1.9.5 1 12/28/2025
0.1.9.4 0 12/28/2024
0.1.9.3 0 11/10/2024
0.1.9.2 0 10/29/2024
0.1.9.1 0 10/06/2024
0.1.9.1-alpha007 0 08/25/2024
0.1.9.1-alpha006 0 08/23/2024
0.1.9.1-alpha005 0 05/25/2024
0.1.9.1-alpha004 0 04/01/2024
0.1.9.1-alpha003 0 03/18/2024
0.1.9.1-alpha002 0 02/19/2024
0.1.9.1-alpha001 0 02/18/2024