產品比較

iText7 在 C# 中讀取 PDF 的替代方案(VS IronPDF)

PDF 是由 Adobe Acrobat Reader 創建的可移植文件格式,廣泛用於透過互聯網以數位方式分享資訊。 它保留了數據的格式,並提供設置安全許可和密碼保護等功能。 作為 C# 開發人員,您可能曾遇到需要在您的軟體應用程式中整合 PDF 功能的情況。 從頭開始建構可能是一項耗時且繁瑣的任務。 因此,考慮到應用程式的效能、效果和效率,從頭開始創建新服務或使用預建庫之間的權衡具有顯著意義。

有多種適用於 C# 的 PDF 庫。 在本文中,我們將探討兩個在 C# 中用於閱讀 PDF 文檔的最受歡迎的 PDF 庫。

iText 軟體

iText 7,以前稱為 iText 7 Core,是一個用於在 .NET C# 和 Java 中編程 PDF 文件的 PDF 庫。 它作為開放源代碼許可(AGPL)提供,並可用於商業應用授權。

iText Core 是一個高階 API,提供簡單的方法以各種可能的方式生成和編輯 PDF。 使用 iText 7 Core,您可以拆分、合併、註釋、填寫表單、數位簽名以及對 PDF 文件執行更多操作。 iText 7 提供一個HTML 轉 PDF 轉換器

IronPDF

了解更多關於 IronPDF 是一個 .NET 和 .NET Framework C# 及 Java API,用於從 HTML、CSS 和 JavaScript 生成 PDF 文件,可以從 URL、HTML 文件或 HTML 字串生成。 IronPDF允許您操作現有的PDF文件,如拆分、合併、註解、數位簽名等更多功能。

IronPDF 擁有 50 多項功能來創建、閱讀和編輯 PDF 文件。 當您需要使用 Adobe Acrobat Reader 生成高品質且像素完美的專業 PDF 文件時,它優先考慮速度、易用性和準確性。 API 擁有完善的文件,並且可以在其代碼範例頁面上找到許多範例源代碼。

建立主控台應用程式

我們將使用 Visual Studio 2022 IDE 來開始建立應用程式。 Visual Studio 是 C# 開發的官方集成開發環境,您必須安裝它。 如果未安裝,您可以從Microsoft Visual Studio 網站下載。

以下步驟將創建一個名為「DemoApp」的新專案。

  1. 打開 Visual Studio,然後點擊「建立新專案」。

    Itext7 在 C# 中讀取 PDF 的替代方案(VS IronPDF)圖 1 - 新專案

  2. 選擇「控制台應用程式」並點擊「下一步」。

    Itext7 在 C# 中讀取 PDF 的替代方案 (VS IronPDF) 圖 2

  3. 設定專案名稱。

    Itext7 在 C# 中讀取 PDF 的替代方案 (VS IronPDF) 圖 3

  4. 選擇 .NET 版本。 選擇穩定版本 .NET 6.0。

    Itext7 阅读 PDF 的 C# 替代方案(VS IronPDF)图 4

安裝 IronPDF 庫

創建專案後,需要在專案中安裝IronPDF庫才能使用它。 按照以下步驟進行安裝。

  1. 從方案總管或工具中打開 NuGet 套件管理器。

    Itext7 在 C# 中讀取 PDF 的替代方案(對比 IronPDF)圖 5

  2. 瀏覽 IronPDF 庫,然後為當前項目選擇它。 點擊安裝。

    Itext7 讀取 PDF 在 C# 替代方案(VS IronPDF)圖 6

    在 Program.cs 文件的頂部添加以下命名空間

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

安裝 iText 7 庫

一旦專案建立,需在專案中安裝iText 7函式庫以使用它。 按照步驟進行安裝。

  1. 從解決方案資源管理器或工具中開啟 NuGet 套件管理員。

    Itext7 在 C# 中讀取 PDF 的替代方案(VS IronPDF)圖 7

  2. 瀏覽 iText 7 庫,並選擇它作為當前專案。 點擊安裝。

    Itext7 使用 C# 讀取 PDF 的替代方案 (VS IronPDF) 圖 8

    在 Program.cs 文件的頂部添加以下命名空間

using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf;
Imports iText.Kernel.Pdf.Canvas.Parser.Listener
Imports iText.Kernel.Pdf.Canvas.Parser
Imports iText.Kernel.Pdf
$vbLabelText   $csharpLabel

打開 PDF 檔案

我們將使用以下 PDF 文件來提取文本。 這是一份兩頁的 PDF 文件。

Itext7 在 C# 中讀取 PDF 的替代方案(VS IronPDF)圖 9

使用iText庫

使用 iText 庫開啟 PDF 文件是一個兩步驟的過程。 首先,我們建立一個PdfReader對象,並將文件位置作為參數傳遞。 然後我們使用PdfDocument類別來建立一個新的 PDF 文件。 代碼如下:

PdfReader pdfReader = new PdfReader("sample.pdf");
PdfDocument pdfDoc = new PdfDocument(pdfReader);
PdfReader pdfReader = new PdfReader("sample.pdf");
PdfDocument pdfDoc = new PdfDocument(pdfReader);
Dim pdfReader As New PdfReader("sample.pdf")
Dim pdfDoc As New PdfDocument(pdfReader)
$vbLabelText   $csharpLabel

使用 IronPDF

使用 IronPDF 開啟 PDF 檔案很簡單。 使用PdfDocument類別的FromFile方法從任何檔案位置打開PDF。 以下這行代碼打開一個 PDF 文件以讀取數據:

var pdf = PdfDocument.FromFile("sample.pdf");
var pdf = PdfDocument.FromFile("sample.pdf");
Dim pdf = PdfDocument.FromFile("sample.pdf")
$vbLabelText   $csharpLabel

從 PDF 文件讀取資料

使用 iText7 庫

在 iText 7 庫中讀取 PDF 數據並不那麼簡單。 我們必須手動遍歷 PDF 文件的每一頁以從每一頁中提取文本。 以下原始碼有助於逐頁從 PDF 文件中提取文字:

for (int page = 1; page <= pdfDoc.GetNumberOfPages(); page++)
{
    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
    string pageContent = PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(page), strategy);
    Console.WriteLine(pageContent);
}
pdfDoc.Close();
pdfReader.Close();
for (int page = 1; page <= pdfDoc.GetNumberOfPages(); page++)
{
    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
    string pageContent = PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(page), strategy);
    Console.WriteLine(pageContent);
}
pdfDoc.Close();
pdfReader.Close();
Dim page As Integer = 1
Do While page <= pdfDoc.GetNumberOfPages()
	Dim strategy As ITextExtractionStrategy = New SimpleTextExtractionStrategy()
	Dim pageContent As String = PdfTextExtractor.GetTextFromPage(pdfDoc.GetPage(page), strategy)
	Console.WriteLine(pageContent)
	page += 1
Loop
pdfDoc.Close()
pdfReader.Close()
$vbLabelText   $csharpLabel

上面的程式碼中有很多事情正在進行。 首先,我們宣告文字提取策略,然後我們使用PdfExtractor類別的GetTextFromPage方法來讀取文本。 此方法接受兩個參數:第一個是 PDF 文件頁面,第二個是策略。 要獲取PDF文件頁面,請使用PdfDocument的實例調用GetPage方法,並將頁碼作為參數傳遞。 輸出以字串形式返回,然後顯示在控制台輸出屏幕上。 最後,PDFReaderPdfDocument 物件被關閉。 此外,請查看使用 iText7 從 PDF 提取文字的以下程式碼範例。

輸出

Itext7 讀取 PDF 在 C# 替代選項 (VS IronPDF) 圖示 10

使用 IronPDF

就像打開 PDF 文件只需一行代碼一樣,從 PDF 文件中讀取文本也是一行代碼的過程。 PDFDocument 類別提供 ExtractAllText 方法來讀取 PDF 的全部內容Console.WriteLine 用於將文本顯示在螢幕上。 代碼如下:

string text = pdf.ExtractAllText();
Console.WriteLine(text);
string text = pdf.ExtractAllText();
Console.WriteLine(text);
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
$vbLabelText   $csharpLabel

輸出

Itext7 在 C# 中的 PDF 閱讀替代方案 (VS IronPDF) 圖 11

輸出準確無誤。 但是,要使用ExtractAllText方法,您需要持有许可证,因為它僅在生產模式下運作。 您可以從IronPDF 試用授權頁面獲取有效期30天的試用授權密鑰。

比較

相比之下,兩個庫在從 PDF 文件中提取文本時都能給出 100% 精確的結果。 在準確性方面,它們是相同的。 然而,IronPDF 在性能和代碼可讀性方面更具效率。

IronPDF 只需兩行代碼即可完成與 iText 相同的任務。 它提供開箱即用的文本提取方法,無需實施任何額外的邏輯。 iText 代碼有些棘手,您必須在開啟 PDF 文件時關閉創建的兩個實例。 然而,IronPDF在任務執行後會自動清除記憶體。

摘要

在本文中,我們探討了如何使用iText庫在C#中讀取PDF文件,並將其與IronPDF進行比較。 這兩個函式庫都提供準確的結果,並提供多種 PDF 操作方法。 您可以使用這兩個庫來創建、編輯和讀取PDF文件中的數據。

iText 是開源且免費使用的,但有一些限制。 它可以獲得商業使用授權。 IronPDF 也可以免費使用,並且可以取得商業活動授權,提供30 天免費試用

下載 IronPDF 並試用一下

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
如何使用Itextsharp將PDF轉換為圖像
下一個 >
IronPDF 與 Foxit PDF SDK 的比較