Convertendo HTML para PDF no .NET: Trabalhando com Tabelas
Resposta Rápida
Para converter HTML para PDF no .NET, utilize o DinkToPdf, que é um wrapper para .NET da ferramenta de linha de comando WkHtmlToPdf. Aqui está um exemplo de código em C#:
var converter = new SynchronizedConverter(new PdfTools());
var doc = new HtmlToPdfDocument()
{
GlobalSettings = { PaperSize = PaperKind.A4 }, // Preferimos o formato A4!
Objects = {
new ObjectSettings() { HtmlContent = @"<html><body>Seu código HTML vai aqui</body></html>" } // Coloque seu conteúdo HTML aqui
}
};
byte[] pdf = converter.Convert(doc); // Pronto! Nosso PDF está preparado
File.WriteAllBytes("resultado.pdf", pdf); // Concluído, o arquivo PDF foi salvo no disco
Requisito Obrigatório: Instale o pacote DinkToPdf
via NuGet e adicione a biblioteca libwkhtmltox
ao diretório do seu projeto. Ajuste os tamanhos de página e o conteúdo HTML conforme suas necessidades.
Escolhendo uma Biblioteca: Tomando uma Decisão Informada
Escolher a biblioteca certa é essencial para uma conversão bem-sucedida de HTML para PDF no .NET. Vamos explorar as opções:
HtmlRenderer.PdfSharp
Se você precisa de uma conversão confiável e thread-safe que suporte CSS e layouts, escolha a HtmlRenderer.PdfSharp.
iTextSharp: Versões Gratuitas e Pagas
Para projetos menores, a iTextSharp é suficiente, mas lembre-se que a versão gratuita possui funcionalidades limitadas.
Otimizada para MVC: Rotativa e TuesPechkin
A Rotativa é excelente para converter Razor Views em PDF dentro de aplicações MVC, enquanto TuesPechkin funciona bem com C#.
Suporte a Padrões Web Modernos
Se você precisa trabalhar com os recursos mais recentes de HTML5 e CSS3, use o Selenium WebDriver ou o Chrome headless através do PuppeteerSharp.
Conversões Paralelas: Uma Questão de Técnica
WkHtmlToXSharp consegue lidar com conversões paralelas, enquanto ExpertPdfHtmlToPdf e SelectPDF oferecem uma variedade de ferramentas pagas e gratuitas.
Solucionando Problemas Comuns e Recursos Operacionais
Adeus, Converters Baseados em IE!
Não utilize conversores baseados em IE—eles são incompatíveis com o design web moderno.
Permissões Específicas do Sistema
O uso do Chrome headless pode exigir certas permissões do sistema.
Compatibilidade com Vários Sistemas
Certifique-se de que a ferramenta escolhida seja versátil e fácil de atualizar.
Você Pode Usar window.print()?
Para tarefas simples, é apropriado usar window.print()
em JavaScript para criar PDFs diretamente do navegador.
NuGet ao Resgate!
O trabalho fluirá suavemente e mais rapidamente com pacotes NuGet como Selenium.WebDriver
e ChromeDriver
.
Opções Avançadas para Tarefas Complexas
Gerenciamento de Layout
EO.Pdf e GemBox.Document oferecem capacidades para layouts complexos, incluindo o manuseio de tabelas.
Atenção às Licenças
Se você planeja utilizar comercialmente, escolha bibliotecas com licenças como BSD-UNSPECIFIED; HtmlRenderer.PdfSharp, por exemplo, é utilizada em meus projetos para maior conveniência.
Configuração e Extensão
Escolha bibliotecas que oferecem a capacidade de estender a funcionalidade através de plugins ou conversores personalizados.
Visualização
Vamos comparar o processo de conversão de HTML para PDF com assar biscoitos:
Biscoitos Crus (🍪🌐): [Código HTML]
- Assando no Forno .NET (🔥👨💻): Use ferramentas .NET para formar a forma final.
- Adicionando Cobertura (🖋️✨): Aplique estilos CSS.
- Finalizando com Decoração (📄💫): Use JavaScript para adicionar detalhes do documento.
Biscoito Decorado Pronto (🍪🎨): [Arquivo PDF]
Lembre-se: Cada etapa é crucial ao converter o código HTML original em um documento PDF completo.
Conclusão: Dicas para uma Conversão Eficiente
Quer Economizar Dinheiro?
Soluções de código aberto podem reduzir significativamente os custos. No entanto, lembre-se de que a escolha deve ser informada!
Soluções Prontas vs. Personalização
Se você precisa de configurações únicas, o desenvolvimento personalizado pode atender muito bem às suas necessidades.
Aprendizado e Atualização
Não esqueça de estudar regularmente novas tecnologias e atualizar suas ferramentas de criação de conteúdo web.
Recursos Úteis
- wkhtmltopdf — Uma ferramenta aberta para converter HTML em PDF.
- SelectPDF para .NET — Uma biblioteca comercial para converter HTML em PDF.
- GitHub - rdvojmoc/DinkToPdf — Um wrapper .NET Core para converter páginas HTML em PDF.
- GitHub - hardkoded/puppeteer-sharp — API .NET para Chrome headless para automatizar ações do navegador e criar PDFs.
- PDFsharp e MigraDoc Foundation — PDFsharp para manipular PDFs no .NET.
- NuGet Gallery | HtmlRenderer.PdfSharp 1.5.0.6 — Usando PdfSharp para renderizar HTML em PDF.
- Quick Start | docfx — DocFX para criar documentação complexa em formato PDF.