如何渲染 WebGL 网站

This article was translated from English: Does it need improvement?
Translated
View the article in English

查克尼特·宾

WebGL 是在网页浏览器中创建交互式 3D 图形的强大工具,但要将这些动态、高度交互式的体验转换成静态 PDF 格式却极具挑战性。将 WebGL 网站渲染为 PDF 需要捕捉 WebGL 上下文生成的视觉内容,并将其转换为适合 PDF 文档的格式。

IronPDF 提供了使用 WebGL 捕捉和渲染网站所需的工具,例如 地图盒WebGL 示例集 .


适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronPDFNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。

适用于PDF的C# NuGet库 nuget.org/packages/IronPdf/
Install-Package IronPdf

考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip

手动安装到你的项目中

下载DLL

渲染 WebGL 网站

要启用 WebGL 渲染,您需要配置一些 IronPDF 设置:

  • SingleProcess = true。这将强制 Chrome 浏览器在当前进程中执行所有操作,而不是使用子进程。
  • ChromeGpuMode = Hardware 模式。

此外,如果网站在渲染之前需要一些延迟才能正常显示,则可以使用 WaitFor.RenderDelay 方法。让我们渲染一个 来自 mapbox 的样本 为例。

: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")
VB   C#

输出 PDF

目前还无法在 Docker 设置中渲染 WebGL。在 Docker 上渲染 WebGL 可能具有挑战性,因为 Docker 容器通常是无头环境,这意味着它们没有图形用户界面 (图形用户界面).WebGL 依靠对 GPU 的访问来渲染图形,而在无头环境中,对 GPU 的访问是有限的或根本不存在。我们的开发人员仍在调查这种可能性。如果您希望在得出结论后收到通知,请联系 support@ironsoftware.com

查克尼特·宾

软件工程师

Chaknith 是开发者中的福尔摩斯。他第一次意识到自己可能在软件工程方面有前途,是在他出于乐趣做代码挑战的时候。他的重点是 IronXL 和 IronBarcode,但他为能帮助客户解决每一款产品的问题而感到自豪。Chaknith 利用他从直接与客户交谈中获得的知识,帮助进一步改进产品。他的轶事反馈不仅仅局限于 Jira 票据,还支持产品开发、文档编写和市场营销,从而提升客户的整体体验。当他不在办公室时,他可能会在学习机器学习、编程或徒步旅行。