产品比较

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

发布 2024年四月3日
分享:

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

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

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

如何使用 IronPDF Vs iTextSharp 在 C&num 中读取 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 可以从 NuGet 软件包管理器。 最新版本作为 iText 软件包提供。

iTextSharp 阅读 PDF 的替代方法(开发人员教程):图 4 - iText

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

iTextSharp 阅读 PDF 的替代方法(开发人员教程):图 5 - NuGet 软件包管理器

IronPDF 可从 NuGet 软件包管理器,如下图所示。

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

或者从 Visual Studio 软件包管理器中安装,如下图所示。 搜索 IronPDF 并单击安装。

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);
'		}
'	}
'}
VB   C#

代码解释

  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);
'	}
'}
VB   C#

输出

iTextSharp 读取 PDF 的替代方法(开发人员教程):图 10 - 使用 iTextSharp 输出读取 PDF

iTextSharp 的限制

  1. 学习曲线:iTextSharp 的学习曲线比较陡峭,尤其是对初学者而言。
  2. 许可:iTextSharp 的许可模式可能不适合所有项目,尤其是预算有限的项目。

IronPDF 的优势

  1. 易于使用:IronPDF 以其简单明了的应用程序接口(API)而著称,开发人员可以轻松上手。
  2. 文档渲染:IronPDF 提供准确的 PDF 文档渲染,确保提取的文本忠实于原文。

许可(可免费试用)

使用 IronPDF. 将此密钥插入 appsettings.json 文件。

"IronPdf.LicenseKey": "your license key"

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

结论

选择 IronPDF iTextSharp 和 iTextSharp 的使用取决于项目的具体要求。 如果您需要一个简单易用的库来进行常见的 PDF 操作,IronPDF 可能是更好的选择。在做出决定时,请考虑应用程序的复杂性、预算和学习曲线等因素。 IronPDF 旨在将 PDF 生成无缝集成到您的应用程序中,毫不费力地处理格式化文档到 PDF 的转换。 这款多功能工具可让您使用 .NET 将网络表单、本地 HTML 网页和其他网络内容转换为 PDF。 用户可以方便地下载、通过电子邮件发送或在云端存储文件。 无论您需要制作发票、报价、报告、合同还是其他专业文件、 IronPDF 为您提供服务。 利用 IronPDF 直观高效的 PDF 生成功能提升您的应用程序。

< 前一页
在 C# 中使用 iTextSharp 阅读 PDF 文档的方法:
下一步 >
PDFsharp 与 iTextSharp(C# PDF 库比较)

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >