跳過到頁腳內容
產品比較

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. 創建一個新的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 Package Manager 安裝,如下所示。

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;

// 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文檔渲染,確保提取的文本與原始文本一致。

許可(可用免費試用)

appsettings.json文件中插入您的IronPDF許可金鑰

"IronPdf.LicenseKey": "your license key"

若要接收試用許可,請提供您的電子郵件。

結論

IronPDF與iTextSharp之間進行選擇取決於您項目的具體要求。 如果您需要一個簡單易用的常見PDF操作庫,IronPDF可能是更好的選擇。在做出決策時考慮您的應用程序的複雜性、預算和學習曲線。 IronPDF被設計為無縫地將PDF生成集成到您的應用程序中,輕鬆處理格式化文檔到PDF的轉換。 這款多功能工具允許您使用.NET將網頁表單、本地HTML頁面及其他網絡內容轉換為PDF。 用戶可以方便地下載、通過電子郵件發送或將文檔存儲在雲端。 無論您需要生成發票、報價單、報告、合同或其他專業文檔,IronPDF的PDF生成能力都能滿足您的需求。 通過IronPDF直觀且高效的PDF生成能力提升您的應用程序。

請注意iText和iTextSharp是其各自所有者的注冊商標。 本網站未與iText或iTextSharp關聯、認可或贊助。所有產品名稱、徽標和品牌均為其各自所有者的財產。 比較僅供信息參考,並反映撰寫時公開可用的信息。

常見問題解答

如何在 C# 中讀取 PDF 檔案?

您可以使用 IronPDF 庫通過創建一個 PdfDocument 實例,並使用 ExtractAllTextExtractAllImages 等方法來提取 PDF 的內容。

選擇 C# 的 PDF 庫時應考慮什麼?

在選擇像 IronPDF 和 iTextSharp 這樣的庫進行 PDF 操作時,應考慮易用性、授權、學習曲線和特定項目需求等因素。

如何在我的 C# 項目中安裝 PDF 庫?

您可以通過 Visual Studio 中的 NuGet Package Manager 安裝 IronPDF,通過搜索 'IronPDF: C# PDF Library' 並點擊 'Install' 按鈕來完成。

使用 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 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。