IRONSOFTWAREHOME
VÍDEOS

Como adicionar uma assinatura digital a um PDF em C# usando iTextSharp | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

A migração do PDF daSyncfusionFramework para o IronPDF transforma seu fluxo de trabalho de geração de PDFs, passando de uma API gráfica baseada em coordenadas, integrada a um pacote extenso, para uma biblioteca independente, com foco em HTML/CSS e renderização moderna do Chromium. Este guia fornece um caminho de migração completo, passo a passo, que elimina o licenciamento exclusivo de pacotes, os requisitos complexos de implantação e o posicionamento baseado em coordenadas.

Por que migrar do PDF daSyncfusionpara o IronPDF?

Entendendo a estrutura PDF da Syncfusion

O PDF daSyncfusionFramework é uma biblioteca abrangente que fornece uma ampla gama de funcionalidades para criar, editar e proteger documentos PDF usando C#. Ele faz parte do Essential Studio da Syncfusion, que inclui mais de mil componentes para diversas plataformas.

A biblioteca PDF não pode ser comprada como um único componente. ASyncfusionagora oferece um tier "Document SDK" que inclui as bibliotecas PDF, Word, Excel e PowerPoint sem os componentes de UI, juntamente com a suíte completa Essential Studio. Equipes que precisam apenas de funcionalidade PDF devem adquirir o Document SDK no mínimo, o que pode ser complicado quando as outras bibliotecas de documentos não são utilizadas.

O problema do licenciamento por pacote

O modelo de licenciamento daSyncfusioncria desafios significativos para equipes que precisam apenas da funcionalidade de PDF:

  1. Sem Compra Por Biblioteca: O PDF está incluído no Document SDK (PDF + Word + Excel + PowerPoint) ou no Essential Studio completo — não pode ser licenciado separadamente
  2. Restrições da Licença Comunitária: O tier gratuito exige receita anual <$1M, ≤5 desenvolvedores, E ≤10 funcionários no total, além de um limite vitalício de $3M em capital externo
  3. Licenciamento para Implantações Complexas: Licenças diferentes para implantações web, desktop e servidor.
  4. Renovação Anual Necessária: Modelo de assinatura com custos anuais (mínimo de 1 ano de termo)
  5. Preços por desenvolvedor: os custos aumentam linearmente com o tamanho da equipe.
  6. Inchaço do Pacote: O Document SDK traz dependências de Word/Excel/PowerPoint mesmo se você só precisar de PDF; O Essential Studio completo adiciona 1000+ componentes de UI extras

Comparação entre PDF daSyncfusione IronPDF

AspectoPDF daSyncfusionIronPDF
Modelo de compraPacote Document SDK ou Essential Studio completo (sem SKU por biblioteca)Independente
LicenciamentoNíveis complexosSimples por desenvolvedor
Limite da Comunidade<$1M revenue, ≤5 devs, ≤10 employees, ≤$3M outside capitalTeste grátis, depois licença
ImplantaçãoVários tipos de licençaUma única licença cobre tudo.
Estilo APIGráficos baseados em coordenadas + conversor HTMLHTML/CSS em primeiro lugar
Motor HTMLBlink (NuGets separados para Windows/Linux/Mac)Chromium incluído
Suporte a CSSModerno (Blink) — próximo à paridade com o ChromiumCSS3 completo/flexbox/grid
DependênciasVários pacotesNuGet único
Requisito de PacoteSim (Document SDK or Essential Studio)Não
Foco no PDFLargo; parte de um pacote maiorEstreito; com foco em PDF

O IronPDF oferece uma abordagem mais focada, disponibilizando seus recursos de PDF como um produto independente. Essa diferença impacta significativamente tanto as considerações de custo quanto a facilidade de integração.

Para equipes adotando o .NET moderno, a licença independente do IronPDF e a abordagem HTML/CSS-primeiro fornecem flexibilidade sem dependências de pacote.


Antes de começar

Pré-requisitos

  1. Ambiente .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Acesso ao NuGet : Capacidade de instalar pacotes NuGet.
  3. Licença do IronPDF: Obtenha sua chave de licença em IronPDF

Alterações no pacote NuGet

# RemoveSyncfusionpackages
dotnet remove package Syncfusion.Pdf.Net.Core
dotnet remove package Syncfusion.HtmlToPdfConverter.Net.Windows
dotnet remove package Syncfusion.Licensing

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuração de licença

Syncfusion:

// Must register before anySyncfusioncalls
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-SYNCFUSION-KEY");

IronPDF:

// One-time at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Referência completa da API

Alterações de namespace

// Before:SyncfusionPDF
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Parsing;
using Syncfusion.HtmlConverter;
using Syncfusion.Drawing;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;

Mapeamentos da API principal

SyncfusionIronPDF
PdfDocumentChromePdfRenderer
PdfLoadedDocumentPdfDocument.FromFile()
HtmlToPdfConverterChromePdfRenderer
graphics.DrawString()Elementos de texto HTML
graphics.DrawImage()<img> tag
PdfGridHTML <table>
PdfStandardFontCSS font-family
PdfBrushes.BlackCSS color: black
document.Securitypdf.SecuritySettings
PdfTextExtractorpdf.ExtractAllText()
ImportPageRange()PdfDocument.Merge()
document.Save(stream)pdf.SaveAs(path)
document.Close(true)Não é necessário

Exemplos de migração de código

Exemplo 1: Conversão de HTML/URL para PDF

Antes (PDF da Syncfusion):

// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.HtmlConverter;
using Syncfusion.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        // Initialize HTML to PDF converter
        HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();
        
        // Convert URL to PDF
        PdfDocument document = htmlConverter.Convert("https://www.example.com");
        
        // Save the document
        FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
        document.Save(fileStream);
        document.Close(true);
        fileStream.Close();
    }
}

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        
        // Save the PDF
        pdf.SaveAs("Output.pdf");
    }
}

Este exemplo demonstra as diferenças fundamentais da API. PDF daSyncfusionrequer uma instância HtmlToPdfConverter, chamando Convert() que retorna um PdfDocument, criando então manualmente um FileStream, salvando e fechando tanto o documento quanto o fluxo.

IronPDF usa um ChromePdfRenderer com RenderUrlAsPdf() em apenas três linhas de código. Sem gerenciamento FileStream, sem chamadas Close()—IronPDF lida automaticamente com a limpeza. Consulte a documentação de conversão de HTML para PDF para obter exemplos completos.

Exemplo 2: Criando um PDF a partir de um texto

Antes (PDF da Syncfusion):

// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
using System.IO;

class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();
        
        // Add a page
        PdfPage page = document.Pages.Add();
        
        // Create a font
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12);
        
        // Draw text
        page.Graphics.DrawString("Hello, World!", font, PdfBrushes.Black, new PointF(10, 10));
        
        // Save the document
        FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
        document.Save(fileStream);
        document.Close(true);
        fileStream.Close();
    }
}

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
        
        // Save the document
        pdf.SaveAs("Output.pdf");
    }
}

O PDF daSyncfusionutiliza um modelo gráfico baseado em coordenadas. Você cria um PdfDocument, adiciona um PdfPage, cria um PdfFont com PdfFontFamily.Helvetica, então chama page.Graphics.DrawString() com coordenadas explícitas (new PointF(10, 10)), fonte e pincel (PdfBrushes.Black). Finalmente, você gerencia a criação e descarte de FileStream.

O IronPDF utiliza uma abordagem que prioriza HTML/CSS. Instead of coordinates, you write <h1>Hello, World!</h1> and let CSS handle positioning, fonts, and colors. Essa abordagem é mais simples, mais fácil de manter e aproveita as habilidades que os desenvolvedores já possuem. Saiba mais em nossos tutoriais .

Exemplo 3: Mesclar documentos PDF

Antes (PDF da Syncfusion):

// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using System.IO;

class Program
{
    static void Main()
    {
        // Load the first PDF document
        FileStream stream1 = new FileStream("Document1.pdf", FileMode.Open, FileAccess.Read);
        PdfLoadedDocument loadedDocument1 = new PdfLoadedDocument(stream1);
        
        // Load the second PDF document
        FileStream stream2 = new FileStream("Document2.pdf", FileMode.Open, FileAccess.Read);
        PdfLoadedDocument loadedDocument2 = new PdfLoadedDocument(stream2);
        
        // Merge the documents
        PdfDocument finalDocument = new PdfDocument();
        finalDocument.ImportPageRange(loadedDocument1, 0, loadedDocument1.Pages.Count - 1);
        finalDocument.ImportPageRange(loadedDocument2, 0, loadedDocument2.Pages.Count - 1);
        
        // Save the merged document
        FileStream outputStream = new FileStream("Merged.pdf", FileMode.Create);
        finalDocument.Save(outputStream);
        
        // Close all documents
        finalDocument.Close(true);
        loadedDocument1.Close(true);
        loadedDocument2.Close(true);
        stream1.Close();
        stream2.Close();
        outputStream.Close();
    }
}

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Load PDF documents
        var pdf1 = PdfDocument.FromFile("Document1.pdf");
        var pdf2 = PdfDocument.FromFile("Document2.pdf");
        
        // Merge PDFs
        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        
        // Save the merged document
        merged.SaveAs("Merged.pdf");
    }
}

O contraste na fusão de PDFs é impressionante. PDF daSyncfusionrequer a criação de objetos FileStream para cada documento de entrada, carregando-os como PdfLoadedDocument, criando um novo PdfDocument, chamando ImportPageRange() com índices de início e fim para cada fonte, criando um FileStream de saída, e então fechando seis objetos separados (finalDocument, loadedDocument1, loadedDocument2, stream1, stream2, outputStream).

IronPDF usa PdfDocument.FromFile() para carregar cada PDF e um método estático PdfDocument.Merge() que aceita uma lista de documentos. Sem gerenciamento de fluxos, sem cálculos manuais de intervalo de páginas, sem situações de quase-acidente.


Principais diferenças na filosofia da API

Baseado em coordenadas versus HTML/CSS como primeiro passo

O PDF daSyncfusionutiliza um modelo gráfico baseado em coordenadas, herdado das bibliotecas PDF tradicionais:

// Syncfusion:Manualpositioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, new PointF(100, 200));
page.Graphics.DrawRectangle(brush, new RectangleF(50, 50, 200, 100));
C#

O IronPDF utiliza HTML/CSS para o layout:

// IronPDF: CSS-based positioning
var html = @"
<div style='margin: 50px; padding: 20px; border: 1px solid black;'>
    <p style='color: black;'>Text</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);

A abordagem HTML/CSS é mais intuitiva para desenvolvedores web, mais fácil de manter e produz resultados consistentes em diferentes tamanhos de página.

Gerenciamento de fluxo versus limpeza automática

O PDF daSyncfusionexige o descarte explícito de fluxos e documentos:

// Syncfusion:Manualcleanup
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();
C#

O IronPDF realiza a limpeza automaticamente:

// IronPDF: Automático cleanup
pdf.SaveAs("Output.pdf");

Comparação de recursos

RecursoPDF daSyncfusionIronPDF
Compra avulsaNão (Document SDK or Essential Studio)Sim
LicenciamentoComercial com restrições comunitáriasComercial simplificado
Motor HTMLBlink (NuGets específicos da plataforma)Chromium incluído
Suporte a CSS3Moderno via BlinkCompleto (flexbox, grade)
Estilo APIGráficos baseados em coordenadas + conversor HTMLHTML/CSS em primeiro lugar
Gestão de FluxosManualAutomático
DependênciasVários pacotesNuGet único
Complexidade de ImplantaçãoPotencialmente complexoDireto

Lista de verificação para migração

Pré-migração

  • Inventariar todas as utilizações de PDF daSyncfusionna base de código.
  • Documentar os custos de licenciamento e os requisitos de implementação.
  • Identifique usos de PdfGrid, PdfGraphics e HtmlToPdfConverter
  • Obtenha a chave de licença do IronPDF em IronPDF

Atualizações de código

  • Remova pacotesSyncfusion(Syncfusion.Pdf.Net.Core, Syncfusion.HtmlToPdfConverter.Net.Windows, Syncfusion.Licensing)
  • Instale o pacote NuGet IronPdf
  • Atualize as importações de namespace (using Syncfusion.Pdf;using IronPdf;)
  • Substitua Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense() por IronPdf.License.LicenseKey = "..."
  • Substitua HtmlToPdfConverter.Convert() por ChromePdfRenderer.RenderUrlAsPdf() ou RenderHtmlAsPdf()
  • Substitua PdfDocument + Pages.Add() + Graphics.DrawString() por ChromePdfRenderer.RenderHtmlAsPdf()
  • Substitua PdfLoadedDocument por PdfDocument.FromFile()
  • Substitua ImportPageRange() por PdfDocument.Merge()
  • Substitua document.Save(stream) por pdf.SaveAs(path)
  • Remova todas as chamadas document.Close(true) e stream.Close()
  • Substitua PdfGrid por elementos HTML <table>
  • Substitua PdfStandardFont por font-family de CSS
  • Substitua PdfBrushes por propriedades CSS color

Testando

  • Comparação visual da saída em PDF
  • Verificar melhorias na renderização de CSS (flexbox e grid agora funcionam)
  • Teste de extração de texto
  • Teste de fusão e divisão
  • Comparação de desempenho

Observe: Syncfusion é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado pela Syncfusion. 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.
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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.