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.
Get started with IronPDF
Start using IronPDF in your project today with a free trial.
How to Render WebGL Sites
- Download the IronPDF C# Library
- 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
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's GeoJSON Layer 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.