產品比較

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

發佈 2024年4月3日
分享:

PDF(可攜式文件格式)是一種廣泛使用的檔案格式,用於一致且安全地分享文件。 在 C# 中讀取和操作此類文件是各種應用程式中的常見需求,例如文件管理系統、報告工具等。 在本文中,我們將比較兩個用於在 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 來管理套件。

步驟 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可以從IronPDF 的 NuGet 套件管理器如下所示。

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;
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 的 PDF 生成功能我們已經為您準備好了一切。 利用IronPDF的直觀且高效的PDF生成功能提升您的應用程式。

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

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

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >