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");
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")
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.
Perguntas frequentes
Qual é o propósito de usar o IronPDF para renderizar conteúdo WebGL?
O IronPDF é usado para capturar mapas WebGL acelerados por GPU, painéis 3D e visualizadores de modelos como PDFs estáticos em C#. Isso é essencial para criar versões compartilháveis e fixas de cenas interativas para relatórios, aprovações e arquivos.
Por que não posso usar a renderização padrão de HTML para PDF para conteúdo WebGL?
A renderização padrão de HTML para PDF não captura conteúdo WebGL porque depende da GPU para processamento. A solução do IronPDF inclui renderização acelerada por GPU para capturar essas cenas complexas com precisão.
Quais são as configurações necessárias para renderizar WebGL com o IronPDF?
Para renderizar conteúdo WebGL com o IronPDF, você precisa habilitar o modo de processo único e o modo de GPU de hardware, e incluir um atraso de renderização para permitir que a cena carregue completamente antes da captura.
Por que é necessária uma GPU real para renderizar conteúdo WebGL com o IronPDF?
Uma GPU real é necessária porque o modo de GPU de hardware é necessário para lidar com shaders, texturas e transformações 3D. A renderização por software não pode processar esses elementos efetivamente.
Posso usar o Docker para renderizar conteúdo WebGL com o IronPDF?
Não, o Docker não é suportado porque é sem cabeça e tem acesso GPU limitado. As alternativas incluem usar um VM, um servidor dedicado com GPU ou pré-renderizar cenas para imagens estáticas.
Como é a saída da renderização de conteúdo WebGL do IronPDF?
A saída é um instantâneo PDF estático que preserva o estado visual da cena WebGL no momento da renderização. É adequado para documentação e arquivamento, mas não mantém a interatividade como rolagem ou zoom.
Como devo ajustar o atraso de renderização para conteúdo WebGL?
O atraso de renderização deve ser configurado entre 3000 e 10000 milissegundos dependendo da complexidade da cena. Isso garante tempo suficiente para o carregamento da cena sem desacelerar desnecessariamente o processo.
Qual é o impacto de habilitar o modo de processo único?
Habilitar o modo de processo único é necessário para renderização WebGL, mas afeta a concorrência. Este trade-off deve ser considerado, especialmente em serviços de alto volume.
Onde posso encontrar mais informações sobre como configurar o IronPDF para renderização WebGL?
Passos completos de configuração e resolução de problemas podem ser encontrados no guia de renderização WebGL disponível no site do IronPDF.

