How to Render WebGL Sites
WebGL is a powerful tool for creating interactive 3D graphics within web browsers, but converting these dynamic, highly interactive experiences into a static PDF format can be challenging. Rendering a WebGL website to PDF involves capturing the visual content generated by the WebGL context and converting it into a format suitable for a PDF document.
IronPDF provides the tools needed to capture and render websites with WebGL such as Mapbox and WebGL Samples collection .
How to Render WebGL Sites
- Download the C# library to render WebGL websites
- Set the SingleProcess property to true
- Change the ChromeGpuMode property to Hardware
- Apply a delay before rendering to ensure proper rendering
- Render the PDF from the URL and save the result
Install with NuGet
Install-Package IronPdf
Render WebGL Websites
To enable WebGL rendering, there are a few IronPDF settings you need to configure:
- SingleProcess = true. This forces Chrome to perform everything in the current process rather than using subprocesses.
- ChromeGpuMode = Hardware mode.
Additionally, if the website requires some delay before rendering to display properly, you may use the WaitFor.RenderDelay
method. Let's render a sample from mapbox for our example.
:path=/static-assets/pdf/content-code-examples/how-to/render-webgl-render-webgl.cs
using IronPdf;
// Configure IronPdf settings
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Hardware;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Set delay before rendering
renderer.RenderingOptions.WaitFor.RenderDelay(5000);
// Render from URL
PdfDocument pdf = renderer.RenderUrlAsPdf("https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-slot/");
pdf.SaveAs("webGL.pdf");
Imports IronPdf
' Configure IronPdf settings
IronPdf.Installation.SingleProcess = True
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Hardware
Dim renderer As New ChromePdfRenderer()
' Set delay before rendering
renderer.RenderingOptions.WaitFor.RenderDelay(5000)
' Render from URL
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-slot/")
pdf.SaveAs("webGL.pdf")
Output PDF
It is currently not possible to render WebGL in a Docker setup. Rendering WebGL on Docker can be challenging because Docker containers are typically headless environments, meaning they do not have a graphical user interface (GUI). WebGL relies on access to the GPU to render graphics, and in a headless environment, access to the GPU is limited or nonexistent. Our developers are still investigating this possibility. If you want to be notified once a conclusion has been reached, please contact support@ironsoftware.com.