Ir para o conteúdo do rodapé
GUIAS DE MIGRAçãO

Como migrar do Sumatra PDF para o IronPDF em C#

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

Problema Impacto
Não é uma biblioteca Não é possível criar ou editar PDFs programaticamente.
Processo externo Requer iniciar SumatraPDF.exe; sem API dentro do processo
Licença AGPLv3 Copyleft forte (alguns arquivos licenciados BSD); bundling into closed-source products imposes obligations most commercial vendors avoid
Dependência do usuário Os usuários (ou seu instalador) devem colocar o SumatraPDF.exe no disco
Somente CLI Limitado a argumentos de linha de comando documentados
Somente Visualização/Impressão Não é possível criar, editar ou manipular PDFs.
Somente Windows Sem builds paraLinuxou macOS

Comparação entreSumatra PDFe IronPDF

Recurso Sumatra PDF IronPDF
Tipo Aplicativo Biblioteca
Leitura de PDF Sim Sim
Criação de PDF Não Sim
Edição de PDF Não Sim
Integração Limitado (autônomo) Integração completa em aplicativos
Licença AGPLv3 (alguns arquivos BSD) Comercial
Criar PDFs Não Sim
Editar PDFs Não Sim
HTML para PDF Não Sim
Mesclar/Dividir Não Sim
Marcas d'água Não Sim
Assinaturas digitais Não Sim
Preenchimento de formulários Não Sim
Extração de texto Não Sim
Integração .NET None Nativo
Aplicações Web Não Sim

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
# Install IronPDF
dotnet add package IronPdf
SHELL

Configuração de licença

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

Referência completa da API

Alterações de namespace

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

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

// After: IronPDF
using IronPdf;
Imports System.Diagnostics
Imports System.IO

Imports IronPdf
$vbLabelText   $csharpLabel

Mapeamento das Competências Essenciais

Abordagem em PDF de Sumatra Equivalente ao IronPDF Notas
Process.Start("SumatraPDF.exe", pdfPath) PdfDocument.FromFile() Carregar PDF
Argumentos da linha de comando Métodos da API nativa Não é necessário nenhum CLI.
Externo pdftotext.exe pdf.ExtractAllText() Extração de texto
Externo wkhtmltopdf.exe renderer.RenderHtmlAsPdf() HTML para PDF
Argumento -print-to-default pdf.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.SecuritySettings Proteçã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);
    }
}
//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);
    }
}
Imports System.Diagnostics
Imports System.IO

Module Program
    Sub Main()
        ' Sumatra PDF cannot directly convert HTML to PDF
        ' You'd need to use wkhtmltopdf or similar, then view in Sumatra
        Dim htmlFile As String = "input.html"
        Dim pdfFile As String = "output.pdf"

        ' Using wkhtmltopdf as intermediary
        Dim psi As New ProcessStartInfo With {
            .FileName = "wkhtmltopdf.exe",
            .Arguments = $"{htmlFile} {pdfFile}",
            .UseShellExecute = False
        }
        Process.Start(psi)?.WaitForExit()

        ' Then open with Sumatra
        Process.Start("SumatraPDF.exe", pdfFile)
    End Sub
End Module
$vbLabelText   $csharpLabel

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!");
    }
}
// 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!");
    }
}
Imports IronPdf
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()

        Dim htmlContent As String = "<h1>Hello World</h1><p>This is HTML para PDF conversion.</p>"

        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

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}\""
    }
}
//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}\""
    }
}
Imports System.Diagnostics
Imports System.IO

Module Program
    Sub Main()
        Dim pdfPath As String = "document.pdf"

        ' Sumatra PDF excels at viewing PDFs
        Dim startInfo As New ProcessStartInfo With {
            .FileName = "SumatraPDF.exe",
            .Arguments = $"""{pdfPath}""",
            .UseShellExecute = True
        }

        Process.Start(startInfo)

        ' Optional: Open specific page
        ' startInfo.Arguments = $"-page 5 ""{pdfPath}"""
    End Sub
End Module
$vbLabelText   $csharpLabel

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 });
    }
}
// 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 });
    }
}
Imports IronPdf
Imports System
Imports System.Diagnostics

Module Program
    Sub Main()
        Dim 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") With {.UseShellExecute = True})
    End Sub
End Module
$vbLabelText   $csharpLabel

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);
    }
}
//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);
    }
}
Imports System
Imports System.Diagnostics
Imports System.IO

Module Program
    Sub Main()
        ' Sumatra PDF is a viewer, not a text extraction library
        ' You'd need to use PDFBox, iTextSharp, or similar for extraction

        Dim pdfFile As String = "document.pdf"

        ' This would require external tools like pdftotext
        Dim psi As New ProcessStartInfo With {
            .FileName = "pdftotext.exe",
            .Arguments = $"{pdfFile} output.txt",
            .UseShellExecute = False
        }

        Process.Start(psi)?.WaitForExit()

        Dim extractedText As String = File.ReadAllText("output.txt")
        Console.WriteLine(extractedText)
    End Sub
End Module
$vbLabelText   $csharpLabel

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}");
    }
}
// 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}");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("document.pdf")

        ' Extract text from all pages
        Dim allText As String = pdf.ExtractAllText()
        Console.WriteLine("Extracted Text:")
        Console.WriteLine(allText)

        ' Extract text from specific page
        Dim pageText As String = pdf.ExtractTextFromPage(0)
        Console.WriteLine(vbCrLf & "First Page Text:" & vbCrLf & pageText)
    End Sub
End Class
$vbLabelText   $csharpLabel

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

Recurso Sumatra PDF IronPDF
Criação : HTML para PDF Não Sim
URL para PDF Não Sim
Texto para PDF Não Sim
Converter imagem para PDF Não Sim
Manipulação : Mesclar PDFs Não Sim
Dividir PDFs Não Sim
Girar páginas Não Sim
Excluir páginas Não Sim
Reordenar páginas Não Sim
: Contente : Adicionar marcas d'água Não Sim
Adicionar cabeçalhos/rodapés Não Sim
Texto do carimbo Não Sim
Imagens de selos Não Sim
: Segurança : Proteção por senha Não Sim
Assinaturas digitais Não Sim
Criptografia Não Sim
Configurações de permissão Não Sim
Extração : Texto extraído Não Sim
Extrair imagens Não Sim
Plataforma : Windows Sim Sim
Linux Não Sim
macOS Não Sim
Aplicativos Web Não Sim
Azure/AWS Não Sim

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");
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");
Dim renderer = New ChromePdfRenderer()
Dim 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")
$vbLabelText   $csharpLabel

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");
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");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim pdf3 = PdfDocument.FromFile("chapter3.pdf")

Dim book = PdfDocument.Merge(pdf1, pdf2, pdf3)
book.SaveAs("complete_book.pdf")
$vbLabelText   $csharpLabel

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");
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");
Dim 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")
$vbLabelText   $csharpLabel

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");
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");
Dim renderer As New ChromePdfRenderer()
Dim 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")
$vbLabelText   $csharpLabel

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

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

Leia mais

Equipe de Suporte Iron

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