跳至页脚内容
产品比较

在ASP.NET MVC中生成PDF:iTextSharp vs. IronPDF指南

交互地图、3D仪表板和使用WebGL构建的模型查看器在浏览器中看起来很棒,但利害关系者通常需要一个固定的、可共享的版本:报告中的地图快照、审批包中的3D设计、存档中的模拟结果。IronPDF在C#中将GPU加速的WebGL内容捕获为静态PDF,保留场景在渲染时的视觉状态。

业务问题

一个物流工具在Mapbox地图上显示路线,一个房地产应用程序显示3D地形,一个工程应用程序在浏览器中渲染CAD模型。 每个都需要一个PDF版本作为报告、记录或对无法访问实时应用程序的收件人的文档。 普通截图质量低并且需要手动操作,而标准的HTML到PDF渲染无法捕获依赖于GPU的WebGL。

配置渲染

WebGL捕获需要三个设置:单进程模式、硬件GPU模式和延迟,以便场景在捕获前完成渲染。

using IronPdf;

// Required for WebGL: GPU operations must complete in one process
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Hardware;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Give the 3D scene time to load and render
renderer.RenderingOptions.WaitFor.RenderDelay(5000);

PdfDocument pdf = renderer.RenderUrlAsPdf("https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-slot/");
pdf.SaveAs("webgl.pdf");
using IronPdf;

// Required for WebGL: GPU operations must complete in one process
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Hardware;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Give the 3D scene time to load and render
renderer.RenderingOptions.WaitFor.RenderDelay(5000);

PdfDocument pdf = renderer.RenderUrlAsPdf("https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-slot/");
pdf.SaveAs("webgl.pdf");
Imports IronPdf

' Required for WebGL: GPU operations must complete in one process
IronPdf.Installation.SingleProcess = True
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Hardware

Dim renderer As New ChromePdfRenderer()

' Give the 3D scene time to load and render
renderer.RenderingOptions.WaitFor.RenderDelay(5000)

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-slot/")
pdf.SaveAs("webgl.pdf")
$vbLabelText   $csharpLabel

结果捕获地图、图表或模型的确切外观,适用于文档、报告和存档。

需要计划的要点

此功能具有真实环境要求,它们决定是否适合特定部署。

  • 需要真实GPU: 硬件GPU模式是必需的。 软件渲染无法处理着色器、纹理和3D转换,因此主机需要兼容的GPU和当前的驱动程序。
  • 不支持Docker: 标准Docker容器中无法进行WebGL渲染,因为它们无头且GPU访问有限。 解决方法是使用启用GPU的VM或专用服务器,在GPU主机上运行的微服务,或将场景预渲染为静态图像。
  • 输出是快照: PDF保存了渲染时的视觉状态。平移、缩放和其他交互性未保留,这使其更适合文档和存档,而不是交互式传递。
  • 调整渲染延迟: 复杂场景需要时间加载。 测试3000至10000毫秒之间的值是合理的范围,因为太短会截断渲染,太长会浪费时间。
  • 单进程模式是全局的: 这是必需的,但会影响并发性,这在高负载服务中值得权衡。

结果

启用GPU模式和适当的主机后,团队可以将实时WebGL地图、仪表板和3D模型转换为静态PDF,以供报告和存档。 完整的配置和故障排除步骤请参见WebGL渲染指南

常见问题解答

使用IronPDF渲染WebGL内容的目的是什么?

IronPDF用于捕获GPU加速的WebGL地图、3D仪表板和模型查看器为C#中的静态PDF。这对于创建分享固定版本的交互场景用于报告、审批和归档很重要。

为什么不能使用标准HTML到PDF渲染WebGL内容?

标准HTML到PDF渲染无法捕获WebGL内容,因为它依赖于GPU进行处理。IronPDF的解决方案包括GPU加速渲染,以准确捕获这些复杂场景。

渲染WebGL与IronPDF所需的设置有哪些?

要使用IronPDF渲染WebGL内容,需要启用单一进程模式和硬件GPU模式,并包含渲染延迟以让场景在捕获前完全加载。

为什么渲染WebGL内容需要一个真实GPU?

因为硬件GPU模式需要处理着色器、纹理和3D转换。软件渲染无法有效处理这些元素。

我能用Docker渲染WebGL内容与IronPDF吗?

不支持Docker,因为它是无头的并且GPU访问有限。替代方案包括使用VM、专用GPU服务器或预渲染场景为静态图像。

IronPDF渲染WebGL内容的输出是什么样的?

输出是WebGL场景在渲染时间的静态PDF快照。它适用于文档和归档,但不像平移或缩放等保留交互性。

我应该如何调整WebGL内容的渲染延迟?

根据场景的复杂性,渲染延迟应设置在3000到10000毫秒之间。这确保场景有足够的时间加载,而不会不必要地减慢进程。

启用单一进程模式有什么影响?

启用单一进程模式是WebGL渲染所必需的,但影响并发性。在高容量服务中特别需要考虑这种权衡。

哪里可以找到配置IronPDF进行WebGL渲染的更多信息?

完整的配置和故障排除步骤可以在IronPDF网站上的WebGL渲染指南中找到。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我