在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDF 是便携式文档格式的缩写。要概括其含义,最简单的方法就是想象一个文件夹,其中包含从图形到文本等一系列文件。这些元素构成了现代 PDF,它们是创建 PDF 的基本构件。这种文件格式是在 20 世纪 90 年代 "发现/发明 "的,是在不同计算机设置的用户之间交换信息的一种方式。
在本文中,我们将比较两个流行的 .NET 组件 PDF 库。这两个库是
IronPDF 和 SautinSoft PDF Focus .Net 都致力于创建可在 Microsoft .NET 应用程序(包括 ASP.NET 网络应用程序和传统的 Windows 应用程序)中读取或编辑的 PDF 文件。现在我们可以对这两个库进行比较,以决定在我们的应用程序中使用哪个库最好。首先,我们将比较这两个库的功能,然后再比较它们在转换和处理 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 是面向 .NET 开发人员的 Iron 软件产品。它提供了一种简单、智能的方法,可将任何形式的 HTML 网页转换为 PDF 格式,而不会出现只用一些代码字符串就能生成任何形式 PDF 文档的问题。
此外,IronPDf 还能以编程方式在 PDF 文档中加入多种元素,包括页眉、页脚、水印和书签。
以下是 IronPDF 的功能:
将 HTML 内容合并到现有的 PDF 文档中
IronPDF.dll 可直接从 官方网站 并在 .NET 项目中用作参考。可以使用 IronPdf 命名空间访问 IronPDF 类。
SautinSoft.PdfFocus软件包可直接从官方网站下载,并在.NET项目中用作参考。 SautinSoft.PdfFocus对象可用于转换文档。
创建新项目 (在这种情况下)
按照上述相同步骤,但搜索 IronPDF 而非 SautinSoft.PdfFocus。
添加 IronPDF 库作为项目参考,如下图所示:
一年无限期免费支持
该库以合理的价格为开发人员提供高质量的转换功能。值得关注的是,PDF Focus .Net 的价格低于所有同类竞争产品。例如,PDF Focus .Net - HTML Edition 的一个许可证价值为 $749 。(美元)全面版的起价为 778 美元。
HTTP 标头
如果你需要一个能从 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 文档中看到一个表格,它实际上只是一组线条,给人的感觉就像一个真正的表格。).
可使用 .NET Framework 和 .NET Core 2.0。请注意,PDF Focus .Net 完全是用托管 C# 编写的,因此是一个绝对独立的库。
支持多平台组件,与云平台和服务完全兼容,如
AWS
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")
' 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")
// 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
IRON VB CONVERTER ERROR developers@ironsoftware.com
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 创建",并随机添加 "试用 "字样。而 IronPDF 则不会出现这种情况。
使用 IronPDF 的基本价格几乎是 SautinSoft 的一半。
比较这两个库,我们可以清楚地看到,IronPDF 更可靠,性价比更高,价格几乎是 SautinSoft 的一半,而且能提供更好的支持和功能。
在本文中,我们比较了 IronPDF 和 SautinSoft PDF Focus .Net。我们发现,IronPDF 用于通过 .NET 将网页表单、本地 HTML 网页和其他网页转换为 PDF,而 SautinSoft PDF Focus 则用于将 PDF 转换为 Docx、图像、HTML 等任何格式。通过试用,我们发现 IronPDF 提供无限制的试用功能,并且不会在输出产品中添加任何产品标签。
总之,我们更喜欢 IronPDF,因为它的性能更好,而且为使用便携式文档格式的开发人员提供了大量功能。此外,IronPDF 还提供了良好的支持和文档,确保所有令人印象深刻的功能都能得到最佳使用。