IronPDF vs SelectPdf: Comparação completa de bibliotecas .NET Core para conversão de HTML em PDF
Qual biblioteca de PDF você deve escolher para conversão de HTML para PDF em .NET Core ?
Ao desenvolver aplicações .NET que requerem geração de PDFs, selecionar a biblioteca correta pode impactar significativamente o sucesso do seu projeto. Seja para criar sistemas de relatórios empresariais, gerar faturas para pequenas empresas ou elaborar documentação para projetos individuais, a sua escolha de biblioteca de PDFs afeta tudo, desde a velocidade de desenvolvimento até o desempenho em produção.
Esta comparação abrangente examina o IronPDF e o Selecionar PDF , duas bibliotecas PDF .NET populares, ajudando você a tomar uma decisão informada com base no uso prático, nos recursos e no custo-benefício.
Visão geral rápida: IronPDF vs SelectPDF para desenvolvedores .NET
O IronPDF oferece uma solução completa de PDF para o ecossistema .NET , proporcionando conversão perfeita de HTML para PDF com suporte total aos padrões web modernos. Construído com base no mecanismo de renderização do Chrome, garante precisão perfeita em cada pixel, além de oferecer suporte a HTML5, CSS3 e JavaScript. Além da conversão, o IronPDF oferece amplas funcionalidades de manipulação de PDFs, incluindo edição, assinatura, criptografia e opções de implementação multiplataforma.
A Selecionar PDF é especializada na conversão de HTML para PDF para aplicações .NET , com suporte para as plataformas .NET Framework e .NET Core . Embora ofereça recursos fundamentais de geração e manipulação de PDFs, o Selecionar PDF concentra-se principalmente em ambientes Windows, com capacidades multiplataforma limitadas.
| Categoria | Característica/Aspecto | IronPDF | Selecionar PDF | Ganhador |
|---|---|---|---|---|
| **Arquitetura Central** | Filosofia de Design | APIs intuitivas e focadas no desenvolvedor. | Abordagem tradicional de geração de PDF | IronPDF: Desenvolvimento mais rápido |
| Complexidade da API | Métodos simples como `RenderHtmlAsPdf()` | API simples, porém limitada. | IronPDF: Mais intuitivo | |
| Curva de Aprendizagem | Horas para produtividade | Dias para recursos avançados | IronPDF: Adoção mais rápida | |
| **Suporte da plataforma** | Multiplataforma | Windows, Linux, macOS, Docker | Somente para Windows | IronPDF: verdadeira portabilidade |
| Versões .NET | .NET 10, 9, 8, 7, 6, Core, Framework | .NET Core 2.0+, Framework 4.0+ | IronPDF: Suporte à versão mais recente do framework | |
| Plataformas em nuvem | Compatível com Azure, AWS e Google Cloud. | Suporte limitado ao Azure (Básico+) | IronPDF: Nativo da nuvem | |
| Suporte a contêineres | Suporte nativo ao Docker | Sem suporte para Docker | IronPDF: Implantação moderna | |
| **Renderização de HTML para PDF** | Motor de renderização | Motor V8 cromado | Híbrido WebKit/Blink | IronPDF: Maior precisão |
| Suporte a CSS3/HTML5 | Padrões 100% modernos | Bom, mas não completo. | IronPDF: Conformidade total | |
| Execução de JavaScript | Suporte completo a JavaScript | Suporte limitado a JavaScript | IronPDF: Conteúdo dinâmico | |
| Velocidade de renderização | Menos de um segundo para a maioria das páginas. | 2 a 3 segundos típicos | IronPDF: 3 vezes mais rápido | |
| **Segurança de PDF** | Criptografia | AES-256, manipuladores personalizados | Criptografia padrão | Ambos: Padrão da indústria |
| Assinaturas digitais | Implementação simples e robusta | Configuração complexa e manual. | IronPDF: Assinatura mais fácil | |
| Permissões | Controle granular | Permissões básicas | IronPDF: Mais opções | |
| **Edição de conteúdo** | Redação | Ferramentas de redação integradas | Não suportado | IronPDF: Pronto para conformidade |
| Marca d'água | Baseado em HTML/CSS, controle total. | Abordagem baseada em modelos | IronPDF: Mais flexível | |
| Carimbo de texto/imagem | classes unificadas de estampadores | Vários tipos de modelos | IronPDF: API consistente | |
| **Conversão de arquivos** | DOCX para PDF | Suporte nativo | Não suportado | IronPDF: Mais formatos |
| Converter imagem para PDF | Suporte a múltiplos formatos | Suporte básico de imagens | IronPDF: Versátil | |
| PDF para imagens | Rasterização de alta qualidade | Apoiado | Ambos: Disponíveis | |
| **Desempenho** | Documentos grandes | Otimizado para escala | Problemas de desempenho relatados | IronPDF: Melhor em grande escala |
| Uso de memória | Cache eficiente | Maior consumo de memória | IronPDF: Menor pegada de carbono | |
| Suporte assíncrono | assíncrono/await nativo | Suporte assíncrono limitado | IronPDF: Padrões modernos | |
| **Experiência do desenvolvedor** | Documentação | Tutoriais e exemplos abrangentes. | Documentação básica | IronPDF: Melhores recursos |
| Exemplos de código | Mais de 100 amostras prontas para uso | Exemplos limitados | IronPDF: Mais orientações | |
| Design de API | Interface intuitiva e fluida | Abordagem tradicional | IronPDF: amigável para desenvolvedores | |
| **Licensing & Pricing** | Nível inicial | Lite: $799 (1 dev) | Individual: US$ 499 (1 desenvolvedor) | Selecionar PDF: Entrada inferior |
| Licença de Equipe | Mais: US$ 1.499 (3 desenvolvedores) | 5 desenvolvedores: US$ 799 (5 desenvolvedores) | Selecionar PDF: Mais desenvolvedores por dólar | |
| Empresa | Profissional: US$ 2.999 (10 desenvolvedores) | Empresarial: $1,199 (ilimitado) | Selecionar PDF: Empresa de menor porte | |
| Redistribuição | +$2,399 royalty-free | Licenças OEM disponíveis | Ambas: Opções disponíveis | |
| **Apoiar** | Suporte incluído | Suporte técnico 24 horas por dia, 5 dias por semana | Suporte somente por e-mail | IronPDF: Melhor suporte |
| Tempo de resposta | 24-48 horas normalmente | Tempos de resposta variáveis | IronPDF: SLA previsível | |
| Atualizações | Lançamentos mensais | Lançamentos semestrais | IronPDF: Mais frequente | |
| **Ideal para** | Casos de uso | Aplicativos modernos, nuvem, multiplataforma | Conversões simples, exclusivas para Windows. | Dependente do contexto |
| Tamanho da equipe | Licenciamento escalável para qualquer tamanho. | Equipes pequenas a médias | IronPDF: Mais flexível |
Como se compara a compatibilidade entre plataformas?
IronPDF: Desenvolvido para o desenvolvimento moderno
O IronPDF adota práticas de desenvolvimento modernas com suporte abrangente para diversas plataformas. Quer você esteja implantando em servidores tradicionais ou em ambientes conteinerizados, o IronPDF se adapta às necessidades da sua infraestrutura.
Versões do .NET suportadas:
- C#, VB .NET, F#
- .NET 10, 9, 8, 7, 6, Core (3.1+)
- .NET Standard (2.0+)
- .NET Framework (4.6.2 ou superior)
Ambientes de implantação:
- Sistemas Operacionais: Windows, Linux, macOS
- Plataformas em nuvem: Azure (todos os níveis), AWS (EC2, Lambda), Google Cloud
- Contêineres: Docker (contêineres Windows e Linux)
- Ferramentas de desenvolvimento: Visual Studio, JetBrains Rider, VS Code
Essa ampla compatibilidade significa que você pode desenvolver uma vez e implantar em qualquer lugar, o que é crucial para equipes que trabalham com arquiteturas de microsserviços ou implantações em nuvem híbrida. Pronto para ver como o IronPDF funciona no seu ambiente? Baixe a biblioteca e teste-a hoje mesmo.
Selecionar PDF: Solução focada no Windows
O Selecionar PDF adota uma abordagem mais tradicional, focando principalmente em ambientes Windows:
Versões do .NET suportadas:
- .NET Framework 4.0+
- .NET Core 2.1+ (até .NET Standard 2.0)
- .NET 5-8 (somente Windows)
Limitações de implantação:
- Sistemas Operacionais: Somente Windows (sem suporte para Linux/macOS)
- Plataformas em nuvem: Suporte limitado ao Azure (nível básico e superior)
- Contêineres: Sem suporte para Docker
- Restrição importante: Não funciona com o Azure Functions ou arquiteturas sem servidor.
De acordo com a documentação do Selecionar PDF , "o Selecionar PDF funciona atualmente apenas em sistemas Windows." Não há suporte para Linux, Xamarin ou outras plataformas." Essa limitação pode ser um desafio para equipes que adotam práticas modernas de DevOps ou arquiteturas nativas da nuvem.
Qual biblioteca oferece a melhor conversão de HTML para PDF?
Qualidade da conversão de HTML para PDF
A funcionalidade principal de ambas as bibliotecas centra-se na conversão de HTML para PDF, mas as suas abordagens e resultados diferem significativamente.
Exemplo do IronPDF :
using IronPdf;
// Instantiate Chrome-based renderer for pixel-perfect accuracy
var renderer = new ChromePdfRenderer();
// Configure rendering options for optimal output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Convert HTML with full CSS3, JavaScript, and web font support
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<style>
body { font-family: 'Roboto', sans-serif; }
.chart { width: 100%; height: 400px; }
</style>
</head>
<body>
<h1>Modern Web Standards in PDF</h1>
<canvas id='chart' class='chart'></canvas>
<script>
// JavaScript executes before PDF generation
// Perfect for dynamic charts and content
</script>
</body>
</html>");
// Save with professional quality
pdf.SaveAs("modern-output.pdf");
using IronPdf;
// Instantiate Chrome-based renderer for pixel-perfect accuracy
var renderer = new ChromePdfRenderer();
// Configure rendering options for optimal output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
// Convert HTML with full CSS3, JavaScript, and web font support
var pdf = renderer.RenderHtmlAsPdf(@"
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<style>
body { font-family: 'Roboto', sans-serif; }
.chart { width: 100%; height: 400px; }
</style>
</head>
<body>
<h1>Modern Web Standards in PDF</h1>
<canvas id='chart' class='chart'></canvas>
<script>
// JavaScript executes before PDF generation
// Perfect for dynamic charts and content
</script>
</body>
</html>");
// Save with professional quality
pdf.SaveAs("modern-output.pdf");
Imports IronPdf
' Instantiate Chrome-based renderer for pixel-perfect accuracy
Private renderer = New ChromePdfRenderer()
' Configure rendering options for optimal output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
' Convert HTML with full CSS3, JavaScript, and web font support
Dim pdf = renderer.RenderHtmlAsPdf("
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet'>
<style>
body { font-family: 'Roboto', sans-serif; }
.chart { width: 100%; height: 400px; }
</style>
</head>
<body>
<h1>Modern Web Standards in PDF</h1>
<canvas id='chart' class='chart'></canvas>
<script>
// JavaScript executes before PDF generation
// Perfect for dynamic charts and content
</script>
</body>
</html>")
' Save with professional quality
pdf.SaveAs("modern-output.pdf")
A classe ChromePdfRenderer utiliza o mesmo mecanismo de renderização do Google Chrome, garantindo que seus PDFs correspondam exatamente ao que os usuários veem em seus navegadores. Essa abordagem oferece suporte a recursos modernos da web, incluindo CSS Grid, Flexbox, elementos Canvas e frameworks JavaScript complexos como React ou Angular. Para obter guias de implementação detalhados, explore a documentação de conversão de HTML para PDF .
Exemplo de Selecionar PDF:
using Selecionar PDF;
// Create converter instance
HtmlToPdf converter = new HtmlToPdf();
// Basic configuration options
converter.Options.PdfPageSize = PdfPageSize.A4;
converter.Options.WebPageWidth = 1024;
converter.Options.WebPageHeight = 0; // Auto-detect
// Convert HTML string
PdfDocument doc = converter.ConvertHtmlString(htmlString);
// Save document
doc.Save("output.pdf");
doc.Close();
using Selecionar PDF;
// Create converter instance
HtmlToPdf converter = new HtmlToPdf();
// Basic configuration options
converter.Options.PdfPageSize = PdfPageSize.A4;
converter.Options.WebPageWidth = 1024;
converter.Options.WebPageHeight = 0; // Auto-detect
// Convert HTML string
PdfDocument doc = converter.ConvertHtmlString(htmlString);
// Save document
doc.Save("output.pdf");
doc.Close();
Imports Selecionar_PDF
' Create converter instance
Dim converter As New HtmlToPdf()
' Basic configuration options
converter.Options.PdfPageSize = PdfPageSize.A4
converter.Options.WebPageWidth = 1024
converter.Options.WebPageHeight = 0 ' Auto-detect
' Convert HTML string
Dim doc As PdfDocument = converter.ConvertHtmlString(htmlString)
' Save document
doc.Save("output.pdf")
doc.Close()
Embora a API do Selecionar PDF seja simples, os desenvolvedores relatam limitações com os padrões da web modernos. De acordo com discussões no GitHub , o desempenho da conversão pode ser lento, com usuários relatando tempos de conversão de 3 segundos para documentos simples. A biblioteca também apresenta dificuldades com recursos do CSS3 e conteúdo que utiliza muito JavaScript.
Indicadores de desempenho
Testes de desempenho no mundo real revelam diferenças significativas:
IronPDF: Conversão em menos de um segundo para páginas web padrão.
- Selecionar PDF: tempo de processamento típico de 2 a 3 segundos, com relatos de atrasos de até 3,5 minutos em servidores de produção.
Saiba mais sobre como otimizar o desempenho da geração de PDFs no guia de desempenho do IronPDF .
Compatibilidade com frameworks CSS modernos: Bootstrap, Tailwind e muito mais.
Um aspecto crucial, muitas vezes negligenciado durante a avaliação de bibliotecas, é o suporte a frameworks CSS modernos. Com Bootstrap, Tailwind CSS e Foundation dando suporte a milhões de aplicações web, a capacidade de renderizar com precisão esses frameworks em formato PDF pode ser crucial para o sucesso da sua implementação.
IronPDF: Suporte nativo a frameworks modernos
O mecanismo de renderização do IronPDF para Chrome oferece suporte perfeito para todas as estruturas CSS contemporâneas:
- Bootstrap 5: Flexbox completo e renderização de CSS Grid para layouts responsivos
- Tailwind CSS: Suporte completo a classes utilitárias com espaçamento e tipografia adequados.
- Fundamentos: Os recursos avançados do CSS3 renderizam com perfeição de pixel.
- Validação em situações reais: Renderiza com sucesso a página inicial do Bootstrap e os modelos do Bootstrap.
Exemplo de código: Componentes de alerta do Bootstrap
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapAlerts = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h2 class='mb-4'>System Notifications</h2>
<div class='alert alert-success d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#check-circle-fill'/>
</svg>
<div>Payment processed successfully!</div>
</div>
<div class='alert alert-warning d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#exclamation-triangle-fill'/>
</svg>
<div>Your subscription expires in 7 days.</div>
</div>
<div class='alert alert-info d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#info-fill'/>
</svg>
<div>New features available in the dashboard.</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapAlerts);
pdf.SaveAs("bootstrap-alerts.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapAlerts = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h2 class='mb-4'>System Notifications</h2>
<div class='alert alert-success d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#check-circle-fill'/>
</svg>
<div>Payment processed successfully!</div>
</div>
<div class='alert alert-warning d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#exclamation-triangle-fill'/>
</svg>
<div>Your subscription expires in 7 days.</div>
</div>
<div class='alert alert-info d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#info-fill'/>
</svg>
<div>New features available in the dashboard.</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapAlerts);
pdf.SaveAs("bootstrap-alerts.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim bootstrapAlerts As String = "
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h2 class='mb-4'>System Notifications</h2>
<div class='alert alert-success d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#check-circle-fill'/>
</svg>
<div>Payment processed successfully!</div>
</div>
<div class='alert alert-warning d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#exclamation-triangle-fill'/>
</svg>
<div>Your subscription expires in 7 days.</div>
</div>
<div class='alert alert-info d-flex align-items-center' role='alert'>
<svg class='bi flex-shrink-0 me-2' width='24' height='24'>
<use xlink:href='#info-fill'/>
</svg>
<div>New features available in the dashboard.</div>
</div>
</div>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapAlerts)
pdf.SaveAs("bootstrap-alerts.pdf")
Selecionar PDF: Suporte limitado a CSS moderno
O Selecionar PDF utiliza um mecanismo híbrido WebKit/Blink com limitações documentadas para frameworks CSS modernos:
- Suporte incompleto ao flexbox: layouts do Bootstrap 4+ podem não ser renderizados corretamente.
- Problemas com o CSS Grid: Layouts modernos baseados em grid frequentemente não são exibidos corretamente.
- Degradação de desempenho: layouts complexos do Bootstrap podem aumentar significativamente os tempos de conversão.
- Inconsistências de estilo: De acordo com relatos de desenvolvedores , os componentes do Bootstrap frequentemente exigem soluções alternativas em CSS.
Problemas comuns relatados:
- Barras de navegação do Bootstrap sendo renderizadas incorretamente
- Componentes de cartão com flexbox exibidos desalinhados
- Os breakpoints da grade responsiva não foram respeitados.
- Temas Bootstrap personalizados que requerem ajustes manuais
Solução alternativa: Os desenvolvedores que usam Selecionar PDF com Bootstrap geralmente precisam:
- Crie versões simplificadas e específicas para impressão dos layouts.
- Evite o flexbox e opte por layouts baseados em tabelas.
- Teste exaustivamente cada componente do Bootstrap.
- Manter CSS separado para geração de PDF.
Para aplicações que já utilizam o Bootstrap em sua interface web, essa solução alternativa aumenta significativamente os custos de desenvolvimento e manutenção.
Para obter mais informações sobre a compatibilidade de frameworks CSS, consulte o Guia de CSS do Bootstrap e Flexbox .
Como se comparam os recursos de segurança entre as bibliotecas?
Criptografia e proteção de PDF
Ambas as bibliotecas oferecem recursos de criptografia, mas a complexidade da implementação varia:
Implementação de segurança do IronPDF :
using IronPdf;
using IronPdf.Security;
// Load or create a PDF document
var pdf = PdfDocument.FromFile("sensitive-document.pdf");
// Apply comprehensive security settings
pdf.SecuritySettings.RemovePasswordsAndCriptografia();
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Granular permission control
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserEditing = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = true;
pdf.SecuritySettings.AllowUserAnnotations = false;
// Use 256-bit AES encryption
pdf.SecuritySettings.CriptografiaLevel = CriptografiaLevel.AES256Bit;
pdf.SaveAs("secured.pdf");
using IronPdf;
using IronPdf.Security;
// Load or create a PDF document
var pdf = PdfDocument.FromFile("sensitive-document.pdf");
// Apply comprehensive security settings
pdf.SecuritySettings.RemovePasswordsAndCriptografia();
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Granular permission control
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserEditing = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = true;
pdf.SecuritySettings.AllowUserAnnotations = false;
// Use 256-bit AES encryption
pdf.SecuritySettings.CriptografiaLevel = CriptografiaLevel.AES256Bit;
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports IronPdf.Security
' Load or create a PDF document
Dim pdf = PdfDocument.FromFile("sensitive-document.pdf")
' Apply comprehensive security settings
pdf.SecuritySettings.RemovePasswordsAndCriptografia()
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"
' Granular permission control
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint
pdf.SecuritySettings.AllowUserEditing = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = True
pdf.SecuritySettings.AllowUserAnnotations = False
' Use 256-bit AES encryption
pdf.SecuritySettings.CriptografiaLevel = CriptografiaLevel.AES256Bit
pdf.SaveAs("secured.pdf")
A classe SecuritySettings do IronPDF fornece uma interface unificada para todas as operações de segurança. O design da API segue as convenções do .NET , tornando-a intuitiva para desenvolvedores familiarizados com a estrutura. Explore os recursos avançados de segurança na documentação de segurança do PDF .
Configuração de segurança do Selecionar PDF:
using Selecionar PDF;
PdfDocument doc = new PdfDocument();
// Set document passwords
doc.Security.OwnerPassword = "owner456";
doc.Security.UserPassword = "user123";
// Configure permissions
doc.Security.CanPrint = false;
doc.Security.CanEditContent = false;
doc.Security.CanCopyContent = false;
doc.Security.CanEditAnnotations = false;
doc.Security.CanFillFormFields = true;
doc.Security.CanAssembleDocument = false;
doc.Save("secured.pdf");
doc.Close();
using Selecionar PDF;
PdfDocument doc = new PdfDocument();
// Set document passwords
doc.Security.OwnerPassword = "owner456";
doc.Security.UserPassword = "user123";
// Configure permissions
doc.Security.CanPrint = false;
doc.Security.CanEditContent = false;
doc.Security.CanCopyContent = false;
doc.Security.CanEditAnnotations = false;
doc.Security.CanFillFormFields = true;
doc.Security.CanAssembleDocument = false;
doc.Save("secured.pdf");
doc.Close();
Imports Selecionar_PDF
Dim doc As New PdfDocument()
' Set document passwords
doc.Security.OwnerPassword = "owner456"
doc.Security.UserPassword = "user123"
' Configure permissions
doc.Security.CanPrint = False
doc.Security.CanEditContent = False
doc.Security.CanCopyContent = False
doc.Security.CanEditAnnotations = False
doc.Security.CanFillFormFields = True
doc.Security.CanAssembleDocument = False
doc.Save("secured.pdf")
doc.Close()
Ambas as bibliotecas suportam criptografia padrão do setor, mas o IronPDF oferece um controle mais granular sobre as permissões de impressão e suporta manipuladores de criptografia personalizados para requisitos específicos.
Quais recursos avançados diferenciam essas bibliotecas?
Redação de conteúdo em PDF
A redação de conteúdo é crucial para o cumprimento de regulamentações de privacidade como o GDPR e o HIPAA.
Redação do IronPDF :
using IronPdf;
// Load document containing sensitive information
PdfDocument pdf = PdfDocument.FromFile("confidential-report.pdf");
// Redact specific content across all pages
pdf.RedactTextOnAllPages("Social Security Number: [0-9]{3}-[0-9]{2}-[0-9]{4}");
pdf.RedactTextOnAllPages("Credit Card: [0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}");
// Redact content on specific pages
pdf.RedactTextOnPage(2, "CONFIDENTIAL");
// Save with redactions permanently applied
pdf.SaveAs("redacted-report.pdf");
using IronPdf;
// Load document containing sensitive information
PdfDocument pdf = PdfDocument.FromFile("confidential-report.pdf");
// Redact specific content across all pages
pdf.RedactTextOnAllPages("Social Security Number: [0-9]{3}-[0-9]{2}-[0-9]{4}");
pdf.RedactTextOnAllPages("Credit Card: [0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}");
// Redact content on specific pages
pdf.RedactTextOnPage(2, "CONFIDENTIAL");
// Save with redactions permanently applied
pdf.SaveAs("redacted-report.pdf");
Imports IronPdf
' Load document containing sensitive information
Private pdf As PdfDocument = PdfDocument.FromFile("confidential-report.pdf")
' Redact specific content across all pages
pdf.RedactTextOnAllPages("Social Security Number: [0-9]{3}-[0-9]{2}-[0-9]{4}")
pdf.RedactTextOnAllPages("Credit Card: [0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}")
' Redact content on specific pages
pdf.RedactTextOnPage(2, "CONFIDENTIAL")
' Save with redactions permanently applied
pdf.SaveAs("redacted-report.pdf")
O recurso de redação do IronPDF remove permanentemente o conteúdo de PDFs, garantindo que informações confidenciais não possam ser recuperadas. Isso é essencial para os setores jurídico e de saúde. Saiba mais no guia de redação .
Selecionar PDF: Não oferece recursos de redação integrados, exigindo soluções alternativas manuais ou ferramentas de terceiros para atender às necessidades de conformidade.
Assinaturas digitais
Implementação da assinatura digital IronPDF :
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Create renderer and generate PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Load certificate with private key
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password",
X509KeyStorageFlags.Exportable);
// Create and configure signature
var signature = new PdfSignature(cert)
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval"
};
// Apply signature with timestamp
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
// Create renderer and generate PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Load certificate with private key
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password",
X509KeyStorageFlags.Exportable);
// Create and configure signature
var signature = new PdfSignature(cert)
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval"
};
// Apply signature with timestamp
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Create renderer and generate PDF
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>")
' Load certificate with private key
Private cert As New X509Certificate2("certificate.pfx", "password", X509KeyStorageFlags.Exportable)
' Create and configure signature
Private signature = New PdfSignature(cert) With {
.SigningContact = "legal@company.com",
.SigningLocation = "New York, NY",
.SigningReason = "Contract Approval"
}
' Apply signature with timestamp
pdf.Sign(signature)
pdf.SaveAs("signed-contract.pdf")
O IronPDF simplifica a assinatura digital com a criação automática de campos de assinatura e suporte a servidores de registro de data e hora. Explore mais no tutorial sobre assinaturas digitais .
Assinatura digital Selecionar PDF:
using Selecionar PDF;
PdfDocument doc = new PdfDocument();
PdfPage page = doc.AddPage();
// Manual signature field setup required
string certFile = "certificate.pfx";
PdfDigitalCertificatesCollection certificates =
PdfDigitalCertificatesStore.GetCertificates(certFile, "password");
PdfDigitalCertificate certificate = certificates[0];
// Create signature element with positioning
PdfDigitalSignatureElement signature =
new PdfDigitalSignatureElement(new RectangleF(100, 100, 200, 50), certificate);
signature.Reason = "Contract Approval";
signature.ContactInfo = "legal@company.com";
signature.Location = "New York, NY";
page.Add(signature);
doc.Save("signed.pdf");
doc.Close();
using Selecionar PDF;
PdfDocument doc = new PdfDocument();
PdfPage page = doc.AddPage();
// Manual signature field setup required
string certFile = "certificate.pfx";
PdfDigitalCertificatesCollection certificates =
PdfDigitalCertificatesStore.GetCertificates(certFile, "password");
PdfDigitalCertificate certificate = certificates[0];
// Create signature element with positioning
PdfDigitalSignatureElement signature =
new PdfDigitalSignatureElement(new RectangleF(100, 100, 200, 50), certificate);
signature.Reason = "Contract Approval";
signature.ContactInfo = "legal@company.com";
signature.Location = "New York, NY";
page.Add(signature);
doc.Save("signed.pdf");
doc.Close();
Imports Selecionar_PDF
Dim doc As New PdfDocument()
Dim page As PdfPage = doc.AddPage()
' Manual signature field setup required
Dim certFile As String = "certificate.pfx"
Dim certificates As PdfDigitalCertificatesCollection = PdfDigitalCertificatesStore.GetCertificates(certFile, "password")
Dim certificate As PdfDigitalCertificate = certificates(0)
' Create signature element with positioning
Dim signature As New PdfDigitalSignatureElement(New RectangleF(100, 100, 200, 50), certificate)
signature.Reason = "Contract Approval"
signature.ContactInfo = "legal@company.com"
signature.Location = "New York, NY"
page.Add(signature)
doc.Save("signed.pdf")
doc.Close()
O Selecionar PDF exige o posicionamento manual dos campos de assinatura e uma configuração mais complexa, o que o torna menos adequado para fluxos de trabalho de assinatura automatizados.
Conversão de formato de documento
Conversão de DOCX para PDF com IronPDF :
using IronPdf;
// Direct DOCX para PDF conversion
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Convert with formatting preservation
PdfDocument pdf = renderer.RenderDocxAsPdf("report.docx");
// Optional: Apply post-conversion modifications
pdf.AddWatermark("<h2 style='color:red;opacity:0.5'>DRAFT</h2>");
pdf.CompressImages(90);
pdf.SaveAs("converted-report.pdf");
using IronPdf;
// Direct DOCX para PDF conversion
DocxToPdfRenderer renderer = new DocxToPdfRenderer();
// Convert with formatting preservation
PdfDocument pdf = renderer.RenderDocxAsPdf("report.docx");
// Optional: Apply post-conversion modifications
pdf.AddWatermark("<h2 style='color:red;opacity:0.5'>DRAFT</h2>");
pdf.CompressImages(90);
pdf.SaveAs("converted-report.pdf");
Imports IronPdf
' Direct DOCX to PDF conversion
Dim renderer As New DocxToPdfRenderer()
' Convert with formatting preservation
Dim pdf As PdfDocument = renderer.RenderDocxAsPdf("report.docx")
' Optional: Apply post-conversion modifications
pdf.AddWatermark("<h2 style='color:red;opacity:0.5'>DRAFT</h2>")
pdf.CompressImages(90)
pdf.SaveAs("converted-report.pdf")
O suporte nativo do IronPDF para DOCX elimina a necessidade de dependências do Microsoft Office. Essa funcionalidade é particularmente valiosa para ambientes de servidor onde a instalação do Office não é viável. Saiba mais sobre a conversão de DOCX para PDF .
Selecionar PDF: Não suporta a conversão de DOCX para PDF, limitando as capacidades de processamento de documentos.
Marcas d'água e carimbos
Marca d'água avançada do IronPDF :
using IronPdf;
var pdf = PdfDocument.FromFile("document.pdf");
// HTML-based watermark with CSS styling
string watermarkHtml = @"
<div style='
font-size: 48px;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
text-align: center;
font-weight: bold;
'>CONFIDENTIAL</div>";
pdf.ApplyWatermark(watermarkHtml, 50, VerticalAlignment.Middle, HorizontalAlignment.Center);
// Add page numbers with custom formatting
pdf.AddHtmlFooters(new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
DrawDividerLine = true
});
pdf.SaveAs("watermarked.pdf");
using IronPdf;
var pdf = PdfDocument.FromFile("document.pdf");
// HTML-based watermark with CSS styling
string watermarkHtml = @"
<div style='
font-size: 48px;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
text-align: center;
font-weight: bold;
'>CONFIDENTIAL</div>";
pdf.ApplyWatermark(watermarkHtml, 50, VerticalAlignment.Middle, HorizontalAlignment.Center);
// Add page numbers with custom formatting
pdf.AddHtmlFooters(new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
DrawDividerLine = true
});
pdf.SaveAs("watermarked.pdf");
Imports IronPdf
Private pdf = PdfDocument.FromFile("document.pdf")
' HTML-based watermark with CSS styling
Private watermarkHtml As String = "
<div style='
font-size: 48px;
color: rgba(255, 0, 0, 0.3);
transform: rotate(-45deg);
text-align: center;
font-weight: bold;
'>CONFIDENTIAL</div>"
pdf.ApplyWatermark(watermarkHtml, 50, VerticalAlignment.Middle, HorizontalAlignment.Center)
' Add page numbers with custom formatting
pdf.AddHtmlFooters(New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
.DrawDividerLine = True
})
pdf.SaveAs("watermarked.pdf")
A abordagem da IronPDF para marca d'água baseada em HTML oferece opções ilimitadas de personalização usando tecnologias web já conhecidas. Para mais exemplos, visite o guia de marca d'água .
Quais são os custos reais de cada solução?
Estrutura de licenciamento do IronPDF
A política de preços transparente da IronPDF oferece flexibilidade para equipes de todos os tamanhos (preços a partir de 2025):
- Licença Lite: $799 - 1 desenvolvedor, 1 local, 1 projeto
- Licença Plus: $1,199 - 3 desenvolvedores, 3 locais, 3 projetos
- Licença Profissional: $2,399 - 10 desenvolvedores, 10 locais, 10 projetos
- Licença ilimitada: $4,799 - Desenvolvedores e projetos ilimitados
Opções de valor agregado:
- Redistribuição livre de royalties: +$2,399
- Suporte e atualizações estendidos: $1,199/ano
- Iron Suite : $1,498 - Acesso a 9 produtos da Iron Software
Todas as licenças incluem:
- Garantia de reembolso de 30 dias
- Licença perpétua (pagamento único)
- 1 ano de suporte e atualizações
- Uso no desenvolvimento, preparação e produção
Pronto para avaliar o IronPDF no seu ambiente? Comece seu teste gratuito de 30 dias com todas as funcionalidades e sem marcas d'água.
Análise de Preços do Selecionar PDF
Com base nos preços atuais do Selecionar PDF :
- Desenvolvedor único: $499 - 1 desenvolvedor, 1 implantação
- OEM para um único desenvolvedor: $799 - 1 desenvolvedor, implantações ilimitadas
- 5 desenvolvedores: $799 - Até 5 desenvolvedores, 10 implantações
- 5 desenvolvedores OEM: $1,099 - Até 5 desenvolvedores, implantações ilimitadas
- Empresarial: US$ 1.199 - Desenvolvedores ilimitados, 100 implantações
- OEM Empresarial: US$ 1.599 - Desenvolvedores ilimitados, implantações ilimitadas
Limitações importantes:
- A Edição Comunitária é limitada a PDFs de 5 páginas.
- É necessária a renovação anual da manutenção para atualizações.
- Não há opções de pacote para vários produtos
- Política de reembolso limitada
Comparação do Custo Total de Propriedade
Considere estes fatores além do licenciamento inicial:
Tempo de desenvolvimento: A API intuitiva e a extensa documentação do IronPDF reduzem o tempo de desenvolvimento em cerca de 40 a 60% em comparação com o Selecionar PDF, com base no feedback dos desenvolvedores.
Limitações da plataforma: A restrição do Selecionar PDF ao Windows pode exigir custos adicionais de infraestrutura para implantações multiplataforma.
Custos de suporte: O IronPDF inclui suporte técnico 24 horas por dia, 5 dias por semana, enquanto o SelectPDF oferece suporte apenas por e-mail, o que pode aumentar o tempo de resolução de problemas críticos.
Como se comparam a documentação e o suporte?
IronPDF: Recursos abrangentes para desenvolvedores
A IronPDF prioriza o sucesso dos desenvolvedores com amplos recursos:
- Biblioteca de Documentação : Mais de 200 artigos que abrangem todos os recursos
- Exemplos de código : Mais de 100 exemplos prontos para uso em C# e VB .NET
- Tutoriais em vídeo : Guias visuais passo a passo
- Referência da API : Documentação completa de classes e métodos
- Suporte de engenharia 24 horas por dia, 5 dias por semana: Acesso direto à equipe de desenvolvimento
- Fórum da Comunidade : Comunidade ativa de desenvolvedores
A documentação segue uma abordagem orientada a tarefas, ajudando os desenvolvedores a encontrar soluções rapidamente. Cada recurso inclui exemplos práticos, melhores práticas e guias de solução de problemas.
Selecionar PDF: Documentação Básica
O Selecionar PDF oferece:
- Documentação padrão da API
- Exemplos de código limitados
- Suporte por e-mail durante o horário comercial
- Guias básicos de resolução de problemas
De acordo com avaliações de desenvolvedores no Stack Overflow , os usuários frequentemente enfrentam problemas de desempenho e documentação limitada para cenários avançados.
O que dizem os verdadeiros desenvolvedores?
Feedback de desempenho
Discussões no Stack Overflow revelam problemas comuns com o Selecionar PDF:
- "A conversão de HTML para PDF no .NET Core leva 3 segundos."
- "Pode afetar significativamente o tempo de compilação e o tamanho do pacote de implantação"
- "A mesma conversão leva cerca de 3,5 minutos no servidor web"
Em contrapartida, os usuários do IronPDF relatam tempos de conversão consistentemente inferiores a um segundo e uso eficiente de recursos.
Experiência do desenvolvedor
De acordo com relatos de problemas GitHub , usuários do Selecionar PDF observam:
- Suporte limitado a CSS moderno
- Degradação de desempenho com HTML complexo
- Limitação de 5 páginas na versão gratuita descoberta após a implementação.
IronPDF recebe elogios constantes por:
- Design de API intuitivo
- Excelente qualidade de renderização
- Equipe de suporte ágil
- Atualizações e melhorias regulares
Quer experimentar a diferença você mesmo? Agende uma demonstração personalizada com nossa equipe de engenharia.
Qual biblioteca atende melhor às necessidades corporativas?
Conformidade e Segurança
O IronPDF oferece recursos de nível empresarial:
- Ferramentas de redação compatíveis com o RGPD
- Criptografia compatível com HIPAA
- Conformidade com SOC 2 Tipo II
- Validação de assinatura digital
- Suporte para trilha de auditoria
O Selecionar PDF oferece segurança básica, mas carece de:
- Redação de conteúdo
- Validação avançada de assinatura
- Funcionalidades específicas de conformidade
- Recursos de registro de auditoria
Escalabilidade e desempenho
Aplicações empresariais exigem desempenho consistente em grande escala. Os testes de desempenho mostram:
IronPDF:
- Gerencia documentos com mais de 1000 páginas de forma eficiente.
- Suporte nativo a async/await para alta concorrência
- Gerenciamento de memória otimizado
- Operações seguras para threads
Selecionar PDF:
- Problemas de desempenho com documentos grandes
- Suporte assíncrono limitado
- Maior consumo de memória
- Foram relatadas limitações de threading
Conclusão: Como escolher o formato de PDF ideal para suas necessidades
Tanto o IronPDF quanto o Selecionar PDF atendem ao mercado de geração de PDFs em .NET , mas têm como alvo casos de uso e cenários de desenvolvimento diferentes.
Escolha o IronPDF quando precisar de:
- Implantação multiplataforma (Linux, macOS, Docker)
- Suporte a padrões web modernos (CSS3, frameworks JavaScript )
- Funcionalidades avançadas (redação, conversão para DOCX, assinaturas digitais)
- Requisitos de conformidade empresarial
- Suporte profissional e atualizações regulares
- Suporte à arquitetura nativa da nuvem
Considere o Selecionar PDF para:
- Ambientes exclusivos do Windows
- Conversão simples de HTML para PDF
- Projetos com orçamento limitado e requisitos básicos
- Documentos pequenos (menos de 5 páginas na versão gratuita)
O IronPDF se destaca como a solução mais versátil e abrangente, oferecendo qualidade de renderização superior, amplos recursos e suporte multiplataforma completo. Sua arquitetura moderna e API amigável para desenvolvedores o tornam ideal para equipes que criam aplicativos escaláveis e prontos para produção.
Embora o Selecionar PDF possa ter um preço inicial mais baixo, as limitações em termos de suporte à plataforma, recursos e desempenho geralmente resultam em custos totais mais elevados devido ao aumento do tempo de desenvolvimento e às restrições de infraestrutura.
Dê o próximo passo
Pronto para aprimorar suas capacidades de geração de PDFs? O IronPDF oferece várias maneiras de começar:
Baixe o IronPDF e integre-o ao seu projeto hoje mesmo!
- Explore a biblioteca de documentação completa para guias de implementação.
- Comece seu teste gratuito de 30 dias com todas as funcionalidades e sem marcas d'água. Agende uma demonstração personalizada com nossa equipe de engenharia.
Transforme seu fluxo de trabalho de geração de PDFs com uma biblioteca criada para o desenvolvimento moderno em .NET . Junte-se a milhares de desenvolvedores que já migraram para o IronPDF.
Comece a usar IronPDF no seu projeto hoje mesmo com um teste gratuito.
Perguntas frequentes
Quais as diferenças de compatibilidade entre IronPDF e SelectPdf em termos de plataforma?
O IronPDF é compatível com diversas plataformas, incluindo Windows, Linux, macOS e Docker, enquanto o SelectPdf é limitado a ambientes Windows. Isso torna o IronPDF uma opção mais versátil para projetos que exigem suporte multiplataforma.
Quais são as diferenças de desempenho entre o IronPDF e o SelectPdf na conversão de HTML para PDF?
Os testes de desempenho indicam que o IronPDF converte páginas em menos de um segundo graças ao seu gerenciamento de memória otimizado e ao mecanismo de renderização baseado no Chrome. Em contraste, o SelectPDF geralmente leva em média de 2 a 3 segundos por página, especialmente com documentos complexos.
Posso usar o IronPDF para converter arquivos DOCX em PDF?
Sim, o IronPDF suporta a conversão de DOCX para PDF através da sua classe DocxToPdfRenderer . Essa funcionalidade permite converter documentos do Word para PDF sem a necessidade de instalar o Microsoft Office, preservando a formatação original do documento.
Como o IronPDF lida com JavaScript e CSS na conversão de HTML para PDF?
O mecanismo de renderização Chrome V8 do IronPDF oferece suporte completo à execução de JavaScript e CSS3, lidando com eficiência com frameworks modernos como React e Angular, bem como com recursos avançados de CSS, como Grid e Flexbox.
Quais recursos de segurança o IronPDF oferece para documentos PDF?
O IronPDF oferece recursos de segurança robustos, incluindo criptografia AES-256, proteção por senha, assinaturas digitais e configurações detalhadas de permissões por meio de sua classe SecuritySettings , proporcionando proteção abrangente aos documentos.
Como o IronPDF pode ajudar na conformidade com o GDPR e o HIPAA?
O IronPDF oferece suporte à redação de conteúdo, o que é crucial para a conformidade com o GDPR e o HIPAA. Usando o método RedactTextOnAllPages() , você pode remover permanentemente informações confidenciais de PDFs com base em padrões de expressões regulares.
O IronPDF suporta marcas d'água e carimbos?
Sim, o IronPDF permite a adição de marcas d'água e carimbos usando HTML/CSS. O método ApplyWatermark() oferece controle total sobre a opacidade, rotação e posicionamento da marca d'água, facilitando a personalização da identidade visual do documento.
Que tipo de suporte os desenvolvedores podem esperar da IronPDF?
A IronPDF oferece suporte técnico 24 horas por dia, 5 dias por semana, proporcionando acesso direto à sua equipe de desenvolvimento, documentação completa, mais de 100 exemplos de código e tutoriais em vídeo. Os canais de suporte incluem chat e compartilhamento de tela para licenças profissionais.
Existe alguma versão de avaliação disponível para o IronPDF?
O IronPDF oferece um período de avaliação gratuita de 30 dias, totalmente funcional e sem marcas d'água ou limitações. Essa avaliação permite que os desenvolvedores avaliem minuciosamente todos os recursos em ambientes de produção e inclui acesso à documentação e ao suporte.
Como o custo do IronPDF se compara ao do SelectPDF para uso comercial?
O IronPDF tem um preço inicial de US$ 749 para uma licença de desenvolvedor individual, podendo chegar a US$ 2.999 para 10 desenvolvedores. Em contrapartida, o SelectPDF tem um preço inicial de US$ 499 para um desenvolvedor. Embora o SelectPDF tenha custos iniciais mais baixos, o IronPDF oferece mais recursos e suporte 24 horas por dia, 5 dias por semana.



