Gerar PDF em ASP.NET MVC: Guia iTextSharp vs. IronPDF
Mapas interativos, painéis 3D e visualizadores de modelos construídos com WebGL ficam ótimos em um navegador, mas as partes interessadas frequentemente precisam de uma versão fixa e compartilhável: um instantâneo do mapa em um relatório, um design 3D em um pacote de aprovação, um resultado de simulação em um arquivo. IronPDF captura conteúdo WebGL acelerado por GPU como um PDF estático em C#, preservando o estado visual da cena no momento em que é renderizada.
O Problema Empresarial
Uma ferramenta de logística mostra rotas em um mapa Mapbox, um aplicativo de imóveis exibe terreno 3D, um aplicativo de engenharia renderiza um modelo CAD no navegador. Cada um precisa de uma versão em PDF para um relatório, um registro ou um destinatário que não tem acesso ao aplicativo ao vivo. Uma captura de tela normal é de baixa qualidade e manual, e a renderização padrão de HTML para PDF não captura WebGL, que depende da GPU.
Configurando a Renderização
A captura de WebGL precisa de três configurações: modo de processo único, modo de hardware GPU e um atraso para que a cena termine de renderizar antes da captura.
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");
O resultado captura o mapa, gráfico ou modelo exatamente como aparecia, adequado para documentação, relatórios e arquivamento.
Pontos para Planejar
Este recurso possui requisitos de ambiente real, e eles determinam se ele se adapta a uma determinada implantação.
- É necessário uma GPU real: O modo de hardware GPU é obrigatório. A renderização por software não pode lidar com shaders, texturas e transformações 3D, então o host precisa de uma GPU compatível com drivers atuais.
- Docker não é suportado: A renderização WebGL não funciona em contêineres Docker padrão, que são sem cabeça com acesso limitado à GPU. As soluções alternativas são uma VM ou servidor dedicado com GPU habilitada, um microsserviço rodando em um host de GPU ou renderizar previamente cenas para imagens estáticas.
- A saída é um instantâneo: O PDF preserva o estado visual no momento da renderização. Panorâmica, zoom e outras interatividades não são mantidas, motivo pelo qual isso serve para documentação e arquivamento em vez de entrega interativa.
- Ajuste o atraso da renderização: Cenas complexas precisam de tempo para carregar. Valores entre 3000 e 10000 milissegundos são uma faixa razoável para testar, já que muito curto corta a renderização e muito longo desperdiça tempo.
- O modo de processo único é global: É necessário aqui, mas afeta a simultaneidade, o que vale a pena considerar em um serviço de alto volume.
Resultado
Com o modo GPU ativado e um host adequado, as equipes transformam mapas WebGL ao vivo, painéis e modelos 3D em PDFs estáticos que são enviados para relatórios e arquivos. Passos completos de configuração e solução de problemas estão no guia de renderização WebGL.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.