Como migrar do Sumatra PDF para o IronPDF em C#
A migração do Sumatra PDF para 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 de migração completo, passo a passo, que elimina dependências externas, restrições da licença GPL e a limitação fundamental de que o Sumatra PDF é um visualizador, não uma biblioteca de desenvolvimento.
Por que migrar do Sumatra PDF para o IronPDF?
Entendendo Sumatra (PDF)
O Sumatra PDF é principalmente um leitor de PDF leve e de código aberto, conhecido por sua simplicidade e velocidade. Não entanto, o Sumatra PDF não oferece os recursos necessários para criar ou manipular arquivos PDF além da visualização. Por ser uma opção gratuita e versátil para leitura de PDFs, é adorada por muitos usuários que buscam uma experiência descomplicada. Não entanto, quando se trata de desenvolvedores que precisam de funcionalidades de PDF mais abrangentes, como criação e integração de bibliotecas em aplicativos, o Sumatra PDF deixa a desejar devido às suas limitações de design inerentes.
Sumatra PDF é um aplicativo visualizador de PDF para desktop , não uma biblioteca de desenvolvimento. Se você estiver usando o Sumatra PDF em seu aplicativo .NET , provavelmente você:
- Executá-lo como um processo externo para exibir PDFs
- Utilizando-o para imprimir PDFs via linha de comando
- 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 a criação de processos separados. |
| Licença GPL | Restritivo para software comercial |
| Dependência do usuário | Os usuários devem instalar o Sumatra separadamente. |
| Sem API | Limitado a argumentos de linha de comando |
| Somente visualização | Não é possível criar, editar ou manipular PDFs. |
| Sem suporte na Web | Aplicativo exclusivo para desktop |
Comparação entre Sumatra PDF e 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 | GPL | 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 | Nenhum | 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 que planejam a adoção do .NET 10 e do C# 14 até 2025 e 2026, o IronPDF oferece integração nativa de biblioteca, eliminando a sobrecarga de processos externos e as restrições da licença GPL do Sumatra PDF.
Antes de começar
Pré-requisitos
- Ambiente .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
- Acesso ao NuGet : Capacidade de instalar pacotes NuGet.
- 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
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"
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;
' Before: Sumatra PDF (external process)
Imports System.Diagnostics
Imports System.IO
' After: IronPDF
Imports IronPdf
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 |
-print-to-default argumento |
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):
// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
// Sumatra PDF doesn't have direct C# integration for HTML para PDF conversion
// You would need to use external tools or libraries and then open with Sumatra
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
// Sumatra PDF cannot 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);
}
}
// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
// Sumatra PDF doesn't have direct C# integration for HTML para PDF conversion
// You would need to use external tools or libraries and then open with Sumatra
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
// Sumatra PDF cannot 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
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
Este exemplo demonstra a diferença arquitetônica fundamental. O Sumatra PDF nã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):
// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
// Sumatra PDF excels 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}\""
}
}
// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
// Sumatra PDF excels 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
' Arguments = $"-page 5 ""{pdfPath}"""
End Sub
End Module
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
Class Program
Shared 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 Class
O Sumatra 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.
O IronPDF carrega o PDF com PdfDocument.FromFile(), dando a você acesso programático completo. Você pode ler propriedades como PageCount, manipular o documento, salvar as alterações e, em seguida, 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 PDF doesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
// Sumatra PDF is 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 PDF doesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
using System.Diagnostics;
using System.IO;
class Program
{
static void Main()
{
// Sumatra PDF is 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.Diagnostics
Imports System.IO
Class Program
Shared 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 Class
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
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 todas as operações de entrada/saída e limpeza de arquivos associadas.
O IronPDF oferece 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 o Sumatra PDF nã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")
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")
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")
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")
Lista de verificação para migração
Pré-migração
- Identificar todos os lançamentos de processos de Sumatra (
Process.Start("SumatraPDF.exe", ...)) - Fluxos de trabalho de impressão de documentos (
-print-to-defaultargumentos) - 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
- Instale o pacote NuGet
IronPdf - Remover o código do processo de Sumatra
- Substitua
Process.Start("SumatraPDF.exe", pdfPath)porPdfDocument.FromFile(pdfPath) - Substituir chamadas externas
wkhtmltopdf.exeporChromePdfRenderer.RenderHtmlAsPdf() - Substituir chamadas externas
pdftotext.exeporpdf.ExtractAllText() - Substitua as chamadas de processo
-print-to-defaultporpdf.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

