IRONSOFTWAREHOME
VÍDEOS

Como exportar um PDF em C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

A migração doSumatra PDFpara o IronPDF transforma seu fluxo de trabalho de PDF, passando do gerenciamento de processos externos com um aplicativo visualizador para desktop para a integração nativa com a biblioteca .NET , com recursos completos de criação, manipulação e extração de PDFs. Este guia fornece um caminho completo e passo a passo de migração que elimina dependências externas, obrigações de copyleft AGPLv3, e a limitação fundamental de que oSumatra PDFé um visualizador/impressora, não uma biblioteca de desenvolvimento.

Por que migrar doSumatra PDFpara o IronPDF?

Entendendo Sumatra (PDF)

OSumatra PDFé um leitor/impressora PDF de código aberto leve para Windows, renomado por sua simplicidade e velocidade. Também exibe arquivos EPUB, MOBI, CBZ/CBR, FB2, CHM, XPS e DjVu. Não entanto, oSumatra PDFnão oferece as capacidades necessárias para criar ou manipular arquivos PDF além de visualizá-los e imprimi-los, e não há um SDK .NET oficial ou pacote NuGet — wrappers da comunidade simplesmente utilizam SumatraPDF.exe.

OSumatra PDFé um aplicativo visualizador/impressora de desktopWindowsindependente, não uma biblioteca de desenvolvimento. Se você estiver usando oSumatra PDFem seu aplicativo .NET , provavelmente você:

  1. Lançamento de SumatraPDF.exe como um processo externo para exibir PDFs
  2. Impressão de PDFs via linha de comando (-print-to-default, -print-to "<printer>")
  3. Ao depender disso, seus usuários precisam instalar o que precisam.

Principais problemas com a integração do Sumatra PDF

ProblemaImpacto
Não é uma bibliotecaNão é possível criar ou editar PDFs programaticamente.
Processo externoRequer iniciar SumatraPDF.exe; sem API dentro do processo
Licença AGPLv3Copyleft forte (alguns arquivos licenciados BSD); bundling into closed-source products imposes obligations most commercial vendors avoid
Dependência do usuárioOs usuários (ou seu instalador) devem colocar o SumatraPDF.exe no disco
Somente CLILimitado a argumentos de linha de comando documentados
Somente Visualização/ImpressãoNão é possível criar, editar ou manipular PDFs.
Somente WindowsSem builds paraLinuxou macOS

Comparação entreSumatra PDFe IronPDF

RecursoSumatra PDFIronPDF
TipoAplicativoBiblioteca
Leitura de PDFSimSim
Criação de PDFNãoSim
Edição de PDFNãoSim
IntegraçãoLimitado (autônomo)Integração completa em aplicativos
LicençaAGPLv3 (alguns arquivos BSD)Comercial
Criar PDFsNãoSim
Editar PDFsNãoSim
HTML para PDFNãoSim
Mesclar/DividirNãoSim
Marcas d'águaNãoSim
Assinaturas digitaisNãoSim
Preenchimento de formuláriosNãoSim
Extração de textoNãoSim
Integração .NETNoneNativo
Aplicações WebNãoSim

O IronPDF, diferentemente do Sumatra PDF, não está vinculado a nenhum aplicativo de desktop específico ou processo externo. Ela fornece aos desenvolvedores uma biblioteca flexível para criar, editar e manipular documentos PDF dinamicamente diretamente em C#. Essa separação de processos externos oferece uma vantagem notável: é simples e adaptável, adequada para uma ampla gama de aplicações que vão além da simples visualização.

Para equipes direcionando o .NET moderno, o IronPDF fornece integração de biblioteca nativa que elimina a sobrecarga de processos externos e as obrigações de copyleft AGPLv3 do Sumatra PDF.


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

Instalação

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuração de licença

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Referência completa da API

Alterações de namespace

// Before:Sumatra PDF(external process)
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;

Mapeamento das Competências Essenciais

Abordagem em PDF de SumatraEquivalente ao IronPDFNotas
Process.Start("SumatraPDF.exe", pdfPath)PdfDocument.FromFile()Carregar PDF
Argumentos da linha de comandoMétodos da API nativaNão é necessário nenhum CLI.
Externo pdftotext.exepdf.ExtractAllText()Extração de texto
Externo wkhtmltopdf.exerenderer.RenderHtmlAsPdf()HTML para PDF
Argumento -print-to-defaultpdf.Print()Impressão
Não é possível.PdfDocument.Merge()Mesclar PDFs
Não é possível.pdf.ApplyWatermark()Marcas d'água
Não é possível.pdf.SecuritySettingsProteção por senha

Exemplos de migração de código

Exemplo 1: Conversão de HTML para PDF

Antes (Sumatra PDF):

//Sumatra PDFis a standaloneWindowsapp (AGPLv3) — there is NO official NuGet package.
// Download SumatraPDF.exe from https://www.sumatrapdfreader.org/and shell out to it.
// Sumatra is a viewer/printer only; it cannot convert HTML to PDF, so you must use a
// separate HTML-to-PDF tool (e.g. wkhtmltopdf) and then view/print with Sumatra.
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main()
    {
        //Sumatra PDFcannot directly convert HTML to PDF
        // You'd need to use wkhtmltopdf or similar, then view in Sumatra
        string htmlFile = "input.html";
        string pdfFile = "output.pdf";
        
        // Using wkhtmltopdf as intermediary
        ProcessStartInfo psi = new ProcessStartInfo
        {
            FileName = "wkhtmltopdf.exe",
            Arguments = $"{htmlFile} {pdfFile}",
            UseShellExecute = false
        };
        Process.Start(psi)?.WaitForExit();
        
        // Then open with Sumatra
        Process.Start("SumatraPDF.exe", pdfFile);
    }
}
C#

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string htmlContent = "<h1>Hello World</h1><p>This is HTML para PDF conversion.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully!");
    }
}
C#

Este exemplo demonstra a diferença arquitetônica fundamental. OSumatra PDFnão consegue converter HTML para PDF diretamente; você precisa usar uma ferramenta externa como o wkhtmltopdf como intermediário e, em seguida, executar o Sumatra como um processo separado para visualizar o resultado. Isso requer dois executáveis ​​externos e a inicialização de múltiplos processos.

IronPDF usa um ChromePdfRenderer com RenderHtmlAsPdf() em apenas três linhas de código. Sem ferramentas externas, sem gerenciamento de processos, sem arquivos intermediários. O PDF é criado diretamente na memória e salvo com SaveAs(). Consulte a documentação de conversão de HTML para PDF para obter exemplos completos.

Exemplo 2: Abrindo e exibindo PDFs

Antes (Sumatra PDF):

//Sumatra PDFis a standaloneWindowsapp (AGPLv3) — no official NuGet package.
// Download SumatraPDF.exe from https://www.sumatrapdfreader.org/and call it via Process.Start.
// Useful CLI flags: -page <n>, -print-to-default, -print-to "<printer>", -print-settings, -silent.
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";
        
        //Sumatra PDFexcels at viewing PDFs
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            FileName = "SumatraPDF.exe",
            Arguments = $"\"{pdfPath}\"",
            UseShellExecute = true
        };
        
        Process.Start(startInfo);
        
        // Optional: Open specific page
        // Arguments = $"-page 5 \"{pdfPath}\""
    }
}
C#

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        
        // Extract information
        Console.WriteLine($"Page Count: {pdf.PageCount}");
        
        //IronPDF can manipulate and save, then open with default viewer
        pdf.SaveAs("modified.pdf");
        
        // Open with default PDF viewer
        Process.Start(new ProcessStartInfo("modified.pdf") { UseShellExecute = true });
    }
}
C#

OSumatra PDFé excelente para visualizar PDFs, mas sua funcionalidade se limita a iniciar um processo externo com argumentos de linha de comando. Não é possível acessar o conteúdo do PDF programaticamente — apenas exibi-lo.

IronPDF carrega o PDF com PdfDocument.FromFile(), dando a você acesso programático completo. Você pode ler propriedades como PageCount, manipular o documento, salvar alterações e depois abrir com o visualizador de PDF padrão do sistema. A principal diferença é que o IronPDF fornece uma API real, e não apenas processa argumentos. Saiba mais em nossos tutoriais .

Exemplo 3: Extraindo texto de PDFs

Antes (Sumatra PDF):

//Sumatra PDFis a standaloneWindowsviewer (AGPLv3) — no official NuGet package
// and no programmatic text-extraction API. To extract text you must shell out to a
// separate tool such as pdftotext (Xpdf / Poppler).
using System;
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main()
    {
        //Sumatra PDFis a viewer, not a text extraction library
        // You'd need to use PDFBox, iTextSharp, or similar for extraction
        
        string pdfFile = "document.pdf";
        
        // This would require external tools like pdftotext
        ProcessStartInfo psi = new ProcessStartInfo
        {
            FileName = "pdftotext.exe",
            Arguments = $"{pdfFile} output.txt",
            UseShellExecute = false
        };
        
        Process.Start(psi)?.WaitForExit();
        
        string extractedText = File.ReadAllText("output.txt");
        Console.WriteLine(extractedText);
    }
}
C#

Após (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        
        // Extract text from all pages
        string allText = pdf.ExtractAllText();
        Console.WriteLine("Extracted Text:");
        Console.WriteLine(allText);
        
        // Extract text from specific page
        string pageText = pdf.ExtractTextFromPage(0);
        Console.WriteLine($"\nFirst Page Text:\n{pageText}");
    }
}

Sumatra PDF é um visualizador, não uma biblioteca de extração de texto. Para extrair texto, você deve usar ferramentas externas de linha de comando como pdftotext.exe, iniciar um processo, esperar que ele termine, ler o arquivo de saída e lidar com toda a E/S de arquivos e limpeza associada.

IronPDF fornece extração de texto nativa com ExtractAllText() para o documento inteiro ou ExtractTextFromPage(0) para páginas específicas. Sem processos externos, sem arquivos temporários, sem necessidade de limpeza.


Comparação de recursos

RecursoSumatra PDFIronPDF
Criação :
URL para PDFNãoSim
Texto para PDFNãoSim
Converter imagem para PDFNãoSim
Manipulação :
Dividir PDFsNãoSim
Girar páginasNãoSim
Excluir páginasNãoSim
Reordenar páginasNãoSim
: Contente :
Adicionar cabeçalhos/rodapésNãoSim
Texto do carimboNãoSim
Imagens de selosNãoSim
: Segurança :
Assinaturas digitaisNãoSim
CriptografiaNãoSim
Configurações de permissãoNãoSim
Extração :
Extrair imagensNãoSim
Plataforma :
LinuxNãoSim
macOSNãoSim
Aplicativos WebNãoSim
Azure/AWSNãoSim

Novas funcionalidades após a migração

Após migrar para o IronPDF, você obtém recursos que oSumatra PDFnão oferece:

Criação de PDF a partir de HTML

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
    <html>
    <head><style>body { font-family: Arial; }</style></head>
    <body>
        <h1>Invoice #12345</h1>
        <p>Thank you for your purchase.</p>
    </body>
    </html>");

pdf.SaveAs("invoice.pdf");

Fusão de PDFs

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");

var book = PdfDocument.Merge(pdf1, pdf2, pdf3);
book.SaveAs("complete_book.pdf");

Marcas d'água

var pdf = PdfDocument.FromFile("document.pdf");

pdf.ApplyWatermark(@"
    <div style='
        font-size: 60pt;
        color: rgba(255, 0, 0, 0.3);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");

pdf.SaveAs("watermarked.pdf");

Proteção por senha

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Sensitive Data</h1>");

pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

pdf.SaveAs("protected.pdf");

Lista de verificação para migração

Pré-migração

  • Identificar todos os lançamentos de processos do Sumatra (Process.Start("SumatraPDF.exe", ...))
  • Documentar fluxos de trabalho de impressão (-print-to-default argumentos)
  • Anote quaisquer argumentos de linha de comando do Sumatra utilizados.
  • Obtenha a chave de licença do IronPDF em IronPDF

Atualizações de código

  • Instalar pacote NuGet IronPdf
  • Remover o código do processo de Sumatra
  • Substituir Process.Start("SumatraPDF.exe", pdfPath) por PdfDocument.FromFile(pdfPath)
  • Substituir chamadas externas wkhtmltopdf.exe por ChromePdfRenderer.RenderHtmlAsPdf()
  • Substituir chamadas externas pdftotext.exe por pdf.ExtractAllText()
  • Substituir chamadas de processo -print-to-default por pdf.Print()
  • Adicionar inicialização de licença na inicialização do aplicativo

Testando

  • Testar a qualidade da geração de PDFs
  • Verificar a funcionalidade de impressão
  • Testar em todas as plataformas alvo
  • Verificar se ainda não existe nenhuma dependência de Sumatra

Limpar

  • Remover Sumatra dos instaladores
  • Atualizar documentação
  • Remover Sumatra dos requisitos do sistema

Observe: Sumatra PDF e wkhtmltopdf são marcas registradas de seus respectivos proprietários. Este site não é afiliado, endossado ou patrocinado pelo projetoSumatra PDFou pelo projeto wkhtmltopdf. 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.