產品比較

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

發佈 2024年4月3日
分享:

在今天的數位時代,可攜式文件格式 (PDF)文件因其平臺獨立性和一致的格式而成為文件交換的標準。 iTextSharp 庫作為一個強大的庫出現,無縫地與 PDF 進行交互,適用於使用 C# 的開發人員。 在本文中,我們將學習如何使用讀取 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 程式庫

使用 Visual Studio 開啟你的 C# 專案。 在頂部選單中,轉到「檢視」,然後選擇「套件管理器主控台」。這將在 Visual Studio 視窗的底部打開套件管理器主控台。

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

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

Install-Package itext7

此命令從 NuGet 封裝庫中提取最新版本的 iTextSharp 並將其安裝到您的專案中。 等待安裝過程完成。 套件管理器主控台將顯示關於安裝進度的資訊。

如何在 C# 中使用 iTextSharp 讀取 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. 文件存在性檢查

如果(File.Exists(文件名稱)) 條件會檢查指定的檔案是否存在。 如果檔案存在,則執行隨後的程式碼塊。

3. PDF 文件處理

if 區塊內,它使用 PdfReader 物件開啟 PDF 檔案。 然後,使用 PdfReader 創建一個 PdfDocument 文件實例。 for 迴圈迭代遍歷 PDF 文件的每一頁。

4. 從 PDF 文件中提取文本

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

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

顯示累積的文本

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

輸出

提取的 PDF 文本輸出如下:

如何使用iTextSharp在C#中讀取PDF文件:: 圖3 - 終端輸出: 使用iTextSharp從PDF文件What_is_pdf.pdf中提取文字,並在終端中以純文字顯示。

這樣一來,我們就可以讀取 PDF 文件的內容。由於會創建多個實例,這種方法較為複雜且效率較低。 讓我們來探索一種更加用戶友好且高效的替代方法。

IronPDF 介紹

IronPDF 功能與優勢是一個多功能且高效能的 C# 程式庫,旨在簡化和加強以程式自動建立PDF文件, 編輯PDFs,和渲染 PDF 文件在 .NET 應用程式中。 IronPDF 讓開發人員能輕鬆地將 PDF 相關功能無縫整合到他們的專案中,專注於易用性和豐富的功能特性。 該程式庫支持多種PDF操作,包括從頭開始創建PDF文件、轉換PDF文檔等。將HTML內容轉換成PDF,和從 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 程式包解決方案”通过在 NuGet 程式包管理器的搜索栏中搜索“IronPDF”来安装 IronPDF,然后选择项目并点击“安装”按钮。

使用 IronPDF 閱讀 PDF 文件

現在,我們使用閱讀相同的 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 語句確保資源的正確處置。 使用 PdfDocument.FromFile 方法從路徑 "D:/What_is_pdf.pdf" 加載 PDF 檔案,創建一個名為 PDF 的 PdfDocument 對象。

2. 從頁面提取文本

for 迴圈遍歷加載的 PDF 文件的每一頁。 每頁(由索引編索引),它使用 pdf.ExtractTextFromPage 提取文本內容。(索引). 提取的文字使用 sb.Append 附加到 StringBuilder。().

3. 顯示累計文本

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

結論

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

開發人員尋求探索IronPDF Licensing Information. IronPDF 的產品提供以客戶滿意度為首要任務,確保開發者在 PDF 相關任務中找到價值和效率,使其成為尋求可靠且功能豐富的 PDF 庫的人的引人注目的選擇。

如需了解有關如何使用IronPDF的更多信息,請參閱此內容。IronPDF 文件檔案連結

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

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

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