产品比较

iTextSharp读取PDF替代方案(开发人员教程)

Chipego
奇佩戈-卡琳达
2024年四月3日
分享:

PDF(便携式文档格式)是一种广泛使用的文件格式,用于一致且安全地共享文档。 在文件管理系统、报告工具等各种应用程序中,用 C# 阅读和操作此类文件是一项常见要求。 在本文中,我们将比较两个流行的用于在C#中读取PDF文件的库:IronPDF和iTextSharp(最新的.NET库iText)。

IronPDF 是来自 Iron Software 的一个全面的 C# 库,提供了多种功能来处理 PDF 文件。 它允许开发人员无缝创建、编辑和处理 PDF 文档。 IronPDF 以简单易用著称,是需要将 PDF 功能快速集成到应用程序中的开发人员的绝佳选择。

iTextSharp 是另一个用于处理C#中PDF文件的流行库。 它已经存在了相当长的一段时间,并在业内广泛使用。 iText 为创建和处理 PDF 文档提供了丰富的功能。 它以灵活性和可扩展性著称,适用于复杂的 PDF 相关任务。

如何使用IronPDF对比iTextSharp在C#17中读取PDF

  1. 在 Visual Studio 中创建一个新的 C# 项目,比较 IronPDF 与 iTextSharp 在阅读 PDF 文件方面的优劣。

  2. 为项目安装 IronPDF 和 iTextSharp 库。

  3. 使用 IronPDF 阅读 PDF 文件。

  4. 使用 iTextSharp 阅读 PDF 文件。

先决条件

  1. Visual Studio:确保您已安装Visual Studio或其他C#开发环境。

  2. NuGet 包管理器:确保你可以使用 NuGet 来管理项目中的包。

步骤 1:在 Visual Studio 中创建一个新的 C# 项目,以比较 IronPDF 和 iTextSharp 读取 PDF 文件

首先设置一个 C# 控制台应用程序。 打开 Visual Studio 并选择创建新项目。 选择控制台应用程序类型。

iTextSharp 读取 PDF 替代方案(开发者教程):图 1 - 控制台应用程序

提供如下所示的项目名称。

iTextSharp 读取 PDF 的替代方案(开发者教程):图 2 - 项目配置

选择项目所需的 .NET 版本。

iTextSharp 读取 PDF 替代方案(开发者教程):图 3 - 框架

完成后,Visual Studio 将生成一个新项目。

第 2 步:为项目安装 IronPDF 和 iTextSharp 库

iTextSharp 可以通过iText 的 NuGet 包管理器安装。 最新版本作为 iText 软件包提供。

iTextSharp 读取 PDF 替代方案 (开发者教程): 图4 - iText

或从 Visual Studio 软件包管理器,如下图所示。 在软件包管理器中搜索 iText,然后单击安装。

iTextSharp 读取 PDF 替代方案(开发者教程):图 5 - NuGet 包管理器

IronPDF 可以从 NuGet 包管理器 安装,如下所示。

iTextSharp 阅读 PDF 替代方案(开发者教程):图 6 - IronPDF

或者从 Visual Studio 软件包管理器中安装,如下图所示。 在包管理器中搜索IronPDF: C# PDF Library并点击安装。

iTextSharp 读取PDF的替代方案(开发者教程):图7 - 安装IronPDF

第 3 步:使用 IronPDF 从 PDF 文件读取文本

在 program.cs 文件中添加以下代码,并提供包含以下内容的 PDF 文档示例。

iTextSharp 读取 PDF 替代方案(开发者教程):图 8 - PDF 输入

using IronPdf;
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");
// pdfreader reader
ReadUsingIronPDF.Read();
public class ReadUsingIronPDF
{
    public static void Read()
    {
        // read from specific location
        string filename = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";
        var pdfReader = PdfDocument.FromFile(filename);
        // Get all text to put in a search index using new simpletextextractionstrategy
        var allText = pdfReader.ExtractAllText();
        Console.WriteLine("------------------Text From PDF-----------------");
        Console.WriteLine(allText);
        Console.WriteLine("------------------Text From PDF-----------------");
        var allIMages = pdfReader.ExtractAllImages();
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine($"Total Images={allIMages.Count()}");
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine("------------------one Page Text From PDF page-----------------");
        var pageCount = pdfReader.PageCount;
        for (int page = 0; page < pageCount; page++)
        {
            string Text = pdfReader.ExtractTextFromPage(page);
            Console.WriteLine(Text);
        }
    }
}
using IronPdf;
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");
// pdfreader reader
ReadUsingIronPDF.Read();
public class ReadUsingIronPDF
{
    public static void Read()
    {
        // read from specific location
        string filename = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";
        var pdfReader = PdfDocument.FromFile(filename);
        // Get all text to put in a search index using new simpletextextractionstrategy
        var allText = pdfReader.ExtractAllText();
        Console.WriteLine("------------------Text From PDF-----------------");
        Console.WriteLine(allText);
        Console.WriteLine("------------------Text From PDF-----------------");
        var allIMages = pdfReader.ExtractAllImages();
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine($"Total Images={allIMages.Count()}");
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine("------------------one Page Text From PDF page-----------------");
        var pageCount = pdfReader.PageCount;
        for (int page = 0; page < pageCount; page++)
        {
            string Text = pdfReader.ExtractTextFromPage(page);
            Console.WriteLine(Text);
        }
    }
}
Imports IronPdf
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#")
' pdfreader reader
ReadUsingIronPDF.Read()
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'public class ReadUsingIronPDF
'{
'	public static void Read()
'	{
'		' read from specific location
'		string filename = "C:\code\articles\ITextSharp\ITextSharpIronPdfDemo\Example.pdf";
'		var pdfReader = PdfDocument.FromFile(filename);
'		' Get all text to put in a search index using new simpletextextractionstrategy
'		var allText = pdfReader.ExtractAllText();
'		Console.WriteLine("------------------Text From PDF-----------------");
'		Console.WriteLine(allText);
'		Console.WriteLine("------------------Text From PDF-----------------");
'		var allIMages = pdfReader.ExtractAllImages();
'		Console.WriteLine("------------------Image Count From PDF-----------------");
'		Console.WriteLine(string.Format("Total Images={0}", allIMages.Count()));
'		Console.WriteLine("------------------Image Count From PDF-----------------");
'		Console.WriteLine("------------------one Page Text From PDF page-----------------");
'		var pageCount = pdfReader.PageCount;
'		for (int page = 0; page < pageCount; page++)
'		{
'			string Text = pdfReader.ExtractTextFromPage(page);
'			Console.WriteLine(Text);
'		}
'	}
'}
$vbLabelText   $csharpLabel

代码解释

  1. 要创建文本 PDF,请创建一个 Word 文档,并在 Word 文档中添加上述文本,然后将其保存为 PDF 文档,命名为 Example.pdf

  2. 在代码中,我们从 PDF 文件路径创建一个 PDFReader,并提取所有文本

  3. 可使用 ExtractImages 方法提取 PDF 中的图像

  4. 使用 ExtractTextFromPage 方法可读取 PDF 文档中的每一页

输出

iTextSharp 读取 PDF 替代方案(开发者教程):图 9 - 使用 IronPDF 输出读取 PDF

第 3 步:使用 iTextSharp 从 PDF 文件读取文本

现在,要比较从 iTextSharp 读取的文本,请在同一 program.cs 文件中添加以下代码。为简单起见,我们没有将类分在不同的文件中。

using IronPdf;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Pdf.Canvas.Parser;
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");
//ReadUsingIronPDF.Read();
ReadUsingITextSharp.Read();
public class ReadUsingITextSharp
{
    public static void Read()
    {
        string pdfFile = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";
        // Create a PDF reader
        PdfReader pdfReader = new PdfReader(pdfFile);
        iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader);
        // Extract plain text from the PDF
        LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
        string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(1), strategy);
        // Display or manipulate the extracted text as needed
        Console.WriteLine(pdfText);
    }
}
using IronPdf;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Pdf.Canvas.Parser;
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");
//ReadUsingIronPDF.Read();
ReadUsingITextSharp.Read();
public class ReadUsingITextSharp
{
    public static void Read()
    {
        string pdfFile = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";
        // Create a PDF reader
        PdfReader pdfReader = new PdfReader(pdfFile);
        iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader);
        // Extract plain text from the PDF
        LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
        string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(1), strategy);
        // Display or manipulate the extracted text as needed
        Console.WriteLine(pdfText);
    }
}
Imports IronPdf
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser.Listener
Imports iText.Kernel.Pdf.Canvas.Parser
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#")
'ReadUsingIronPDF.Read();
ReadUsingITextSharp.Read()
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'public class ReadUsingITextSharp
'{
'	public static void Read()
'	{
'		string pdfFile = "C:\code\articles\ITextSharp\ITextSharpIronPdfDemo\Example.pdf";
'		' Create a PDF reader
'		PdfReader pdfReader = New PdfReader(pdfFile);
'		iText.Kernel.Pdf.PdfDocument pdfDocument = New iText.Kernel.Pdf.PdfDocument(pdfReader);
'		' Extract plain text from the PDF
'		LocationTextExtractionStrategy strategy = New LocationTextExtractionStrategy();
'		string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(1), strategy);
'		' Display or manipulate the extracted text as needed
'		Console.WriteLine(pdfText);
'	}
'}
$vbLabelText   $csharpLabel

输出

iTextSharp 读取 PDF 替代方案(开发者教程):图 10 - 使用 iTextSharp 输出读取 PDF

iTextSharp 的限制

  1. 学习曲线:iTextSharp的学习曲线更陡峭,尤其是对于初学者而言。

  2. 许可:iTextSharp 的许可模式可能并不适合所有项目,尤其是那些预算有限的项目。

IronPDF 的优势

  1. 易用性:IronPDF以其直观的API而闻名,使开发人员能够轻松入门。

  2. 文档渲染:IronPDF 提供精确的 PDF 文档渲染,确保提取的文本忠实于原始文档。

许可(可免费试用)

将您的 IronPDF license key 插入到 appsettings.json 文件中。

"IronPdf.LicenseKey": "your license key"

要获得试用许可证,请提供您的电子邮件。

结论

IronPDF和iTextSharp之间进行选择取决于您项目的具体需求。 如果您需要一个简单易用的库来进行常见的 PDF 操作,IronPDF 可能是更好的选择。在做出决定时,请考虑应用程序的复杂性、预算和学习曲线等因素。

IronPDF 旨在将 PDF 生成无缝集成到您的应用程序中,毫不费力地处理格式化文档到 PDF 的转换。 这款多功能工具可让您使用 .NET 将网络表单、本地 HTML 网页和其他网络内容转换为 PDF。 用户可以方便地下载、通过电子邮件发送或在云端存储文件。 无论您需要制作发票、报价单、报告、合同或其他专业文档,IronPDF 的 PDF 生成功能都能满足您的需求。 利用 IronPDF 直观高效的 PDF 生成功能提升您的应用程序。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
在 C# 中使用 iTextSharp 阅读 PDF 文档的方法:
下一步 >
PDFsharp 与 iTextSharp(C# PDF 库比较)