產品比較

iTextSharp 讀取 PDF 替代方案(開發人員教程)

發佈 2024年4月3日
分享:

PDF (可攜式文件格式) PDF是一種廣泛使用的文件格式,能夠一致且安全地分享文件。在C#中閱讀和操作這種文件是各種應用程式中的常見需求,例如文件管理系統、報告工具等。在本文中,我們將比較兩個用於閱讀PDF文件的熱門庫:IronPDF和iTextSharp (最新的 .NET 函式庫 iText).

IronPDF 是一個來自Iron Software的綜合C#函式庫 Iron Software 提供廣泛的功能來處理 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 來管理專案中的套件。

第一步:在 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文件中,並將其另存為名為Example.pdf的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 取決於您的專案具體需求。如果您需要一個簡單易用的庫來進行常見的 PDF 操作,IronPDF 可能是更好的選擇。在做決定時,請考慮應用程式的複雜性、預算和學習曲線等因素。

IronPDF 設計用於將 PDF 生成無縫整合到您的應用程式中,輕鬆處理格式化文件到 PDF 的轉換。這個多功能工具允許您使用 .NET 將網頁表單、本地 HTML 頁面和其他網路內容轉換為 PDF。使用者可以方便地下載、電子郵件或將文件儲存到雲端。無論您需要生成發票、報價單、報告、合同或其他專業文件, IronPDF 為你提供解決方案。使用 IronPDF 直覺且高效的 PDF 生成功能來提升你的應用程序。

< 上一頁
如何使用iTextSharp在C#中閱讀PDF文件:
下一個 >
PDFsharp 與 iTextSharp (C# PDF 函式庫比較)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >