跳至页脚内容
产品比较

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

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

IronPDF is a comprehensive C# library from Iron Software的全面C#库,提供了许多功能用于处理PDF文件。 它允许开发人员无缝地创建、编辑和操作PDF文档。 IronPDF以其简单和易用性著称,使其成为需要快速将PDF功能集成到应用程序中的开发人员的绝佳选择。

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

如何使用IronPDF与iTextSharp读取C#中的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包管理器安装。 最新版本作为iText包提供。

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

或者从Visual Studio包管理器如下所示。 在包管理器中搜索iText并点击安装。

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

IronPDF can be installed from the NuGet 包管理器中的IronPDF如下所示。

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

或者从Visual Studio包管理器如下所示。 在包管理器中搜索IronPDF: C# PDF库然后点击安装。

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

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

将下面的代码添加到Program.cs文件中,并提供一个包含指定内容的示例PDF文档。

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

using IronPdf;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Read PDF using IronPDF
ReadUsingIronPDF.Read();

public class ReadUsingIronPDF
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string filename = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance to read the PDF
        var pdfReader = PdfDocument.FromFile(filename);

        // Extract all text from the PDF
        var allText = pdfReader.ExtractAllText();
        Console.WriteLine("------------------Text From PDF-----------------");
        Console.WriteLine(allText);
        Console.WriteLine("------------------Text From PDF-----------------");

        // Extract all images from the PDF
        var allImages = pdfReader.ExtractAllImages();
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine($"Total Images = {allImages.Count()}");
        Console.WriteLine("------------------Image Count From PDF-----------------");

        // Iterate through each page to extract text from them
        Console.WriteLine("------------------One Page Text From PDF-----------------");
        var pageCount = pdfReader.PageCount;
        for (int page = 0; page < pageCount; page++)
        {
            string text = pdfReader.ExtractTextFromPage(page);
            Console.WriteLine(text);
        }
    }
}
using IronPdf;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Read PDF using IronPDF
ReadUsingIronPDF.Read();

public class ReadUsingIronPDF
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string filename = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance to read the PDF
        var pdfReader = PdfDocument.FromFile(filename);

        // Extract all text from the PDF
        var allText = pdfReader.ExtractAllText();
        Console.WriteLine("------------------Text From PDF-----------------");
        Console.WriteLine(allText);
        Console.WriteLine("------------------Text From PDF-----------------");

        // Extract all images from the PDF
        var allImages = pdfReader.ExtractAllImages();
        Console.WriteLine("------------------Image Count From PDF-----------------");
        Console.WriteLine($"Total Images = {allImages.Count()}");
        Console.WriteLine("------------------Image Count From PDF-----------------");

        // Iterate through each page to extract text from them
        Console.WriteLine("------------------One Page Text From PDF-----------------");
        var pageCount = pdfReader.PageCount;
        for (int page = 0; page < pageCount; page++)
        {
            string text = pdfReader.ExtractTextFromPage(page);
            Console.WriteLine(text);
        }
    }
}
Imports IronPdf

' Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#")

' Read PDF using IronPDF
ReadUsingIronPDF.Read()

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'public class ReadUsingIronPDF
'{
'	public static void Read()
'	{
'		' Specify the path to the PDF document
'		string filename = "C:\code\articles\ITextSharp\ITextSharpIronPdfDemo\Example.pdf";
'
'		' Create a PDF Reader instance to read the PDF
'		var pdfReader = PdfDocument.FromFile(filename);
'
'		' Extract all text from the PDF
'		var allText = pdfReader.ExtractAllText();
'		Console.WriteLine("------------------Text From PDF-----------------");
'		Console.WriteLine(allText);
'		Console.WriteLine("------------------Text From PDF-----------------");
'
'		' Extract all images from the 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-----------------");
'
'		' Iterate through each page to extract text from them
'		Console.WriteLine("------------------One Page Text From PDF-----------------");
'		var pageCount = pdfReader.PageCount;
'		for (int page = 0; page < pageCount; page++)
'		{
'			string text = pdfReader.ExtractTextFromPage(page);
'			Console.WriteLine(text);
'		}
'	}
'}
$vbLabelText   $csharpLabel

代码解释

  1. 创建一个Word文档: 起初,创建一个包含所需文本内容的Word文档,并将其保存为名为Example.pdf的PDF文档。
  2. PDFReader 实例: 代码使用PDF文件路径创建一个PdfDocument对象以提取文本和图像。
  3. 提取文本和图像: 使用ExtractAllText方法获取文档中的所有文本,而ExtractAllImages提取图像。
  4. 按页提取文本: 使用ExtractTextFromPage方法提取每页的文本。

输出

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;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Call method to read PDF using iTextSharp library
ReadUsingITextSharp.Read();

public class ReadUsingITextSharp
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string pdfFile = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance
        PdfReader pdfReader = new PdfReader(pdfFile);

        // Initialize a new PDF Document
        iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader);

        // Use a text extraction strategy to extract plain text from the PDF
        LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
        string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(1), strategy);

        // Display the extracted text
        Console.WriteLine(pdfText);
    }
}
using IronPdf;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Pdf.Canvas.Parser;

// Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#");

// Call method to read PDF using iTextSharp library
ReadUsingITextSharp.Read();

public class ReadUsingITextSharp
{
    public static void Read()
    {
        // Specify the path to the PDF document
        string pdfFile = "C:\\code\\articles\\ITextSharp\\ITextSharpIronPdfDemo\\Example.pdf";

        // Create a PDF Reader instance
        PdfReader pdfReader = new PdfReader(pdfFile);

        // Initialize a new PDF Document
        iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader);

        // Use a text extraction strategy to extract plain text from the PDF
        LocationTextExtractionStrategy strategy = new LocationTextExtractionStrategy();
        string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(1), strategy);

        // Display the extracted text
        Console.WriteLine(pdfText);
    }
}
Imports IronPdf
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser.Listener
Imports iText.Kernel.Pdf.Canvas.Parser

' Begin the comparison of IronPDF and iTextSharp for reading PDFs in C#
Console.WriteLine("Comparison of IronPDF And iTextSharp Read PDF Files in C#")

' Call method to read PDF using iTextSharp library
ReadUsingITextSharp.Read()

'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'public class ReadUsingITextSharp
'{
'	public static void Read()
'	{
'		' Specify the path to the PDF document
'		string pdfFile = "C:\code\articles\ITextSharp\ITextSharpIronPdfDemo\Example.pdf";
'
'		' Create a PDF Reader instance
'		PdfReader pdfReader = New PdfReader(pdfFile);
'
'		' Initialize a new PDF Document
'		iText.Kernel.Pdf.PdfDocument pdfDocument = New iText.Kernel.Pdf.PdfDocument(pdfReader);
'
'		' Use a text extraction strategy to extract plain text from the PDF
'		LocationTextExtractionStrategy strategy = New LocationTextExtractionStrategy();
'		string pdfText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(1), strategy);
'
'		' Display the extracted text
'		Console.WriteLine(pdfText);
'	}
'}
$vbLabelText   $csharpLabel

输出

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之间的选择取决于项目的具体要求。 如果您需要一个简单易用的库来处理常见的PDF操作,IronPDF可能是更好的选择。在做决定时需考虑应用程序的复杂性、预算和学习曲线等因素。 IronPDF旨在无缝地将PDF生成集成到您的应用程序中,轻松处理格式化文档到PDF的转换。 这个多功能工具允许您使用.NET将网络表单、本地HTML页面和其他网络内容转换为PDF。 用户可以方便地下载、发送邮件或将文档存储在云中。 无论您需要生成发票、报价单、报告、合同或其他专业文档,IronPDF的PDF 生成能力都能满足您的需求。 通过IronPDF直观而高效的PDF生成功能提升您的应用程序。

[{i:(iText和iTextSharp是其各自所有者的注册商标。 本网站并未与iText或iTextSharp存在关联、获得其认可或赞助。所有产品名称、标识和品牌均为其各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。]

常见问题解答

如何在 C# 中读取 PDF 文件?

您可以使用 IronPDF 库通过创建 PdfDocument 实例并使用 ExtractAllTextExtractAllImages 等方法从 PDF 中提取内容。

选择 C# 的 PDF 库时应该考虑什么?

选择库时,考虑诸如易用性、许可、学习曲线和特定项目需求等因素,例如用于 C# 中的 PDF 操作的 IronPDF 和 iTextSharp。

如何在我的 C# 项目中安装 PDF 库?

您可以通过在 Visual Studio 的 NuGet 包管理器中搜索 'IronPDF: C# PDF Library' 并点击 'Install' 按钮来安装 IronPDF。

使用IronPDF进行PDF操作的优势是什么?

IronPDF 提供了易用性、简洁的 API 和准确的文档呈现,使其成为需要快速集成 PDF 功能的开发人员的理想选择。

使用 IronPDF 和 iTextSharp 的复杂程度有差异吗?

是的,IronPDF 以其简单著称,而 iTextSharp 提供更多的灵活性和可扩展性,这可能需要更陡峭的学习曲线。

IronPDF 可以将 HTML 内容转换为 PDF 吗?

是的,IronPDF 可以无缝地将 HTML 内容(例如网页表单和页面)转换为 PDF 文档,便于下载和通过电子邮件发送 PDF。

使用 iTextSharp 进行 PDF 任务的一些限制是什么?

iTextSharp 可能会带来更陡峭的学习曲线,其许可模式可能不适合所有项目预算,尤其是当您需要一个简单的解决方案时。

IronPDF 如何增强应用程序功能?

IronPDF 可以将 PDF 生成和操作功能集成到应用程序中,允许将网页内容转换为 PDF 并处理发票和报告等专业文档。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。