產品比較

如何使用iTextSharp在C#中閱讀PDF文件:

發佈 2024年4月3日
分享:

在今天的數位時代, 可攜式文件格式 (PDF) 文件由於其平臺無關的特性和一致的格式,已成為文件交換的標準。iTextSharp 函式庫成為了與 PDF 無縫互動的強大函式庫,適用於使用 C# 開發的開發者。在本文中,我們將學習使用 iTextSharp 讀取 PDF 文件的過程 iTextSharp 在 C# 中,探索關鍵步驟並提供全面的指南,幫助您釋放這個多功能庫的潛力。

如何使用 iTextSharp 在 C# 中讀取 PDF 文件

  1. 打開或創建 Visual Studio 專案。

  2. 安裝 iTextSharp 庫。

  3. 添加必要的命名空間。

  4. 選擇要讀取的 PDF 文件。

  5. 建立 PDF 閱讀器實例。

  6. 建立 PDF 文件實例。

  7. 遍歷文檔的每一頁以提取文本。

  8. 在控制台列印提取的文本。

什麼是itextSharp?

iText 7前身為iTextSharp,是一個強大且多功能的Java和.NET庫,用於創建、處理和提取PDF文件中的內容。它提供了全面的功能集,包括文本和圖像處理、表單填寫、數位簽名和水印。不管是生成發票、報告,還是互動表單,iText 7都能讓開發人員高效地處理PDF文件。

讀取 PDF 檔案

讓我們討論一些在 C# 中讀取 PDF 檔案的例子。要開始,您需要將 iTextSharp 庫添加到您的專案中。

安裝 iTextSharp PDF 庫

打開您的 C# 專案,使用 Visual Studio。在頂部菜單中,轉到「查看」,然後選擇「套件管理器控制台」。這將在 Visual Studio 窗口底部打開套件管理器控制台。

在套件管理器控制台中,確保「預設專案」下拉菜單設置為您想要安裝 iTextSharp 套件的專案。

運行以下命令來安裝 iTextSharp 庫:

Install-Package itext7

此指令從NuGet套件倉庫獲取最新版本的iTextSharp並安裝到您的專案中。請等待安裝過程完成。套件管理器控制台會顯示安裝進度的資訊。

如何使用iTextSharp在C#中讀取PDF文件:圖1 - 使用Visual Studio中的NuGet套件管理器控制台安裝iTextSharp並添加以下命令:「Install-package itext7」。

使用iTextSharp PDF閱讀器讀取PDF文件

我將使用以下PDF文件作為本範例的輸入。

使用 iTextSharp 在 C# 中讀取 PDF 文件:圖 2 - 原始 PDF 文件

在開始之前,請添加以下命名空間:

using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports System.Text
VB   C#

以下程式碼將讀取上述的 PDF 文件,提取內容,並將提取的內容列印到控制台。

public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
Public Shared Sub Main(ByVal args() As String)
	Dim text As New StringBuilder()
	Dim fileName As String = "D:/What_is_pdf.pdf"
	If File.Exists(fileName) Then
		Using pdfReader As New PdfReader(fileName)
			Using pdfDocument As New PdfDocument(pdfReader)
				Dim page As Integer = 1
				Do While page <= pdfDocument.GetNumberOfPages()
					Dim currentText As String = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page))
					currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)))
					text.Append(currentText)
					page += 1
				Loop
			End Using
		End Using
	End If
	Console.WriteLine(text.ToString())
End Sub
VB   C#

上述源代碼讀取 PDF 文件,從每個頁面提取文本,將其轉換為 UTF-8,然後將整個文本內容打印到控制台。這是一個使用 iTextSharp 庫在 C# 中從 PDF 文件提取文本的基本示例。

程式碼說明

1. 文件路徑和初始化

程式碼首先宣告一個名為 textStringBuilder 來累積從 PDF 提取的文字。它還定義了一個字串變數 fileName,指定文件位置的路徑。在這個例子中,PDF 文件位於 "D:/What_is_pdf.pdf"。

2. 檔案存在檢查

if (檔案.存在(文件名稱)) 條件會檢查指定的文件是否存在。如果文件存在,則執行後續的代碼塊。

3. PDF文件處理

if 區塊裡,它使用 PdfReader 對象打開 PDF 文件。然後,使用 PdfReader 創建一個 PdfDocument 文件實例。for 循環遍歷 PDF 文件的每一頁。

4. 從PDF文件中提取文字

對於每個PDF頁面,它使用PdfTextExtractor類的GetTextFromPage提取文本内容。(pdfDocument.GetPage(頁面))** 方法。提取的文字最初以預設編碼進行編碼。

然後,使用 Encoding.UTF8.GetString 將文字從預設編碼轉換為 UTF-8。(ASCIIEncoding.Convert(Encoding.Default,Encoding.UTF8,Encoding.Default.GetBytes(當前文本))). 然後將轉換後的文字附加到文本字符串。

5. 顯示累積的文本

最後,使用 Console.WriteLine 列印累積的文本()** 方法。

輸出

提取的 PDF 文本輸出如下:

如何使用iTextSharp在C#中讀取PDF文件:圖3 - 控制台輸出:使用iTextSharp從PDF文件「What_is_pdf.pdf」中提取文本並將其以純文本形式顯示在控制台中。

這樣我們就可以讀取 PDF 文件的內容。這個方法較為複雜且因創建了多個實例,效率較低。我們來探索另一種更易用且效率更高的方法。

IronPDF 介紹

IronPDF 是一個多功能且高效能的 C# 程式庫,旨在簡化和加強 創建, 操作,和 渲染 在 .NET 應用程式中處理 PDF 文件。IronPDF 使開發人員能夠輕鬆地將 PDF 相關功能整合到他們的專案中,專注於易用性和豐富的功能特性。該庫支持廣泛的 PDF 操作,包括從頭開始創建 PDF 文件、轉換 PDF 文件等。 將HTML內容轉換成PDF,和 提取文字和圖像 從現有的PDF文件中。IronPDF的直覺API為開發人員提供了便捷的體驗,讓他們能夠輕鬆生成動態和交互式PDF。無論是添加浮水印、註釋,還是加密文件,IronPDF都能使開發人員根據他們的特定需求定制PDF。作為一個可靠的解決方案,IronPDF在從報告生成、文件管理到Web開發的應用中,發揮了重要作用,提供了一整套全面的工具來簡化.NET環境中的PDF相關任務。

安裝 IronPDF 庫

在 Visual Studio 中使用套件管理器主控台

使用以下指令透過 NuGet 套件管理器主控台將 IronPDF 下載至您的專案。

Install-Package IronPdf

此指令將會下載並安裝 IronPDF NuGet 套件將其依賴項一起添加到您的項目中。

如何使用 iTextSharp 在 C# 中閱讀 PDF 文件:圖 4 - 使用 NuGet 套件管理器控制台安裝 IronPDF 庫,輸入以下命令:Install-package IronPDF

使用 NuGet 管理方案的套件

在 NuGet 的瀏覽標籤中,搜尋 "IronPDF" 程式庫並點擊安裝。

如何使用 iTextSharp 在 C# 中閱讀 PDF 文件:: 圖 5 - 使用 NuGet 套件管理器為解決方案安裝 IronPDF。首先在 NuGet 套件管理器的搜索欄中搜索 IronPDF,然後選擇該專案並點擊安裝按鈕。

使用 IronPDF 讀取 PDF 檔案

現在,讓我們使用 IronPDF 來讀取相同的 PDF 檔案 IronPDF以下的程式碼將從輸入的PDF文件中提取文字。

using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
Imports IronPdf
Public Shared Sub Main(ByVal args() As String)
	Dim pdfDocument = PdfDocument.FromFile("D:/What_is_pdf.pdf")
	 Dim text As String = pdfDocument.ExtractAllText()
	Console.WriteLine(text)
End Sub
VB   C#

上面的代码读取名为“What_is_pdf.pdf”的 PDF 文件,从中提取所有文本内容,并在控制台中显示提取的文本。

程式碼說明

1. 加載 PDF 文件

程式碼首先從名為 "What_is_pdf.pdf" 的檔案加載 PDF 文件。它使用 PdfDocument.FromFile()從指定的文件創建PdfDocument**對象的方法。

2. 提取所有文字

接下來,它將從加載的 PDF 文件中提取所有文字內容。pdfDocument.ExtractAllText()**方法將 PDF 中的所有文字作為單一字符串返回。

3. 顯示提取的文字

最後,提取的文字會存儲在 text 變數中。代碼使用 Console.WriteLine 將提取的文字打印到控制台。(文字)** 方法。

輸出

如何使用 iTextSharp 在 C# 中閱讀 PDF 文件:: 圖 6 - 主控台輸出:使用 IronPDF 從 PDF 文件 "What_is_pdf.pdf" 中提取文本並將其以純文本顯示在主控台。

IronPDF 也提供一種方法可以逐頁從 PDF 文件中提取文字。

逐頁閱讀 PDF 文件

以下程式碼將使用 IronPDF 逐頁閱讀 PDF 文件。

using IronPdf;
 public static void Main(string [] args)
 {
     StringBuilder sb = new StringBuilder();
     using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     for (int index = 0; index < pdf.PageCount; index++)
     {
         sb.Append (pdf.ExtractTextFromPage(index));
     }
     Console.WriteLine(sb.ToString());
 }
using IronPdf;
 public static void Main(string [] args)
 {
     StringBuilder sb = new StringBuilder();
     using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     for (int index = 0; index < pdf.PageCount; index++)
     {
         sb.Append (pdf.ExtractTextFromPage(index));
     }
     Console.WriteLine(sb.ToString());
 }
Imports IronPdf
 Public Shared Sub Main(ByVal args() As String)
	 Dim sb As New StringBuilder()
	 Using pdf As PdfDocument = PdfDocument.FromFile("D:/What_is_pdf.pdf")
		 For index As Integer = 0 To pdf.PageCount - 1
			 sb.Append(pdf.ExtractTextFromPage(index))
		 Next index
		 Console.WriteLine(sb.ToString())
	 End Using
 End Sub
VB   C#

上面的程式碼讀取名為「What_is_pdf.pdf」的 PDF 檔案,從每一頁提取文本內容,並將合併的文本輸出到控制臺。

程式碼說明

1. 初始化和 PDF 加載

創建一個名為 sb 的 StringBuilder 來累積從 PDF 提取的文本。使用 using 語句確保了資源的正確釋放。一個名為 PDF 的 PdfDocument 對象通過使用 PdfDocument.FromFile 方法從路徑 "D:/What_is_pdf.pdf" 加載 PDF 文件來創建。

2. 從頁面提取文本

for 迴圈遍歷所加載 PDF 文檔的每一頁。對於每頁 (由索引編索引),它使用 pdf.ExtractTextFromPage 提取文本內容。(索引)。提取的文本通過sb.Append附加到StringBuilder中。().**

3. 顯示累積的文字

最後,使用 sb.ToString 將累積的文字轉換為單一字串()整個提取的文字使用 Console.WriteLine 打印到控制台()** 方法。

結論

總之,使用C#處理PDF需要理解一些基本元素,如位元組陣列、文件信息字典、交叉引用表、新檔案實例和靜態位元組。第一段使用iTextSharp的代碼展示了一個功能性的做法,而第二段使用IronPDF提供了一個更簡單且更高效的方法。 IronPDF易於使用的 API 簡化了涉及交叉引用表、頁面字典和間接引用的任務。無論是處理文檔信息中的交叉引用還是安全 PDF 的私鑰方面,IronPDF 都是一個多功能的解決方案。

尋求探索的開發人員 IronPDF. 客戶滿意度是 IronPDF 提供的核心,確保開發者在他們的 PDF 相關任務中找到價值和效率,使其成為尋求可靠且功能豐富的 PDF 庫的人的一個引人注目的選擇。

如需了解更多如何使用 IronPDF,請參考此 文檔 連結

< 上一頁
如何使用 iTextSharp 在 C# 中為 PDF 添加頁碼
下一個 >
iTextSharp 讀取 PDF 替代方案(開發人員教程)

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

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