在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
PDF 代表可攜式文件格式。 最簡單的方式來總結這個意思就是想像一個資料夾,其中包含從圖像到文字及其他的檔案集合。 這些元素構成現代的PDF文件,它們是創建PDF文件的基本構建塊。 這種文件格式在 1990 年代被「發現/發明」,作為在擁有不同電腦設置的用戶之間交換信息的一種方式。
在本文中,我們將比較兩個熱門的 .NET 組件 PDF 庫。 這兩個庫是:
SautinSoft PDF Focus .NET
IronPDF 和 SautinSoft PDF Focus .NET 都專注於創建可在 Microsoft .NET 應用程序中讀取或編輯的 PDF 文件,包括 ASP.NET 網頁應用程序和傳統的 Windows 應用程序。 我們現在可以比較這兩個庫,以決定哪一個最適合用於我們的應用程式。 首先,我們將比較這兩個函式庫的功能,然後再轉向它們在轉換和操作 PDF 檔時的性能水平。
這兩個庫都受到 Microsoft .NET 框架的支持。
SautinSoft PDF Focus .NET 專為協助您開發需要將檔案轉換為 PDF 文件的應用程式而設計。 如果您希望在 WinForms 或 WPF/XAML 應用程式中提供將 PDF 轉換為 Word 的方式,只需引用 "SautinSoft.PdfFocus.dll" 並撰寫 3-4 行 C# 程式碼即可。
以下是 SautinSoft PDF Focus .NET 的功能:
生成 HTML5 格式的文件。
IronPDF 是 Iron Software 為 .NET 開發者設計的強大工具。 它提供了一種簡單而智能的方法,將任何形式的 HTML 網頁轉換為 PDF 格式,無需面對僅使用一些代碼片段生成各種 PDF 文件時出現的問題。
此外,IronPDF 提供以程式方式在 PDF 文件中包含多種元素的能力,包括標頭、頁尾、浮水印和書籤。
以下是 IronPDF 的功能:
IronPDF.dll 可以直接從IronPDF NuGet 套件並用作 .NET 專案中的參考。 可以使用 IronPdf 命名空間存取 IronPDF 類別。
SautinSoft.PdfFocus 套件可以從官方網站直接下載,並作為 .NET 專案中的參考使用。 SautinSoft.PdfFocus 物件可用於轉換文件。
按照上面提到的相同步驟,但搜索 IronPDF 而不是 SautinSoft.PdfFocus。
將 IronPDF 庫添加為項目引用,如下所示:
該庫為開發人員提供高質量且價格合理的轉換功能。 主要的重點是,PDF Focus .NET 比所有競爭對手都便宜。 例如,一個適用於 PDF Focus .NET - HTML Edition 的授權價值為 $749(美元),Total Edition 的起價為 $778。
如果您需要一個可以從 PDF 文件中提取文本數據的 .NET 庫,那麼您來對地方了。
PDF Focus .NET 幫助您從任何 PDF 文件中提取文本。 可以從整份文件或個別頁面中提取文本。 該程式庫擷取高質量文本且不會在字詞之間加入不必要的空格,並且還支援 Unicode 字元。 此外,文本的佈局與 RTF 中的佈局相同,並具備正確的換行和欄目。 它還提供用於轉換 PDF 文件的 API。
SautinSoft PDF Focus 具有其自身的 PDF 閱讀器和 DOCX 渲染器。 您的 .NET 應用程序將能夠即時將任何 PDF 文件轉換為 DOCX,而不需要依賴 Microsoft Office 或 Adobe Acrobat。 幾乎所有應用程式中的功能都被支持。 生成的 DOCX 文件將包含段落、欄、表格、超連結、圖片、分頁符號等。
另一個值得注意的點是,PDF Focus .NET 擁有人工智慧功能,能夠理解和重建具有行和單元格的真實表格。(PDF 文件並沒有真正的表格...如果你在 PDF 裡看到表格,那實際上只是一些線條,讓人覺得像是真正的表格。).
Docker
SharePoint
// 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")
IRON VB CONVERTER ERROR developers@ironsoftware.com
// 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
// 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") 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
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
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"); }
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
SautinSoft 函式庫的主要缺點是,它會在未授權版本的 PDF Focus .NET 中打印試用通知「Created by an unlicensed version of PDF Focus .NET」,並隨機添加「Trial」這個詞。IronPDF 則不存在這種情況。
使用 IronPDF 的基本價格幾乎是 SautinSoft 的一半。
當我們比較兩個庫時,可以清楚地看到IronPDF更加可靠且具成本效益,價格幾乎是SautinSoft的一半,並提供更好的支持和功能。
在本文中,我們比較了IronPDF和SautinSoft PDF Focus .NET。 我們發現 IronPDF 用於將網頁表單、本地 HTML 頁面和其他網頁轉換為 PDF 與 .NET,而 SautinSoft PDF Focus 用於將 PDF 轉換為任何格式,例如 DOCX、圖像、HTML 等。通過試用,我們發現 IronPDF 提供無限試用功能,且不會在輸出產品中添加產品標籤。
總之,我們偏好使用IronPDF,因為它具有更好的效能以及為使用可攜式文件格式的開發人員提供的多種功能。 他們還提供良好的支援和文件,以確保所有令人印象深刻的功能能夠得到最佳的使用。