在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在本教程中,我们将学习如何从 PDF 文件中读取数据 (便携式文档格式) 用 C# 编写文件,并使用两种不同的工具举例说明。
网上有许多可以从 PDF 文件中提取文本和图像的解析器库/阅读器。我们将使用两个迄今为止最有用、最好的相关服务库从 PDF 文件中提取信息。我们还将对这两个库进行比较,看看哪一个更好。
我们将比较 iText 7 和 IronPDF.在继续介绍之前,我们先介绍一下这两个库。
iText 7 库是 iTextSharp 的最新版本。它可用于 .NET 和 Java 应用程序。它配备了文档引擎 (如 Adobe Acrobat Reader)iText 7 可创建、编辑和增强 PDF 文档页面,且不会出现任何错误。其他功能包括为 PDF 文档添加密码、创建编码策略和保存权限选项。它还可用于添加或更改内容或画布图像,附加 PDF 元素[字典等]您还可以创建水印和书签、更改字体大小以及签署敏感数据。
iText 7 允许我们在 .NET 中为网络、移动、桌面、内核或云应用程序构建自定义 PDF 处理应用程序。
IronPDF 是 Iron Software 开发的一个库,可帮助 C# 和 Java 软件工程师创建、编辑和提取 PDF 内容。它通常用于从 HTML、网页或图像生成 PDF。它可用于读取 PDF 并提取其文本。其他功能包括添加页眉/页脚、签名、附件、密码和安全问题。它具有多线程和异步功能,可全面优化性能。
IronPDF 支持跨平台,兼容 .NET 5、.NET 6 和 .NET 7、.NET Core、Standard 和 Framework。它还兼容 Windows、macOS、Linux、Docker、Azure 和 AWS。
现在,让我们看看它们的演示。
我们将使用以下 PDF 文件从 PDF 中提取文本。
使用 iText 7 编写以下提取文本的源代码。
//assign PDF location to a string and create new StringBuilder...
string pdfPath = @"D:/TestDocument.pdf";
var pageText = new StringBuilder();
//read PDF using new PdfDocument and new PdfReader...
using (PdfDocument document = new PdfDocument(new PdfReader(pdfPath)))
{
var pageNumbers = document.GetNumberOfPages();
for (int page = 1; page <= pageNumbers; page++)
{
//new LocationTextExtractionStrategy creates a new text extraction renderer
LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
PdfCanvasProcessor parser = new PdfCanvasProcessor(strategy);
parser.ProcessPageContent(document.GetFirstPage());
pageText.Append(strategy.GetResultantText());
}
Console.WriteLine(pageText.ToString());
}
//assign PDF location to a string and create new StringBuilder...
string pdfPath = @"D:/TestDocument.pdf";
var pageText = new StringBuilder();
//read PDF using new PdfDocument and new PdfReader...
using (PdfDocument document = new PdfDocument(new PdfReader(pdfPath)))
{
var pageNumbers = document.GetNumberOfPages();
for (int page = 1; page <= pageNumbers; page++)
{
//new LocationTextExtractionStrategy creates a new text extraction renderer
LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
PdfCanvasProcessor parser = new PdfCanvasProcessor(strategy);
parser.ProcessPageContent(document.GetFirstPage());
pageText.Append(strategy.GetResultantText());
}
Console.WriteLine(pageText.ToString());
}
'assign PDF location to a string and create new StringBuilder...
Dim pdfPath As String = "D:/TestDocument.pdf"
Dim pageText = New StringBuilder()
'read PDF using new PdfDocument and new PdfReader...
Using document As New PdfDocument(New PdfReader(pdfPath))
Dim pageNumbers = document.GetNumberOfPages()
For page As Integer = 1 To pageNumbers
'new LocationTextExtractionStrategy creates a new text extraction renderer
Dim strategy As New LocationTextExtractionStrategy()
Dim parser As New PdfCanvasProcessor(strategy)
parser.ProcessPageContent(document.GetFirstPage())
pageText.Append(strategy.GetResultantText())
Next page
Console.WriteLine(pageText.ToString())
End Using
现在,让我们使用 IronPDF 从 PDF 中提取文本。
以下源代码演示了使用 IronPDF 从 PDF 中提取文本的示例。
var pdf = PdfDocument.FromFile(@"D:/TestDocument.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
var pdf = PdfDocument.FromFile(@"D:/TestDocument.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
Dim pdf = PdfDocument.FromFile("D:/TestDocument.pdf")
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
使用 IronPDF,从 PDF 中提取文本只需两行代码。而使用 iText 7,我们则需要编写大约 10 行代码才能完成同样的任务。
IronPDF 提供了方便的文本提取方法,但 iText 7 要求我们编写自己的逻辑来完成同样的任务。
IronPDF 在性能和代码可读性方面都很高效。
这两个库在准确性方面不分伯仲,都能提供 100% 的准确输出。
iText 7 适用于 商业 仅此而已。IronPDF 的开发是免费的,而且还提供了一个 免费试用 对于 商业用途.
有关 IronPDF 和 iText 7 的更深入比较,请阅读以下内容 博文.