A Comparison between IronPDF and SautinSoft PDF Focus

1. Introduction

PDF stands for Portable Document Format. The easiest way to summarize what this means is to imagine a folder that contains a collection of files, from graphics to text and more. These elements make up modern PDFs, and they are the basic building blocks from which PDFs are created. This file format was "discovered/invented" in the 1990s as a way to exchange information between users with different computer settings.

In this article, we will compare two popular PDF libraries for .NET components. These two libraries are:

  • IronPDF
  • SautinSoft PDF Focus .Net

IronPDF and SautinSoft PDF Focus .Net both focus on creating PDF files that can be read or edited in your Microsoft .NET applications, including ASP.NET web applications and traditional Windows applications. We can now compare these two libraries to decide which is best to use in our application. First, we will compare the features of the two libraries, then we will move on to their performance levels when converting and manipulating PDF files.

Both libraries are supported by the Microsoft .NET framework.

1.1 SautinSoft PDF Focus .Net — Features

SautinSoft PDF Focus .Net is designed to assist you in the development of applications that require the conversion of files to PDF documents. If you wish to provide a way to convert PDF to Word from your WinForms or WPF/XAML application, you only need to add a reference to  "SautinSoft.PdfFocus.dll" and write 3-4 lines of C# code.

Below are the features of SautinSoft PDF Focus .Net:

  • Uses the .NET Framework to convert PDF documents.
  • Can analyze and process PDF documents generated using Adobe and other third-party PDF creation products
  • Includes a built-in PDF parser.
  • Generates documents in HTML5 format.
    • HTML Fixed is best for rendering, as it completely duplicates the PDF layout along with the page structure. The markup for these documents is very complex and there are many tags styled with (x,y) coordinates.
    • HTML Flowing is best when the generated PDFs require additional hands-on processing: i.e. editing and merging.
  • The markup of generated PDF documents has a very simple and easy-to-understand structure.
  • Can generate HTML documents with images using the base64 algorithm. This allows you to convert PDF to HTML completely in memory without a hard drive.
  • Provides an API for converting PDFs.

1.2 IronPDF Features

IronPDF is an Iron Software product for .NET developers. It provides an easy and smart approach to transform any form of HTML web page into PDF format, without the problems that arise from producing any form of PDF document with only some strings of code.

In addition, IronPDf provides the ability to programmatically include many kinds of elements in a PDF document, including headers, footers, watermarks, and bookmarks.

Below are the features of IronPDF:

  • Convert images to PDF and vice versa easily
  • Extract images and text from existing PDFs
  • Send PDFs to a printer programmatically without using Adobe software
  • Save PDFs from files, from binary data, and from memory
  • Supports streams and 128-bit encryption
  • Supports PDF digital signatures
  • Add, edit, and remove PDF outlines and bookmarks easily
  • Add sticky notes programmatically to any PDF page
  • Rotate pages
  • Add and remove pages
  • Add watermarks and change their opacity
  • Merge content from HTML into existing PDF documents
  • Create and customize headers and footers in a logical manner

2. Installation

2.1 Direct Download (IronPDF)

IronPDF.dll can be downloaded directly from the official website and used as a reference in .NET projects. IronPDF classes can be accessed using the IronPdf namespace.

2.2 Direct Download (Sautinsoft PDF Focus .Net)

SautinSoft.PdfFocus packages can be downloaded directly from the official website and used as a reference in .NET projects. SautinSoft.PdfFocus objects can be used to convert documents.

2.3 Installation Steps in Visual Studio

2.3.1 SautinSoft installation Steps

  • Launch Visual Studio
  • Create a new project (a console application in this case)
  • Install SautinSoft.PdfFocus using Manage NuGet Packages as shown below:
  • Click Install to install the latest version; once done, SautinSoft.PdfFocus.dll will automatically be added to your project as shown below:

2.3.2 IronPDF installation steps

Follow the same steps mentioned above, but search for IronPDF instead of for SautinSoft.PdfFocus.

Add the IronPDF library as a project reference, as shown below:

3. Pricing

3.1 IronPDF

  • Developers can enjoy unlimited use of the library for development. In terms of general licensing, the rates are very cost-effective
  • Free one-year unlimited support
  • Free trials are also available for licensing purposes
  • All licenses include a 30-day money-back guarantee
  • Valid for all environments (development, staging, production, etc)
  • One year of unconditional support
  • One-time only purchase

3.2 SautinSoft PDF Focus .Net

This library offers developers top-quality conversion at affordable prices. The main point of interest is that PDF Focus .Net is less expensive than all of its competitive counterparts. For example, one license for the PDF Focus .Net - HTML Edition is valued at $749(USD), and the Total Edition starts from $778.

  • One-time purchase only; life-long license available.
  • One year of unlimited support.
  • "Total" — converts PDF to all supported formats. Starts from $778.
  • "Office" — converts PDF to Word, Excel, and Text (txt). Starts from $599.
  • "Picasso" — converts PDF to images. Starts from $599.
  • "HTML" — converts PDF to HTML/XML. Starts from $749.

4. IronPDF Support and Settings

4.1 HTML to PDF Support

  • Full and high-fidelity HTML4 and HTML5 rendering
  • CSS3
  • JavaScript
  • Angular and React support
  • Image assets
  • SVG assets
  • Icon Fonts (Fontello, Bootstrap, Font Awesome, Barcode Fonts)
  • Responsive layouts
  • External stylesheets and assets (HTTP, HTTPS, or filesystem)
  • Static and multithreaded rendering
  • Loading of URLs using custom CSS
  • Network login using credentials
  • User-Agents
  • Proxies
  • Cookies
  • HTTP headers
  • Form variables (allowing login behind HTML login forms)

4.2 HTML to PDF Settings

  • Set custom “base URL” or file paths, allowing asset files to be easily loaded from a file system or across the web
  • Virtual Viewport (width and height) allows for responsive layouts to be used
  • Screen or print CSS media types
  • .NET assembly, which provides the functionality to perform the process with minimal code
  • Convert HTML forms to PDF forms
  • Read-only or editable
  • Load custom style sheets programmatically
  • Set output PDF resolution in DPI
  • Set JPEG image quality
  • Enable JavaScript support including optional render delays
  • Custom page numbering
  • Automatically scale HTML content to fit paper dimensions
  • Preserving text rendering quality
  • Full color and grayscale PDF
  • Accept HTML encoded in any major file encoding; default is UTF-8
  • Set PDF paper margins
  • Set in mm or inches
  • Supports zero-margin PDFs
  • Create PDFs using any international-standard paper size
  • Support for custom sizing in mm or inches
  • Paper orientations in landscape or portrait
  • Enable or disable HTML backgrounds from showing in PDFs
  • Custom zoom
  • GPU acceleration: WebGL on Linux

5. SautinSoft PDF Focus Support

5.1 Convert PDF To Text

If you need a .NET library that can extract text data from PDF documents, then you are in the right place.

PDF Focus .Net helps you extract text from any PDF document. Text can be extracted from an entire document or individual pages. The library extracts high-quality text without unnecessary spaces between words, and it also supports Unicode characters. Furthermore, the layout of the text looks the same as in RTF, with the correct line breaks and columns. It also provides an API for converting PDF documents.

5.2 Convert PDF TO DOCX

SautinSoft PDF Focus has its own PDF reader and DOCX renderer. Your .NET application will be able to convert any PDF documents to DOCX on the fly, without any dependencies on Microsoft Office or on Adobe Acrobat. Almost all features from both applications are supported. The resulting DOCX document will contain paragraphs, columns, tables, hyperlinks, images, page breaks, and so forth.

Another point of interest is that PDF Focus .Net has an AI feature, and can understand and recreate real tables with rows and cells (PDF documents don't have real tables...if you see a table inside a PDF, it is actually just a set of lines that just gives the feeling of a real table).

6. Compatibility (technical information)

6.1 IronPDF Compatibility

  • .NET Framework 4.0, 4.5, and 4.6.1
  • .NET Core 2.1, 3.0, 3.1, .NET 5 , and .NET 6
  • Completely compatible with macOS, Linux, and Windows.
  • .NET Standard 2.0 Compliance for Universal Compatibility
  • Includes support for cloud hosting: Windows Azure, Amazon Web Services (AWS), etc
  • Docker

6.2 SautinSoft PDF Focus Compatibility

  • Requires .NET Framework 4.0 or higher. The product is compatible with all .NET languages.
  • .NET Framework and .NET Core 2.0 can be used. Note that PDF Focus .Net is entirely written in managed C#, which makes it an absolutely standalone library.
  • Supports multi-platform components and is completely compatible with cloud platforms and services such as:
    • AWS
    • Docker
    • SharePoint
    • Google Cloud Platform

7. Source Code Examples

7.1 IronPDF

HTML to PDF:

// PM> Install-Package IronPdf
 
using IronPdf;
 
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Test HTML with images</h1>").SaveAs("test_image.pdf");
 

/****** Advanced ******/
 
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf")
// PM> Install-Package IronPdf
 
using IronPdf;
 
var Renderer = new IronPdf.ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Test HTML with images</h1>").SaveAs("test_image.pdf");
 

/****** Advanced ******/
 
// Load external html assets: images, css and javascript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf")
' PM> Install-Package IronPdf
'
Imports IronPdf
'
Private Renderer = New IronPdf.ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Test HTML with images</h1>").SaveAs("test_image.pdf")
'

'''**** Advanced *****
'
' Load external html assets: images, css and javascript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from 
Dim PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'PDF.SaveAs("html-with-assets.pdf")
VB   C#

URL to PDF:

// PM> Install-Package IronPdf
 
using IronPdf;
 
 
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://www.google.com/");
 
Pdf.SaveAs("url.pdf");  
// see also Pdf.Stream
// PM> Install-Package IronPdf
 
using IronPdf;
 
 
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://www.google.com/");
 
Pdf.SaveAs("url.pdf");  
// see also Pdf.Stream
' PM> Install-Package IronPdf
'
Imports IronPdf
'
'
Private Renderer As New IronPdf.ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://www.google.com/")
'
Pdf.SaveAs("url.pdf")
' see also Pdf.Stream
VB   C#

Images to PDF:

// PM> Install-Package IronPdf
using IronPdf;
using System.IO;
using System.Linq;
 
// Get all images(.jpg) from folder
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\test").Where(f => f.EndsWith(".jpg") || f.EndsWith(".jpeg"));
 
// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\testing.pdf");
 
//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
// PM> Install-Package IronPdf
using IronPdf;
using System.IO;
using System.Linq;
 
// Get all images(.jpg) from folder
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\test").Where(f => f.EndsWith(".jpg") || f.EndsWith(".jpeg"));
 
// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\testing.pdf");
 
//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
' PM> Install-Package IronPdf
Imports IronPdf
Imports System.IO
Imports System.Linq
'
' Get all images(.jpg) from folder
Private ImageFiles = System.IO.Directory.EnumerateFiles("C:\project\test").Where(Function(f) f.EndsWith(".jpg") OrElse f.EndsWith(".jpeg"))
'
' Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs("C:\project\testing.pdf")
'
'Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
VB   C#

7.2 SautinSoft PDF Focus

PDF to WORD IN MEMORY IN C

string pdfFile = @"c:\test.pdf";
 MemoryStream docxStream = new MemoryStream();

 SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();

 // Assume that we already have a PDF document as stream.
 using (FileStream pdfStream = new FileStream(pdfFile, FileMode.Open, FileAccess.Read))
 {
     f.OpenPdf(pdfStream);

     if (f.PageCount > 0)
     {
         int res = f.ToWord(docxStream);

         // Save docxStream to a file for demonstration purposes.
         if (res == 0)
         {
             string docxFile = Path.ChangeExtension(pdfFile, ".docx");
             File.WriteAllBytes(docxFile, docxStream.ToArray());
             System.Diagnostics.Process.Start(docxFile);
         }
     }
 }
string pdfFile = @"c:\test.pdf";
 MemoryStream docxStream = new MemoryStream();

 SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();

 // Assume that we already have a PDF document as stream.
 using (FileStream pdfStream = new FileStream(pdfFile, FileMode.Open, FileAccess.Read))
 {
     f.OpenPdf(pdfStream);

     if (f.PageCount > 0)
     {
         int res = f.ToWord(docxStream);

         // Save docxStream to a file for demonstration purposes.
         if (res == 0)
         {
             string docxFile = Path.ChangeExtension(pdfFile, ".docx");
             File.WriteAllBytes(docxFile, docxStream.ToArray());
             System.Diagnostics.Process.Start(docxFile);
         }
     }
 }
Dim pdfFile As String = "c:\test.pdf"
 Dim docxStream As New MemoryStream()

 Dim f As New SautinSoft.PdfFocus()

 ' Assume that we already have a PDF document as stream.
 Using pdfStream As New FileStream(pdfFile, FileMode.Open, FileAccess.Read)
	 f.OpenPdf(pdfStream)

	 If f.PageCount > 0 Then
		 Dim res As Integer = f.ToWord(docxStream)

		 ' Save docxStream to a file for demonstration purposes.
		 If res = 0 Then
			 Dim docxFile As String = Path.ChangeExtension(pdfFile, ".docx")
			 File.WriteAllBytes(docxFile, docxStream.ToArray())
			 System.Diagnostics.Process.Start(docxFile)
		 End If
	 End If
 End Using
VB   C#

PDF to Image:

SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();

f.OpenPdf(@"C:\Computer\testpdf");

if (f.PageCount > 0)
{
    //Set image properties: Jpeg, 200 dpi
    f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
    f.ImageOptions.Dpi = 200;

    //Save all PDF pages as page1.jpg, page2.jpg ... pageN.jpg
    f.ToImage(@"C:\Pictures\, "page");
}
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();

f.OpenPdf(@"C:\Computer\testpdf");

if (f.PageCount > 0)
{
    //Set image properties: Jpeg, 200 dpi
    f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
    f.ImageOptions.Dpi = 200;

    //Save all PDF pages as page1.jpg, page2.jpg ... pageN.jpg
    f.ToImage(@"C:\Pictures\, "page");
}
Dim f As New SautinSoft.PdfFocus()

f.OpenPdf("C:\Computer\testpdf")

If f.PageCount > 0 Then
	'Set image properties: Jpeg, 200 dpi
	f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg
	f.ImageOptions.Dpi = 200

	'Save all PDF pages as page1.jpg, page2.jpg ... pageN.jpg
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	f.ToImage("C:\Pictures\, "page"); }
VB   C#

PDF to HTML:

SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
 f.OpenPdf(@"c:\test.pdf");

 if (f.PageCount > 0)
 {
     int result = f.ToHtml(@"c:\output.html");

     //Open HTML document
     if (result==0)
     {
         System.Diagnostics.Process.Start(@"c:\output.html");
     }
 }
SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();
 f.OpenPdf(@"c:\test.pdf");

 if (f.PageCount > 0)
 {
     int result = f.ToHtml(@"c:\output.html");

     //Open HTML document
     if (result==0)
     {
         System.Diagnostics.Process.Start(@"c:\output.html");
     }
 }
Dim f As New SautinSoft.PdfFocus()
 f.OpenPdf("c:\test.pdf")

 If f.PageCount > 0 Then
	 Dim result As Integer = f.ToHtml("c:\output.html")

	 'Open HTML document
	 If result=0 Then
		 System.Diagnostics.Process.Start("c:\output.html")
	 End If
 End If
VB   C#

8. Advantages

8.1 IronPDF

  • Saves a lot of time because the conversion can be done with just 2-3 lines of code
  • Developers can use this library for an unlimited time for testing
  • Can easily add, edit, and remove PDF outlines/bookmarks
  • Only a few lines of code are needed to add text annotations (sticky notes) programmatically to any PDF page
  • Can add foreground or background overlays from HTML or PDF assets
  • Watermarks with opacity in any PDF can be added easily
  • Stamps can also be added to new HTML content on any existing PDF page
  • Logical or HTML headers and footers can be done with any PDF
  • Merge and append PDF pages to existing ones
  • Copy, add, and remove pages
  • Rotate pages and multi-platform component runs
  • Edit metadata, user permissions, and PDF password

8.2 SautinSoft PDF Focus

  • Saves a lot of time and cost on product development. Writing your own PDF converter in C# requires many days of hard work and takes approx. 100,000-1,500,000 lines of C# code. PDF Focus .Net saves a lot of time and you need only add the reference to "SautinSoft.PdfFocus.dll" and write 3-4 lines of C# code. No need to hire an expensive developer, thereby reducing development budgets
  • It also provides a set of APIs to convert PDF to various formats at once: Word, DOCX, RTF, Excel, HTML, Text, Multipage TIFF, JPEG, and PNG
  • This is a standalone PDF library; the client environment doesn't need to have Adobe Acrobat, MS Word, Excel, or any other software installed
  • There is only a one-time payment, afterwhich that allows you to use the library for life.
  • It can easily handle multipage TIFF files.
  • Unlimited tech support is also provided for a full-year free of cost.

9. Advantages of using IronPDF over SautinSoft

The main disadvantage of the SautinSoft library is that it prints the trial notice "Created by an unlicensed version of PDF Focus .Net", and the random addition of the word "Trial." This is not the case with IronPDF.

The basic price of using IronPDF is almost half that of SautinSoft.

When we compare both libraries, we can clearly see that IronPDF is more reliable and cost-effective, almost half the price of SautinSoft, and provides better support and features.

10. Conclusion

In this article, we have compared IronPDF and SautinSoft PDF Focus .Net. We have found that IronPDF is used for the conversion of web forms, local HTML pages, and other web pages to PDF with .NET, while SautinSoft PDF Focus is used for the conversion of PDF to any format such as Docx, images, HTML, etc. With trial work, we found that IronPDF provides unlimited trial features and adds no product labels to the output product.

In conclusion, we prefer IronPDF because of its better performance and the numerous features provided to developers who work with the Portable Document Format. They also provide good support and documentation to ensure optimal use of all the impressive features.