IRONSOFTWAREHOME
MIGRATION GUIDES

How to Migrate from Sumatra PDF to IronPDF in C#

Curtis Chau
Curtis Chau
Updated: August 1, 2026

Migrating from Sumatra PDF to IronPDF transforms your PDF workflow from external process management with a desktop viewer application to native .NET library integration with full PDF creation, manipulation, and extraction capabilities. This guide provides a complete, step-by-step migration path that eliminates external dependencies, AGPLv3 copyleft obligations, and the fundamental limitation that Sumatra PDF is a viewer/printer, not a development library.

Why Migrate from Sumatra PDF to IronPDF

Understanding Sumatra PDF

Sumatra PDF is a lightweight, open-source Windows PDF reader/printer renowned for its simplicity and speed. It also displays EPUB, MOBI, CBZ/CBR, FB2, CHM, XPS, and DjVu files. However, Sumatra PDF does not provide the capabilities needed for creating or manipulating PDF files beyond viewing and printing them, and there is no official .NET SDK or NuGet package - community wrappers simply shell out to SumatraPDF.exe.

Sumatra PDF is a standalone Windows desktop viewer/printer application, not a development library. If you're using Sumatra PDF in your .NET application, you're likely:

  1. Launching SumatraPDF.exe as an external process to display PDFs
  2. Printing PDFs via command-line (-print-to-default, -print-to "<printer>")
  3. Relying on it as a dependency your users must install

Key Problems with Sumatra PDF Integration

ProblemImpact
Not a LibraryCannot programmatically create or edit PDFs
External ProcessRequires spawning SumatraPDF.exe; no in-process API
AGPLv3 LicenseStrong copyleft (some files BSD-licensed); bundling into closed-source products imposes obligations most commercial vendors avoid
User DependencyUsers (or your installer) must place SumatraPDF.exe on disk
CLI OnlyLimited to documented command-line arguments
View / Print OnlyCannot create, edit, or manipulate PDFs
Windows OnlyNo Linux or macOS builds

Sumatra PDF vs IronPDF Comparison

FeatureSumatra PDFIronPDF
TypeApplicationLibrary
PDF ReadingYesYes
PDF CreationNoYes
PDF EditingNoYes
IntegrationLimited (standalone)Full integration in applications
LicenseAGPLv3 (some files BSD)Commercial
Create PDFsNoYes
Edit PDFsNoYes
HTML to PDFNoYes
Merge/SplitNoYes
WatermarksNoYes
Digital SignaturesNoYes
Form FillingNoYes
Text ExtractionNoYes
.NET IntegrationNoneNative
Web ApplicationsNoYes

IronPDF, unlike Sumatra PDF, is not tied to any specific desktop application or external process. It provides developers with a flexible library to dynamically create, edit, and manipulate PDF documents directly in C#. This decoupling from external processes offers a noticeable advantage - it is straightforward and adaptable, suitable for a wide array of applications beyond just viewing.

For teams targeting modern .NET, IronPDF provides native library integration that eliminates the external process overhead and AGPLv3 copyleft obligations of Sumatra PDF.


Before You Start

Prerequisites

  1. .NET Environment: .NET Framework 4.6.2+ or .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Access: Ability to install NuGet packages
  3. IronPDF License: Obtain your license key from ironpdf.com

Installation

# Install IronPDF
dotnet add package IronPdf
SHELL

License Configuration

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

Complete API Reference

Namespace Changes

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

// After: IronPDF
using IronPdf;

Core Capability Mappings

Sumatra PDF ApproachIronPDF EquivalentNotes
Process.Start("SumatraPDF.exe", pdfPath)PdfDocument.FromFile()Load PDF
Command-line argumentsNative API methodsNo CLI needed
External pdftotext.exepdf.ExtractAllText()Text extraction
External wkhtmltopdf.exerenderer.RenderHtmlAsPdf()HTML to PDF
-print-to-default argumentpdf.Print()Printing
Not possiblePdfDocument.Merge()Merge PDFs
Not possiblepdf.ApplyWatermark()Watermarks
Not possiblepdf.SecuritySettingsPassword protection

Code Migration Examples

Example 1: HTML to PDF Conversion

Before (Sumatra PDF):

// Sumatra PDF is a standalone Windows app (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 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);
    }
}
C#

After (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 to PDF conversion.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully!");
    }
}

This example demonstrates the fundamental architectural difference. Sumatra PDF cannot directly convert HTML to PDF - you must use an external tool like wkhtmltopdf as an intermediary, then launch Sumatra as a separate process to view the result. This requires two external executables and multiple process launches.

IronPDF uses a ChromePdfRenderer with RenderHtmlAsPdf() in just three lines of code. No external tools, no process management, no intermediary files. The PDF is created directly in memory and saved with SaveAs(). See the HTML to PDF documentation for comprehensive examples.

Example 2: Opening and Displaying PDFs

Before (Sumatra PDF):

// Sumatra PDF is a standalone Windows app (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 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}\""
    }
}
C#

After (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 });
    }
}

Sumatra PDF excels at viewing PDFs, but it's limited to launching an external process with command-line arguments. You cannot programmatically access the PDF content - only display it.

IronPDF loads the PDF with PdfDocument.FromFile(), giving you full programmatic access. You can read properties like PageCount, manipulate the document, save changes, and then open with the system's default PDF viewer. The key difference is that IronPDF provides an actual API, not just process arguments. Learn more in our tutorials.

Example 3: Extracting Text from PDFs

Before (Sumatra PDF):

// Sumatra PDF is a standalone Windows viewer (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 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);
    }
}
C#

After (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 is a viewer, not a text extraction library. To extract text, you must use external command-line tools like pdftotext.exe, spawn a process, wait for it to complete, read the output file, and handle all the associated file I/O and cleanup.

IronPDF provides native text extraction with ExtractAllText() for the entire document or ExtractTextFromPage(0) for specific pages. No external processes, no temporary files, no cleanup required.


Feature Comparison

FeatureSumatra PDFIronPDF
:Creation:HTML to PDF No Yes
URL to PDFNoYes
Text to PDFNoYes
Image to PDFNoYes
:Manipulation:Merge PDFs No Yes
Split PDFsNoYes
Rotate PagesNoYes
Delete PagesNoYes
Reorder PagesNoYes
:Content:Add Watermarks No Yes
Add Headers/FootersNoYes
Stamp TextNoYes
Stamp ImagesNoYes
:Security:Password Protection No Yes
Digital SignaturesNoYes
EncryptionNoYes
Permission SettingsNoYes
:Extraction:Extract Text No Yes
Extract ImagesNoYes
:Platform:Windows Yes Yes
LinuxNoYes
macOSNoYes
Web AppsNoYes
Azure/AWSNoYes

New Capabilities After Migration

After migrating to IronPDF, you gain capabilities that Sumatra PDF cannot provide:

PDF Creation from 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");

PDF Merging

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");

Watermarks

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");

Password Protection

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");

Migration Checklist

Pre-Migration

  • Identify all Sumatra process launches (Process.Start("SumatraPDF.exe", ...))
  • Document print workflows (-print-to-default arguments)
  • Note any Sumatra command-line arguments used
  • Obtain IronPDF license key from ironpdf.com

Code Updates

  • Install IronPdf NuGet package
  • Remove Sumatra process code
  • Replace Process.Start("SumatraPDF.exe", pdfPath) with PdfDocument.FromFile(pdfPath)
  • Replace external wkhtmltopdf.exe calls with ChromePdfRenderer.RenderHtmlAsPdf()
  • Replace external pdftotext.exe calls with pdf.ExtractAllText()
  • Replace -print-to-default process calls with pdf.Print()
  • Add license initialization at application startup

Testing

  • Test PDF generation quality
  • Verify print functionality
  • Test on all target platforms
  • Verify no Sumatra dependency remains

Cleanup

  • Remove Sumatra from installers
  • Update documentation
  • Remove Sumatra from system requirements

Please note: Sumatra PDF and wkhtmltopdf are registered trademarks of their respective owners. This site is not affiliated with, endorsed by, or sponsored by the Sumatra PDF project or the wkhtmltopdf project. All product names, logos, and brands are property of their respective owners. Comparisons are for informational purposes only and reflect publicly available information at the time of writing.
Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Related Articles

Key in blue circle

Get your free 30-day Trial Key instantly.

Your trial license will be sent to your email address

No limitations. 100% unlocked. No credit card.

bullet_checkedNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Book your free Live Demo
Booking Badge

Trusted by Millions of Engineers Worldwide

Iron Software's customer logos
Get Your No-Obligation Consult
Complete the form below or email sales@ironsoftware.com
Your details will always be kept confidential.
Trusted by Millions of Engineers Worldwide
Iron Software's customer logos
Get your free 30-day Trial Key instantly.
No credit card or account creation required