在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
PDF 是便携式文档格式的缩写。 最简单的概括方法是想象一个文件夹,其中包含从图形到文本等一系列文件。 这些元素构成了现代 PDF,也是创建 PDF 的基本构件。 这种文件格式是在 20 世纪 90 年代 "发现/发明 "的,用于在计算机设置不同的用户之间交换信息。
在本文中,我们将比较两种流行的 .NET 组件 PDF 库。 这两个图书馆是
SautinSoft PDF Focus .NET
IronPDF 和 SautinSoft PDF Focus .NET 都专注于创建可在 Microsoft .NET 应用程序(包括 ASP.NET 网络应用程序和传统 Windows 应用程序)中阅读或编辑的 PDF 文件。 现在,我们可以对这两个库进行比较,以决定在应用程序中使用哪个库最好。 首先,我们将比较这两个库的功能,然后介绍它们在转换和处理 PDF 文件时的性能水平。
这两个库都由 Microsoft .NET Framework 支持。
SautinSoft PDF Focus .NET 旨在帮助您开发需要将文件转换为 PDF 文档的应用程序。 如果您希望在 WinForms 或 WPF/XAML 应用程序中提供将 PDF 转换为 Word 的方法,您只需添加对 "SautinSoft.PdfFocus.dll "的引用并编写 3-4 行 C# 代码即可。
以下是 SautinSoft PDF Focus .NET 的功能:
生成 HTML5 格式的文档。
Iron Software 的 IronPDF 是专为 .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 版的一个许可证价值为 $749 美元(美元)目前,".NET"、"Java"、"Python "或 "Node.js "和 "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 文档中看到一个表格,它实际上只是一组线条,给人的感觉就像一个真正的表格。).
支持多平台组件,与云平台和服务完全兼容,如
AWS
多克
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 创建",并随机添加 "试用 "一词。IronPDF 则没有这种情况。
使用 IronPdf 的基本价格几乎是 SautinSoft 的一半。
当我们比较这两个库时,我们可以清楚地看到 IronPDF 更可靠,性价比更高,价格几乎是 SautinSoft 的一半,而且能提供更好的支持和功能。
在本文中,我们比较了 IronPDF 和 SautinSoft PDF Focus .NET。 我们发现,IronPDF 用于将网页表单、本地 HTML 网页和其他网页转换为.NET 的 PDF,而 SautinSoft PDF Focus 则用于将 PDF 转换为 DOCX、图像、HTML 等任何格式。通过试用,我们发现 IronPdf 提供了无限制的试用功能,并且在输出产品中不添加任何产品标签。
总之,我们更倾向于 IronPDF,因为它的性能更好,而且为使用便携式文档格式的开发人员提供了众多功能。 他们还提供良好的支持和文档,以确保最佳使用所有令人印象深刻的功能。