Ir para o conteúdo do rodapé
COMPARAçãO DE PRODUTOS
Comparando IronPDF com iTextSharp em C#

iTextSharp: Alternativa em C# para HTML e PDF no .NET Core

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison
## IronPDF vs iTextSharp / iText7

Comparação abrangente de bibliotecas PDF .NET — recurso por recurso com contexto baseado em evidências.

iTextSharp / iText7
13
de 20 recursos
10 Sim 7 Complexo 3 Não
IronPDF ✦
20
de 20 recursos
20 Sim 0 Complexo 0 Não
Recurso iTextSharp / iText7 IronPDF ✦
PDF Creation & Conversion
HTML/CSS para PDF $ Paid Add-on
HTML→PDF via complemento `pdfHTML` (pacote separado; modelo AGPL/comercial).
✓ Yes
Motor baseado no Chromium com renderização CSS3, Flexbox e Grid perfeitamente otimizada para cada pixel, já integrada.
Execução de JavaScript ? Unknown
O pdfHTML descreve a conversão de HTML/CSS para PDF, mas o suporte à execução de JS não é mencionado na documentação.
✓ Yes
Executa o JavaScript completamente durante a renderização — gráficos dinâmicos, SPAs e conteúdo interativo.
Geração Programática ✓ Yes
Posicionado como um SDK de PDF programável for .NET — crie, edite e aprimore.
✓ Yes
Gere a partir de modelos HTML, strings, visualizações ASPX ou imagens. O Chromium cuida do layout.
URL para PDF $ Paid Add-on
É possível através do complemento pdfHTML com busca de URLs, mas não é um recurso nativo.
✓ Yes
`RenderUrlAsPdf()` Captura qualquer URL ativa com renderização completa de CSS/JS.
DOCX para PDF ✕ No
Sem conversão nativa para Word — o iText é um SDK nativo para PDF.
✓ Yes
`DocxToPdfRenderer` Converte documentos do Word preservando a estrutura e a formatação.
Reading & Extraction
Extração de texto ✓ Yes
`PdfTextExtractor.GetTextFromPage()` com múltiplas estratégias de extração.
✓ Yes
Extrai texto considerando o layout. Combina com o IronOCR para documentos digitalizados.
Renderizar páginas em imagens ? Unknown
Os fluxos de trabalho de OCR mencionam a renderização, mas um módulo de "renderizador de PDF para imagem" de fonte primária não é evidenciado nos documentos do iText citados.
✓ Built-in
Rasterização nativa para PNG, JPEG e BMP com DPI configurável.
OCR integrado $ Paid Add-on
Complemento pdfOCR disponível; as notas de instalação mencionam dependências específicas da plataforma/nativas (por exemplo, requisitos de tempo de execução do Linux/macOS).
✓ Via IronOCR
Integração nativa com o IronOCR para OCR em mais de 127 idiomas em PDFs digitalizados.
Editing & Manipulation
Merging & Splitting ✓ Yes
`PdfMerger` Classe na API .NET ; os exemplos oficiais discutem a mesclagem via PdfMerger.
✓ Yes
Fusão, divisão, anexação, inserção e reordenação de páginas em uma única linha com API intuitiva.
Headers, Footers & Page Numbers ✓ Yes
A inclusão na lista da PDF Association confirma a possibilidade de adicionar "números de página" e recursos semelhantes a PDFs existentes.
✓ Yes
Cabeçalhos/rodapés em HTML com numeração automática de páginas, datas e conteúdo personalizado.
Marcas d'água ✓ Yes
A lista da PDF Association inclui explicitamente "marcas d'água... em documentos PDF existentes".
✓ Yes
`ApplyWatermark()` Aceita HTML/CSS — controle total sobre opacidade, rotação e posição.
Stamp Text & Images ✓ Yes
Posicionamento programático de conteúdo disponível através das APIs de tela e layout do iText.
✓ Yes
`TextStamper` & `ImageStamper` com fontes do Google, posicionamento e controle por página.
Redigir conteúdo ✓ Yes
O iText oferece suporte à anotação de redação por meio do módulo de limpeza.
✓ Yes
`RedactTextOnAllPages()` Remove permanentemente o texto sensível em uma única linha.
Security & Compliance
Encryption & Passwords ✓ Yes
Criptografia completa e controle de permissões através da API de segurança do iText.
✓ Yes
Criptografia AES, senhas de proprietário/usuário, permissões granulares (imprimir, copiar, anotar).
Assinaturas digitais ✓ Yes
Documentação dedicada à assinatura digital e API de assinatura ( `PdfSigner` ).
✓ Yes
`PdfSignature` Com suporte para certificados X509/PFX.
PDF/A & PDF/UA Compliance ✓ Yes
A documentação aborda a criação de PDF/A e explica as limitações (a conversão de um arquivo existente não é automática).
✓ Yes
Conformidade nativa com os formatos de arquivo PDF/A e acessibilidade PDF/UA para uso corporativo.
Platform & Deployment
Suporte multiplataforma ✓ Yes
.NET Standard 2.0 / .NET Framework 4.6.1 — funciona no .NET 6+ em diversos sistemas operacionais.
✓ Yes
Windows, Linux, macOS, x64, x86, ARM. .NET 6–10, Core, Standard 2.0+, Framework 4.6.2+.
Servidor / Docker / Nuvem ~ Complex
A instalação principal requer vários pacotes (iText + adaptador Bouncy Castle); os complementos (pdfHTML/pdfOCR) adicionam etapas adicionais de dependência/conformidade.
✓ Yes
Docker, Azure, AWS, IIS. Imagens oficiais do Docker e guias de implantação.
Facilidade de instalação ~ Complex
A instalação do Core requer vários pacotes (adaptador Bouncy Castle); HTML/OCR requerem complementos adicionais e, às vezes, dependências nativas.
✓ Simple
`Install-Package IronPdf` com um único comando NuGet . Pronto em minutos.
Licensing & Support
Modelo de licenciamento ~ Complex
Licença dupla: AGPLv3 (obrigações de divulgação do código-fonte para uso em rede) ou comercial. A AGPL pode ser restritiva para aplicativos proprietários.
✓ Commercial
Licenças perpétuas. Teste gratuito de 30 dias com todas as funcionalidades, sem marcas d'água.
Commercial Support & SLA ✓ Yes
O site iText inclui contratos de licenciamento comercial e suporte como parte de seu modelo de licenciamento.
✓ 24/5 Support
Suporte técnico especializado com SLA garantido — e-mail, chat ao vivo, telefone.
Documentação ✓ Yes
Guias de instalação, artigos da base de conhecimento e referências da API disponíveis (núcleo + complementos).
✓ Extensive
Referência completa da API, mais de 100 guias práticos, tutoriais, exemplos de código, soluções de problemas e vídeos.

Dados obtidos da documentação oficial do iText, da lista da PDF Association e das referências de pacotes NuGet .
O iText7 é poderoso, mas apresenta a complexidade da licença AGPL e a sobrecarga de configuração de múltiplos pacotes.
O IronPDF oferece cobertura completa com configuração mais simples — experimente gratuitamente por 30 dias .

Para desenvolvedores que trabalham com PDFs, ter uma biblioteca confiável para geração e manipulação de PDFs é essencial. No ecossistema .NET , existem dezenas de bibliotecas C# para PDF disponíveis, então como escolher a que melhor se adapta às suas necessidades?

A seleção da biblioteca apropriada é crucial para o desenvolvimento eficiente ao trabalhar com funcionalidades de PDF em aplicações .NET . Este artigo apresenta uma comparação detalhada entre duas importantes bibliotecas C# para PDF: IronPDF e iText 7 (anteriormente conhecida como iTextSharp). Analisaremos suas funcionalidades, desempenho, licenciamento e adequação a diversos requisitos de projeto para ajudá-lo a tomar uma decisão informada.

Por que escolher uma biblioteca PDF .NET ?

Os PDFs são amplamente utilizados em relatórios, faturas e documentos jurídicos , tornando a geração e manipulação de PDFs essenciais para muitas aplicações. Ao escolher uma biblioteca, os principais fatores a serem considerados incluem:

  • Facilidade de integração – Com que rapidez você consegue implementar recursos de PDF?
  • Suporte para conversão de HTML para PDF – Permite a conversão fácil de conteúdo da web?
  • Licenciamento e custo – É gratuito ou requer uma licença comercial?
  • Conjunto de funcionalidades – Suporta extração, assinatura ou edição de texto?
  • Desempenho – Qual a velocidade de geração ou processamento de PDFs?

Visão geral do IronPDF e do iText7

Introdução ao IronPDF

IronPDF é uma biblioteca comercial de PDF projetada especificamente para desenvolvedores .NET . Simplifica a geração, manipulação e conversão de PDFs, tornando-se uma das bibliotecas mais fáceis de usar em aplicações C#.

O IronPDF é compatível com .NET Core, .NET Framework e .NET Standard, garantindo a compatibilidade em diversos ambientes .NET . Seu alto nível de compatibilidade entre plataformas o torna uma escolha ideal para equipes que trabalham em diferentes ambientes de aplicativos, e ele se integra perfeitamente com IDEs como o Visual Studio. Além da versão .NET , o IronPDF também está disponível em Java, Python e Node.js

Principais características:

  • Suporte integrado para conversão de HTML para PDF – Converta páginas da web , HTML , CSS e JavaScript em PDFs sem complementos adicionais.
  • Edição de PDF – Modifique PDFs existentes adicionando texto, imagens , cabeçalhos e rodapés .
  • Segurança de PDF – Criptografe PDFs, defina proteção por senha e gerencie permissões para visualização, impressão ou edição.
  • Marcas d'água e anotações – Aplique facilmente marcas d'água de texto e imagem, carimbos ou comentários a documentos.
  • Preenchimento de formulários e extração de dados – Preencha formulários PDF interativos programaticamente e extraia dados dos formulários.

Ideal para: Desenvolvedores que buscam uma solução completa e descomplicada, sem a necessidade de complementos adicionais ou licenciamento complexo.

Introdução ao iText7

O iText 7 é uma biblioteca PDF poderosa e flexível que oferece amplas funcionalidades de manipulação de PDFs, incluindo criação, criptografia e assinatura de documentos. No entanto, sua biblioteca principal não oferece suporte nativo à conversão de HTML para PDF.

Principais características

  • Personalização de PDF em baixo nível – Oferece controle detalhado sobre a estrutura, os metadados e a renderização do PDF.
  • Acessibilidade e Conformidade: Gera PDF/A, PDF/UA e PDF/X para arquivamento de longo prazo e conformidade com a acessibilidade.
  • Conversão de HTML para PDF: O complemento pago pdfHTML permite a conversão de conteúdo HTML em PDFs.
  • Suporte for Java e .NET : Projetado principalmente for Java, com suporte para C# através do iText 7 for .NET.
  • Gerenciamento de formulários PDF: Crie e edite formulários AcroForm e XFA para formulários PDF interativos.

Ideal para: Desenvolvedores que precisam de uma solução de PDF altamente personalizável e estão dispostos a adquirir complementos adicionais para obter recursos expandidos.

Características e vantagens

Antes de abordarmos os recursos e seus respectivos exemplos de código, vamos primeiro analisar uma das maiores diferenças funcionais entre o IronPDF e o iText 7: a conversão de HTML para PDF .

  • O IronPDF oferece suporte nativo à renderização de HTML, CSS e JavaScript sem a necessidade de componentes adicionais.
  • O iText 7 , por outro lado, requer o complemento pdfHTML , que é um recurso pago sob licença comercial . Isso aumenta os custos para os desenvolvedores que precisam da funcionalidade de conversão de web para PDF.

Fluxograma de comparação de HTML para PDF

Conclusão: Se você precisa converter HTML para PDF , o IronPDF é a solução mais econômica, pois inclui esse recurso nativamente .

Principais funcionalidades do IronPDF (com exemplos de código)

O IronPDF oferece um conjunto abrangente de recursos para trabalhar com documentos PDF. Essas opções variam desde a criação de PDFs até a manipulação e segurança de PDFs. Para ter uma ideia mais clara da ampla gama de recursos que esta biblioteca oferece, vamos analisar alguns recursos principais selecionados.

Conversão de HTML para PDF

Converta conteúdo HTML em documentos PDF de alta qualidade com o poderoso mecanismo de renderização do IronPDF. O renderizador do IronPDF não se limita a converter conteúdo HTML; Com ele, você poderá manter todo o estilo CSS original e a interatividade do JavaScript .

using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance for rendering HTML to PDF
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified HTML file as a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("HtmlToPdf.pdf");
    }
}
using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance for rendering HTML to PDF
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified HTML file as a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("example.html");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("HtmlToPdf.pdf");
    }
}
Imports IronPdf

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new ChromePdfRenderer instance for rendering HTML to PDF
		Dim renderer As New ChromePdfRenderer()

		' Render the specified HTML file as a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("example.html")

		' Save the rendered PDF to the specified file path
		pdf.SaveAs("HtmlToPdf.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

HTML de entrada
Inserir conteúdo HTML

PDF de saída
Saída de HTML para PDF usando IronPDF

Neste exemplo de código, primeiro criamos uma nova instância de ChromePdfRenderer, que nos dá acesso ao poderoso mecanismo de renderização que o IronPDF usa para renderizar HTML em PDF. Em seguida, passamos um arquivo HTML para o método RenderHtmlFileAsPdf(), que por sua vez renderiza o HTML em um PDF, armazenado no objeto PdfDocument. Por fim, salvaremos o PDF no local de arquivo especificado.

URL para PDF

Para desenvolvedores que desejam converter conteúdo de URLs em PDFs, o IronPDF é a solução ideal. Com esta biblioteca, você poderá criar documentos PDF com qualidade impecável, utilizando o mecanismo de renderização ChromePdfRenderer, que manterá todos os estilos e layouts originais ao renderizar a URL para PDF . Neste exemplo, usaremos este URL para demonstrar como o IronPDF pode lidar com estilos CSS mais complexos.

using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified URL as a PDF document
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("UrlToPdf.pdf");
    }
}
using IronPdf;

public class Program
{
    static void Main(string[] args)
    {
        // Create a new ChromePdfRenderer instance
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Render the specified URL as a PDF document
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.apple.com");

        // Save the rendered PDF to the specified file path
        pdf.SaveAs("UrlToPdf.pdf");
    }
}
Imports IronPdf

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Create a new ChromePdfRenderer instance
		Dim renderer As New ChromePdfRenderer()

		' Render the specified URL as a PDF document
		Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.apple.com")

		' Save the rendered PDF to the specified file path
		pdf.SaveAs("UrlToPdf.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Saída em PDF:
URL para saída em PDF usando IronPDF

Assim como em nosso exemplo de HTML para PDF, o primeiro passo para converter qualquer URL em PDF usando o IronPDF é primeiro criar uma nova instância de ChromePdfRenderer. Depois que o método renderiza o conteúdo da URL em formato PDF, usando RenderUrlAsPdf, ele salva o PDF resultante em um novo objeto PdfDocument, antes de usarmos o método SaveAs para salvar o PDF.

Assinaturas em PDF

Garanta a autenticidade do seu documento PDF aplicando uma assinatura digital . Existem diferentes métodos que os desenvolvedores podem considerar para aplicar assinaturas digitais, como assinar digitalmente o PDF com um certificado de segurança, adicionar uma imagem de uma assinatura manuscrita a um PDF ou carimbar uma imagem do certificado no próprio PDF.

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;

public class Program
{
    static void Main(string[] args)
    {
        // Load the certificate used for signing the PDF
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PdfSignature instance and set the signature image
        var sig = new PdfSignature(cert);
        sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));

        // Sign the existing PDF file and save the signed version
        sig.SignPdfFile("product_report.pdf");
    }
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
using IronSoftware.Drawing;

public class Program
{
    static void Main(string[] args)
    {
        // Load the certificate used for signing the PDF
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PdfSignature instance and set the signature image
        var sig = new PdfSignature(cert);
        sig.SignatureImage = new PdfSignatureImage("IronPdf.png", 0, new Rectangle(150, 100, 350, 250));

        // Sign the existing PDF file and save the signed version
        sig.SignPdfFile("product_report.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Imports IronSoftware.Drawing

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Load the certificate used for signing the PDF
		Dim cert As New X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable)

		' Create a PdfSignature instance and set the signature image
		Dim sig = New PdfSignature(cert)
		sig.SignatureImage = New PdfSignatureImage("IronPdf.png", 0, New Rectangle(150, 100, 350, 250))

		' Sign the existing PDF file and save the signed version
		sig.SignPdfFile("product_report.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

PDF de saída
Saída de assinatura digital usando IronPDF

Neste exemplo, carregamos nosso objeto de certificado, criamos uma representação visual da assinatura, ou, em nosso caso, a imagem IronPDF , e criamos um novo objeto PdfSignature, que lida com a assinatura do próprio documento PDF. Por fim, usamos o código SignPdfFile para assinar e salvar nosso documento PDF.

Se você quiser explorar mais recursos que o IronPDF oferece, confira a página informativa de recursos ou os guias práticos, que contêm exemplos de código detalhados para cada recurso.

Principais funcionalidades do iText7 (com exemplos de código)

O iText7 oferece uma ampla gama de recursos para personalizar e aprimorar seus documentos PDF. Com amplo suporte a diversos padrões de formato PDF e manipulação avançada de PDFs, esta biblioteca PDF oferece uma grande quantidade de recursos. No entanto, como mencionado anteriormente, o iText7 pode exigir pacotes adicionais para executar determinadas tarefas relacionadas a PDFs, como a conversão de HTML para PDF.

Conversão de HTML para PDF

Embora o iText7 por si só não consiga converter HTML em PDF, podemos utilizar o pdfHTML, um complemento pago disponível na licença comercial do iText7, para converter o arquivo HTML que usamos em nosso exemplo do IronPDF em um documento PDF.

using iText.Html2pdf;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        // Open the HTML file stream
        using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
        // Create the output PDF file stream
        using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
        {
            // Initialize ConverterProperties for HTML to PDF conversion
            ConverterProperties converterProperties = new ConverterProperties();

            // Convert the HTML source to a PDF document
            HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);

            // Close the PDF file
            pdf.Close();
        }
    }
}
using iText.Html2pdf;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        // Open the HTML file stream
        using (FileStream htmlSource = File.Open("example.html", FileMode.Open))
        // Create the output PDF file stream
        using (FileStream pdf = File.Open("HtmlToPdfOutput.pdf", FileMode.Create))
        {
            // Initialize ConverterProperties for HTML to PDF conversion
            ConverterProperties converterProperties = new ConverterProperties();

            // Convert the HTML source to a PDF document
            HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties);

            // Close the PDF file
            pdf.Close();
        }
    }
}
Imports iText.Html2pdf
Imports System.IO

Public Class Program
	Shared Sub Main(ByVal args() As String)
		' Open the HTML file stream
		Using htmlSource As FileStream = File.Open("example.html", FileMode.Open)
		' Create the output PDF file stream
		Using pdf As FileStream = File.Open("HtmlToPdfOutput.pdf", FileMode.Create)
			' Initialize ConverterProperties for HTML to PDF conversion
			Dim converterProperties As New ConverterProperties()

			' Convert the HTML source to a PDF document
			HtmlConverter.ConvertToPdf(htmlSource, pdf, converterProperties)

			' Close the PDF file
			pdf.Close()
		End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

PDF de saída
iText7 Saída HTML para PDF

Neste exemplo, carregamos o arquivo HTML e especificamos o local onde o PDF renderizado será salvo. Em seguida, usando o método ConvertToPdf, podemos converter facilmente o arquivo HTML em um documento PDF.

URL para PDF

Agora, é hora de comparar o desempenho do iText7 com o do IronPDF na conversão de URLs para PDF. Para isso, usaremos exatamente o mesmo URL de antes para garantir uma comparação justa.

using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;

public class Program
{
    public static async System.Threading.Tasks.Task Main(string[] args)
    {
        string url = "https://www.apple.com";  // Replace with your target URL
        string outputPdfPath = "output.pdf";

        try
        {
            // Download HTML content from the URL
            using (HttpClient client = new HttpClient())
            {
                string htmlContent = await client.GetStringAsync(url);

                // Convert HTML to PDF
                using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
                {
                    ConverterProperties properties = new ConverterProperties();
                    HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
                }
            }

            Console.WriteLine("PDF created successfully: " + outputPdfPath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
using System;
using System.Net.Http;
using System.IO;
using iText.Html2pdf;

public class Program
{
    public static async System.Threading.Tasks.Task Main(string[] args)
    {
        string url = "https://www.apple.com";  // Replace with your target URL
        string outputPdfPath = "output.pdf";

        try
        {
            // Download HTML content from the URL
            using (HttpClient client = new HttpClient())
            {
                string htmlContent = await client.GetStringAsync(url);

                // Convert HTML to PDF
                using (FileStream pdfStream = new FileStream(outputPdfPath, FileMode.Create))
                {
                    ConverterProperties properties = new ConverterProperties();
                    HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties);
                }
            }

            Console.WriteLine("PDF created successfully: " + outputPdfPath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error: " + ex.Message);
        }
    }
}
Imports System
Imports System.Net.Http
Imports System.IO
Imports iText.Html2pdf

Public Class Program
	Public Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
		Dim url As String = "https://www.apple.com" ' Replace with your target URL
		Dim outputPdfPath As String = "output.pdf"

		Try
			' Download HTML content from the URL
			Using client As New HttpClient()
				Dim htmlContent As String = Await client.GetStringAsync(url)

				' Convert HTML to PDF
				Using pdfStream As New FileStream(outputPdfPath, FileMode.Create)
					Dim properties As New ConverterProperties()
					HtmlConverter.ConvertToPdf(htmlContent, pdfStream, properties)
				End Using
			End Using

			Console.WriteLine("PDF created successfully: " & outputPdfPath)
		Catch ex As Exception
			Console.WriteLine("Error: " & ex.Message)
		End Try
	End Function
End Class
$vbLabelText   $csharpLabel

PDF de saída
iText7 URL para saída em PDF

Como pode ser visto aqui, a abordagem do iText7 para conversão de URL em PDF é mais manual e complexa. Primeiro, precisamos baixar o conteúdo HTML da URL, antes de seguir etapas semelhantes às vistas no exemplo de HTML para PDF, para renderizar o conteúdo da URL em um documento PDF e salvá-lo. Como você pode ver na imagem de saída, o iText7 não conseguiu manter grande parte do estilo e layout originais, ao contrário do IronPDF.

Assinaturas em PDF

using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        string inputPdf = "input.pdf";       // PDF to be signed
        string outputPdf = "signed_output.pdf";  // Signed PDF output
        string pfxFile = "IronSoftware.pfx";  // Path to your PFX certificate
        string password = "Passw0rd";   // Password for PFX file

        try
        {
            // Load your certificate
            Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
            using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
            {
                ks.Load(fs, password.ToCharArray());
            }

            string alias = null;
            foreach (string al in ks.Aliases)
            {
                if (ks.IsKeyEntry(al))
                {
                    alias = al;
                    break;
                }
            }

            if (alias == null)
            {
                throw new Exception("Alias not found in the PFX file.");
            }

            ICipherParameters pk = ks.GetKey(alias).Key;
            X509CertificateEntry[] chain = ks.GetCertificateChain(alias);

            // Convert BouncyCastle certificates to iText certificates
            var itextCertChain = new IX509Certificate[chain.Length];
            for (int i = 0; i < chain.Length; i++)
            {
                itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
            }

            // Create output PDF with signed content
            using (PdfReader reader = new PdfReader(inputPdf))
            using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
            {
                PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());

                // Set up the external signature (private key + digest algorithm)
                IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
                IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
                IExternalDigest digest = new BouncyCastleDigest();

                // Perform the signing (detached signature)
                signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
            }

            Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
using System.Security.Cryptography.X509Certificates;
using iText.Kernel.Pdf;
using iText.Signatures;
using iText.Bouncycastle.Crypto;
using iText.Commons.Bouncycastle.Cert;
using iText.Commons.Bouncycastle.Crypto;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Crypto;
using iText.Bouncycastle.X509;
using iText.Kernel.Crypto;
using System.IO;

public class Program
{
    static void Main(string[] args)
    {
        string inputPdf = "input.pdf";       // PDF to be signed
        string outputPdf = "signed_output.pdf";  // Signed PDF output
        string pfxFile = "IronSoftware.pfx";  // Path to your PFX certificate
        string password = "Passw0rd";   // Password for PFX file

        try
        {
            // Load your certificate
            Pkcs12Store ks = new Pkcs12StoreBuilder().Build();
            using (FileStream fs = new FileStream(pfxFile, FileMode.Open, FileAccess.Read))
            {
                ks.Load(fs, password.ToCharArray());
            }

            string alias = null;
            foreach (string al in ks.Aliases)
            {
                if (ks.IsKeyEntry(al))
                {
                    alias = al;
                    break;
                }
            }

            if (alias == null)
            {
                throw new Exception("Alias not found in the PFX file.");
            }

            ICipherParameters pk = ks.GetKey(alias).Key;
            X509CertificateEntry[] chain = ks.GetCertificateChain(alias);

            // Convert BouncyCastle certificates to iText certificates
            var itextCertChain = new IX509Certificate[chain.Length];
            for (int i = 0; i < chain.Length; i++)
            {
                itextCertChain[i] = new X509CertificateBC(chain[i].Certificate);
            }

            // Create output PDF with signed content
            using (PdfReader reader = new PdfReader(inputPdf))
            using (FileStream os = new FileStream(outputPdf, FileMode.Create, FileAccess.Write))
            {
                PdfSigner signer = new PdfSigner(reader, os, new StampingProperties().UseAppendMode());

                // Set up the external signature (private key + digest algorithm)
                IPrivateKey iTextPrivateKey = new PrivateKeyBC(pk);
                IExternalSignature pks = new PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256);
                IExternalDigest digest = new BouncyCastleDigest();

                // Perform the signing (detached signature)
                signer.SignDetached(digest, pks, itextCertChain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);
            }

            Console.WriteLine($"PDF digitally signed successfully: {outputPdf}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error signing PDF: {ex.Message}");
        }
    }
}
Imports System.Security.Cryptography.X509Certificates
Imports iText.Kernel.Pdf
Imports iText.Signatures
Imports iText.Bouncycastle.Crypto
Imports iText.Commons.Bouncycastle.Cert
Imports iText.Commons.Bouncycastle.Crypto
Imports Org.BouncyCastle.Pkcs
Imports Org.BouncyCastle.Crypto
Imports iText.Bouncycastle.X509
Imports iText.Kernel.Crypto
Imports System.IO

Public Class Program
	Shared Sub Main(ByVal args() As String)
		Dim inputPdf As String = "input.pdf" ' PDF to be signed
		Dim outputPdf As String = "signed_output.pdf" ' Signed PDF output
		Dim pfxFile As String = "IronSoftware.pfx" ' Path to your PFX certificate
		Dim password As String = "Passw0rd" ' Password for PFX file

		Try
			' Load your certificate
			Dim ks As Pkcs12Store = (New Pkcs12StoreBuilder()).Build()
			Using fs As New FileStream(pfxFile, FileMode.Open, FileAccess.Read)
				ks.Load(fs, password.ToCharArray())
			End Using

			Dim [alias] As String = Nothing
			For Each al As String In ks.Aliases
				If ks.IsKeyEntry(al) Then
					[alias] = al
					Exit For
				End If
			Next al

			If [alias] Is Nothing Then
				Throw New Exception("Alias not found in the PFX file.")
			End If

			Dim pk As ICipherParameters = ks.GetKey([alias]).Key
			Dim chain() As X509CertificateEntry = ks.GetCertificateChain([alias])

			' Convert BouncyCastle certificates to iText certificates
			Dim itextCertChain = New IX509Certificate(chain.Length - 1){}
			For i As Integer = 0 To chain.Length - 1
				itextCertChain(i) = New X509CertificateBC(chain(i).Certificate)
			Next i

			' Create output PDF with signed content
			Using reader As New PdfReader(inputPdf)
			Using os As New FileStream(outputPdf, FileMode.Create, FileAccess.Write)
				Dim signer As New PdfSigner(reader, os, (New StampingProperties()).UseAppendMode())

				' Set up the external signature (private key + digest algorithm)
				Dim iTextPrivateKey As IPrivateKey = New PrivateKeyBC(pk)
				Dim pks As IExternalSignature = New PrivateKeySignature(iTextPrivateKey, DigestAlgorithms.SHA256)
				Dim digest As IExternalDigest = New BouncyCastleDigest()

				' Perform the signing (detached signature)
				signer.SignDetached(digest, pks, itextCertChain, Nothing, Nothing, Nothing, 0, PdfSigner.CryptoStandard.CMS)
			End Using
			End Using

			Console.WriteLine($"PDF digitally signed successfully: {outputPdf}")
		Catch ex As Exception
			Console.WriteLine($"Error signing PDF: {ex.Message}")
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel

PDF de saída
Saída de assinatura digital do iText7

Como você pode ver, embora o iText7 seja capaz de assinar digitalmente documentos PDF, o processo tende a ser muito mais complexo do que com o IronPDF. Este código carrega um certificado PFX e o utiliza para assinar digitalmente um PDF. Ele extrai a chave privada e o certificado, configura o signatário e adiciona uma assinatura separada ao PDF, salvando em seguida o documento assinado.

Análise Competitiva

Desempenho e usabilidade

Principais vantagens do IronPDF

O IronPDF é conhecido pela sua facilidade de uso e otimização para alto desempenho, oferecendo uma API mais direta que simplifica tarefas comuns, como a conversão de HTML para PDF. Ele fornece métodos de alto nível que abstraem tarefas complexas de processamento de PDF, permitindo que os desenvolvedores gerem, editem e manipulem PDFs com o mínimo de código. Para processamento de documentos em larga escala ou com múltiplas threads, o IronPDF suporta execução paralela.

  • API fácil de usar – Métodos de alto nível simplificam tarefas comuns, como a conversão de HTML para PDF.
  • Configuração mínima necessária – Integra-se facilmente a projetos .NET .
  • Execução paralela integrada – Otimizada para lidar com geração e conversão em massa de PDFs.
  • API simplificada – Requer menos linhas de código para obter resultados.

iText 7 - Poderoso, mas complexo

O iText 7, por outro lado, oferece um nível de controle mais detalhado e granular, o que pode ser vantajoso para desenvolvedores que necessitam de ampla personalização. Ela fornece uma API robusta para trabalhar com operações de baixo nível em PDFs. No entanto, devido à sua complexidade, o iText 7 geralmente requer mais código para alcançar resultados semelhantes em comparação com o IronPDF.

  • Controle granular de PDF – Ideal para aplicações empresariais que exigem conformidade rigorosa (ex.: PDF/A, PDF/UA, assinaturas digitais).
  • Altamente personalizável – Oferece manipulação de PDFs em baixo nível para casos de uso avançados.
  • Curva de aprendizado mais acentuada – Requer mais configuração e ajustes em comparação com o IronPDF.
  • Mais intensivo em código – Tarefas comuns geralmente exigem implementações mais longas .

Licenciamento e Custo

Ao selecionar uma biblioteca PDF para um projeto .NET , as considerações de licenciamento e custo são cruciais. Tanto o IronPDF quanto o iText 7 seguem modelos de licenciamento diferentes, e a escolha do mais adequado depende dos requisitos do seu projeto, do seu orçamento e das suas necessidades de conformidade.

Licenciamento e custo do IronPDF

O IronPDF segue um modelo de licenciamento comercial, o que significa que, embora ofereça um período de teste gratuito para licenciamento comercial e seja gratuito para desenvolvimento e avaliação, uma licença paga é necessária para uso completo em produção. O preço é transparente e depende de fatores como escala de utilização, número de desenvolvedores e tipo de projeto.

Licenciamento do IronPDF :

  • Modelo de licenciamento comercial (sem restrições de código aberto).
  • Preços transparentes baseados em licenças para desenvolvedores ou equipes .
  • Sem custo adicional para conversão de HTML para PDF, segurança de PDF ou outros recursos principais .
  • Ideal para empresas que precisam de uma solução em PDF simples e econômica .

Conclusão: O IronPDF inclui todos os principais recursos em uma única licença, tornando-se uma opção econômica para equipes e empresas.

Licenciamento e custo do iText7

O iText7 opera sob um modelo de licenciamento duplo , que inclui:

  1. AGPL (GNU Affero General Public License) – Gratuita para projetos de código aberto, mas exige que todo o projeto que utiliza o iText7 seja de código aberto e compatível com a AGPL. Isso significa que quaisquer modificações ou acréscimos feitos ao projeto também devem ser compartilhados publicamente.
  2. Licença Comercial – Necessária para qualquer software proprietário ou aplicativo comercial que não deseje divulgar seu código-fonte. A estrutura de preços varia de acordo com o uso, o nível de suporte e a escala de implantação.

Para empresas que desejam integrar o iText 7 em softwares proprietários, uma licença comercial é obrigatória. O custo pode ser significativo, especialmente para soluções de nível empresarial, já que é calculado por desenvolvedor, mas proporciona acesso a suporte profissional e garante a conformidade legal.

Por que o iText 7 pode ser mais caro:

  • Preços por desenvolvedor – Cada desenvolvedor precisa de uma licença separada, aumentando os custos totais para as equipes.
  • Funcionalidades essenciais exigem complementos caros:
    • pdfHTML (Pago) – Necessário para conversão de HTML para PDF .
    • pdfOCR (Pago) – Necessário para reconhecimento de texto em imagens .
    • pdfCalligraph (Pago) – Melhora a renderização de texto e o suporte a fontes.
    • pdfRender (Pago) – Adiciona conversão de PDF para imagem .
    • pdf2Data (Pago) – Extrai dados estruturados de PDFs.
  • Os custos empresariais podem aumentar rapidamente quando são necessárias várias funcionalidades e vários desenvolvedores.

Resumindo: Se sua equipe precisa de vários desenvolvedores e recursos essenciais como conversão de HTML para PDF e OCR, o iText 7 pode ser significativamente mais caro do que o IronPDF, que oferece esses recursos sem custos adicionais.

Cenários de Caso de Uso

Projetos de pequeno porte versus projetos de grande porte

Para projetos de pequeno a médio porte que exigem implementação rápida de funcionalidades de PDF com configuração mínima, o IronPDF é uma escolha atraente devido à sua API amigável e conjunto abrangente de recursos. Projetos de nível empresarial que exigem ampla personalização e conformidade com padrões específicos de PDF podem se beneficiar dos recursos avançados do iText7; no entanto, o IronPDF também se mostra uma excelente opção para esse nível de trabalho devido ao seu alto desempenho, opções de licenciamento e facilidade de uso.

Uso acadêmico e comercial

Em contextos acadêmicos ou projetos de código aberto, a licença AGPL do iText 7 permite o uso gratuito, desde que a licença do projeto seja compatível. Para aplicações comerciais, tanto o IronPDF quanto o iText 7 exigem a compra de uma licença comercial. É recomendável revisar os termos de licenciamento de cada biblioteca para garantir a conformidade com os objetivos do seu projeto.

Conclusão

Escolher a biblioteca PDF certa para o seu projeto .NET é uma decisão crucial que depende de fatores como facilidade de uso, conjunto de recursos e necessidades de licenciamento. Tanto o IronPDF quanto o iText 7 oferecem recursos avançados de PDF, mas atendem a requisitos diferentes. Além dessas duas bibliotecas, concorrentes como Aspose, Syncfusion e PDFSharp oferecem bibliotecas PDF .NET competitivas. No entanto, o IronPDF lidera consistentemente o setor de PDF com sua API fácil de usar, conjunto abrangente de recursos e custo-benefício.

A seguir, resumimos um argumento convincente sobre por que o IronPDF é uma ótima escolha para todas as suas necessidades de biblioteca PDF .NET .

 Visão geral da comparação entre IronPDF e iText7

Vantagens do IronPDF

  • Facilidade de uso: O IronPDF foi projetado com foco na simplicidade, tornando-o a escolha ideal para desenvolvedores que precisam integrar rapidamente funcionalidades de PDF em seus aplicativos .NET . Sua API intuitiva reduz a curva de aprendizado e acelera o tempo de desenvolvimento.
  • Documentação e suporte abrangentes: O IronPDF oferece documentação detalhada e suporte ao cliente ágil, garantindo que os desenvolvedores possam se familiarizar rapidamente com a ferramenta e solucionar problemas com eficácia.
  • Conversão perfeita de HTML para PDF: O IronPDF se destaca na conversão de HTML, incluindo CSS e JavaScript, em PDFs de alta qualidade. Isso é particularmente benéfico para projetos que precisam gerar PDFs dinamicamente a partir de conteúdo da web.
  • Licenciamento Comercial: Para aplicações comerciais, o IronPDF oferece opções de licenciamento flexíveis, garantindo a conformidade sem as restrições que podem advir das licenças de código aberto.

Limitações do iText

  • Complexidade: Embora o iText 7 ofereça recursos avançados e capacidade de personalização, sua API pode ser complexa para desenvolvedores iniciantes em manipulação de PDFs. Isso pode resultar em tempos de desenvolvimento mais longos para tarefas comuns em comparação com a abordagem mais direta do IronPDF.
  • Custos de licenciamento para uso comercial: A licença AGPL do iText 7 exige que quaisquer trabalhos derivados sejam de código aberto, a menos que você adquira uma licença comercial. Isso pode ser uma limitação para aplicativos proprietários que não podem cumprir os termos da AGPL.
  • Recursos centrados em Java: Embora o iText 7 esteja disponível for .NET, suas raízes no ecossistema Java podem, às vezes, torná-lo menos nativo para desenvolvedores C#, especialmente ao lidar com questões de multiplataforma ou integração com ferramentas baseadas em Java.

Considerações finais

Se o seu projeto exige geração rápida de PDFs, especialmente a partir de conteúdo da web, e você busca uma solução fácil de usar, o IronPDF provavelmente é a melhor escolha. No entanto, se sua aplicação requer manipulação avançada de PDFs ou estrita conformidade com os padrões de PDF e você precisa de flexibilidade para personalização extensiva, o iText7 pode ser a opção mais adequada. Considere os requisitos específicos do seu projeto e as restrições de licenciamento para determinar a biblioteca mais adequada às suas necessidades.

Experimente o IronPDF hoje mesmo: Baixe a versão de avaliação gratuita e comece a explorar os poderosos recursos do IronPDF!

ObserveiText 7 é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela iText 7. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.

Perguntas frequentes

Como posso converter HTML para PDF em C#?

Você pode usar o método RenderHtmlAsPdf do IronPDF para converter strings HTML em PDFs. Você também pode converter arquivos HTML em PDFs usando o RenderHtmlFileAsPdf .

Quais são as principais diferenças entre o IronPDF e o iText 7?

O IronPDF oferece conversão perfeita de HTML para PDF e um modelo de licenciamento comercial simples, enquanto o iText 7 requer um complemento pago para conversão de HTML para PDF e segue um modelo de licenciamento duplo. O IronPDF é conhecido pela sua facilidade de uso, enquanto o iText 7 oferece manipulação avançada de PDFs, mas tem uma curva de aprendizado mais acentuada.

Por que devo escolher o IronPDF para meus projetos .NET?

O IronPDF é ideal para implementações de PDF rápidas e econômicas, oferecendo facilidade de uso, documentação completa e conversão integrada de HTML para PDF sem custos adicionais. Ele suporta várias versões do .NET e fornece recursos abrangentes, como edição e segurança de PDF.

O IronPDF é adequado para gerar documentos PDF complexos?

Sim, o IronPDF suporta a geração de documentos PDF complexos com recursos como preenchimento de formulários, anotações e extração de dados. Suas amplas capacidades o tornam adequado para uma variedade de aplicações profissionais em PDF.

Quais são as opções de licenciamento disponíveis para o IronPDF?

O IronPDF segue um modelo de licenciamento comercial, exigindo uma licença paga para uso em produção. Esse modelo simples elimina as complexidades associadas a sistemas de licenciamento duplo, como o do iText 7.

O IronPDF pode ser integrado a projetos .NET Core?

Sim, o IronPDF pode ser integrado a projetos .NET Core. Ele é compatível com .NET Core, .NET Framework e .NET Standard, o que o torna versátil para diversos ambientes de desenvolvimento.

Como o IronPDF lida com os recursos de segurança de PDFs?

O IronPDF oferece recursos robustos de segurança para PDFs, incluindo criptografia, proteção por senha e assinaturas digitais, que ajudam a proteger informações confidenciais dos documentos.

O que torna o IronPDF fácil de usar em comparação com outras bibliotecas?

O IronPDF é considerado fácil de usar devido à sua API direta, requisitos mínimos de configuração e documentação abrangente, o que facilita sua implementação mesmo para desenvolvedores com pouca experiência em geração de PDFs.

Há custos adicionais para usar a conversão de HTML para PDF no IronPDF?

Não, o IronPDF inclui recursos integrados de conversão de HTML para PDF, eliminando a necessidade de componentes ou custos adicionais, ao contrário de algumas outras bibliotecas de PDF que exigem complementos pagos.

Como o IronPDF se compara em termos de desempenho e velocidade?

O IronPDF é otimizado para desempenho e velocidade, proporcionando geração e manipulação de PDFs rápidas e confiáveis, o que é crucial para aplicações que lidam com grandes volumes de processamento de PDFs.

Curtis Chau
Redator Técnico

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 ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim