使用 IRONPDF

如何在C#中讀取PDF表格

已更新 2024年3月3日
分享:

從 PDF 文件中提取數據在 C# 中可能相當具有挑戰性。 數據可以是文本、圖像、圖表、圖形、表格等形式。有時,業務分析師需要提取數據以進行數據分析並根據這些結果做出決策。 IronPDF C# PDF Library 是從 PDF 文件中提取數據的絕佳解決方案。

本文將示範如何使用IronPDF庫在C#中從PDF文件中提取表格數據。

IronPDF - C# PDF 程式庫

IronPDF 是一個用於在 .NET 中生成 PDF 的 C# .NET 函式庫解決方案。,幫助開發人員在他們的軟體應用程式中輕鬆讀取、建立和編輯 PDF 文件。 其Chromium引擎以準確且高速的方式渲染PDF文件。 它允許開發人員在不同格式與 PDF 之間無縫轉換。 它支持最新的.NET 7框架,以及.NET Framework 6、5、4、.NET Core和Standard。

此外,IronPDF .NET API 還使開發人員能輕鬆操作和編輯 PDF、添加頁眉和頁腳,以及從 PDF 中提取文本、圖像和表格。

一些重要功能包括

使用 IronPDF 函式庫在 C# 中提取表格數據的步驟

要從 PDF 文件中提取表格數據,我們需要在本地計算機系統上安裝以下組件:

  1. Visual Studio - Visual Studio 2022 是 C# 開發的官方 IDE,必須安裝在電腦上。 請從該處下載並安裝它Visual Studio 網站.

  2. 創建項目 - 建立一個用於提取數據的控制台應用程式。 按照以下步驟建立專案:

    • 打開 Visual Studio 2022,然後點擊 Create a new project 按鈕

      如何在C#中讀取PDF表格,圖1:Visual Studio的啟動畫面

    Visual Studio 的啟動畫面

    • 接下來,選擇 C# 控制台應用程式,然後點擊下一步。

      如何在 C# 中讀取 PDF 表格,圖 2:在 Visual Studio 中創建一個新的控制台應用程序

    在 Visual Studio 中創建新的主控台應用程式

    • 接下來,輸入您的專案名稱 "ReadPDFTable",然後點擊下一步。

      如何在 C# 中讀取 PDF 表格,圖 3:配置新創建的應用程式

    配置新創建的應用程式

    • 為您的專案選擇 ".NET Framework 6 長期支援"。

      如何在 C# 中读取 PDF 表格,圖 4:選擇 .NET Framework

    選擇 .NET Framework

    • 單擊 Create 按鈕,然後將創建主控台專案。 現在,我們已準備好以程式化方式從 PDF 文檔中提取表格數據。
  3. 安裝 IronPDF - 有三種不同的方法可以安裝 IronPDF 程式庫。 它們如下:

    • 使用 Visual Studio。 Visual Studio 包含 NuGet 套件管理器,這有助於在 C# 應用程式中安裝所有 NuGet 套件。

      • 在頂部菜單中點擊工具,或

      • 在解決方案總管中右鍵點擊專案

        如何在 C# 中讀取 PDF 表格,圖 5:工具與管理 NuGet 套件

    工具與管理 NuGet 套件

    - 打開 NuGet 套件管理器後,瀏覽 IronPDF 並點擊安裝,如下所示:
    
         ![如何在 C# 中讀取 PDF 表格,第 6 圖:工具和管理 NuGet 套件](/static-assets/pdf/blog/csharp-read-pdf-table-tutorial/csharp-read-pdf-table-tutorial-6.webp)

    工具與管理 NuGet 套件

    • 直接下載 NuGet 套件。 另一種下載和安裝 IronPDF 的簡單方法是訪問其NuGet 套件頁面.

    • 下載 IronPDF .DLL 函式庫。 IronPDF 也可以從Official IronPDF Website. 請記得在專案中引用該 .DLL 檔以使用它。

建立包含表格資料的 PDF 文件

在創建任何內容之前,需要將 IronPDF 命名空間添加到文件中,並設置許可證金鑰以使用 IronPDF 庫中的 ExtractText 方法。

using IronPdf;

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY";
using IronPdf;

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY";
Imports IronPdf

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY"
VB   C#

在這裡,PDF 文件將從包含表格的 HTML 字串中創建,然後使用 IronPDF 提取該數據。 HTML 存儲在字符串變量中,代碼如下:

string HTML = "<html>" +
        "<style>" +
            "table, th, td {" +
                "border:1px solid black;" +
            "}" +
        "</style>" +
        "<body>" +
            "<h1>A Simple table example</h2>" +
            "<table>" +
                "<tr>" +
                    "<th>Company</th>" +
                    "<th>Contact</th>" +
                    "<th>Country</th>" +
                "</tr>" +
                "<tr>" +
                    "<td>Alfreds Futterkiste</td>" +
                    "<td>Maria Anders</td>" +
                    "<td>Germany</td>" +
                "</tr>" +
                "<tr>" +
                    "<td>Centro comercial Moctezuma</td>" +
                    "<td>Francisco Chang</td>" +
                    "<td>Mexico</td>" +
                "</tr>" +
            "</table>" +
            "<p>To understand the example better, we have added borders to the table.</p>" +
        "</body>" +
     "</html>";
string HTML = "<html>" +
        "<style>" +
            "table, th, td {" +
                "border:1px solid black;" +
            "}" +
        "</style>" +
        "<body>" +
            "<h1>A Simple table example</h2>" +
            "<table>" +
                "<tr>" +
                    "<th>Company</th>" +
                    "<th>Contact</th>" +
                    "<th>Country</th>" +
                "</tr>" +
                "<tr>" +
                    "<td>Alfreds Futterkiste</td>" +
                    "<td>Maria Anders</td>" +
                    "<td>Germany</td>" +
                "</tr>" +
                "<tr>" +
                    "<td>Centro comercial Moctezuma</td>" +
                    "<td>Francisco Chang</td>" +
                    "<td>Mexico</td>" +
                "</tr>" +
            "</table>" +
            "<p>To understand the example better, we have added borders to the table.</p>" +
        "</body>" +
     "</html>";
Dim HTML As String = "<html>" & "<style>" & "table, th, td {" & "border:1px solid black;" & "}" & "</style>" & "<body>" & "<h1>A Simple table example</h2>" & "<table>" & "<tr>" & "<th>Company</th>" & "<th>Contact</th>" & "<th>Country</th>" & "</tr>" & "<tr>" & "<td>Alfreds Futterkiste</td>" & "<td>Maria Anders</td>" & "<td>Germany</td>" & "</tr>" & "<tr>" & "<td>Centro comercial Moctezuma</td>" & "<td>Francisco Chang</td>" & "<td>Mexico</td>" & "</tr>" & "</table>" & "<p>To understand the example better, we have added borders to the table.</p>" & "</body>" & "</html>"
VB   C#

接下來,該ChromePdfRenderer用於從 HTML 字串創建 PDF。 代碼如下:

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(HTML);
pdfDocument.SaveAs("table_example.pdf");
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(HTML);
pdfDocument.SaveAs("table_example.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(HTML)
pdfDocument.SaveAs("table_example.pdf")
VB   C#

保存為方法將保存PdfDocument將物件轉換為名為 "table_example.pdf" 的 PDF 檔案。 保存的文件如下所示:

如何在 C# 中讀取 PDF 表格,圖 7:在 NuGet 套件管理器 UI 中搜尋 IronPDF

在 NuGet 套件管理器 UI 中搜尋 IronPDF

使用 IronPDF 從 PDF 文件中提取表格數據

若要從 PDF 表格中提取數據,使用 PdfDocument 對象打開文檔,然後使用提取所有文字提取數據以進行進一步分析的方法。 以下程式碼展示了如何完成此任務:

PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();
PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();
Dim pdfDocument As New PdfDocument("table_example.pdf")
Dim text As String = pdfDocument.ExtractAllText()
VB   C#

上述程式碼使用 ExtractAllText 方法分析整個 PDF 文件,並將提取的數據(包括表格數據)返回至一個字符串變數中。 變數的值然後可以顯示出來或儲存在文件中以供日後使用。 以下程式碼將其顯示在螢幕上:

Console.WriteLine("The extracted Text is:\n" + text);
Console.WriteLine("The extracted Text is:\n" + text);
Imports Microsoft.VisualBasic

Console.WriteLine("The extracted Text is:" & vbLf & text)
VB   C#

如何在 C# 中讀取 PDF 表格,圖 8:要提取文本的 PDF 文件

要提取文字的 PDF 檔案

從擷取的文本內容中提取表格數據

C#提供了一個String.Split方法,可以根據分隔符來分割字串。 以下程式碼將幫助您將輸出限制為僅表格數據。

string [] textList = text.Split("\n");
foreach (string textItem in textList)
{
    if (textItem.Contains("."))
    {
        continue;
    }
    else
    {
        Console.WriteLine(textItem);
    }
}
string [] textList = text.Split("\n");
foreach (string textItem in textList)
{
    if (textItem.Contains("."))
    {
        continue;
    }
    else
    {
        Console.WriteLine(textItem);
    }
}
Imports Microsoft.VisualBasic

Dim textList() As String = text.Split(vbLf)
For Each textItem As String In textList
	If textItem.Contains(".") Then
		Continue For
	Else
		Console.WriteLine(textItem)
	End If
Next textItem
VB   C#

這個簡單的代碼範例幫助從提取的文本中僅提取表格單元格數據。 首先,文本行被分割並儲存在字串陣列中。 然後,每個數組元素進行迭代,並跳過那些以句號“.”結束的元素。 在大多數情況下,僅從提取的數據中檢索表格數據,儘管它可能也會檢索其他行。 輸出如下:

如何在 C# 中讀取 PDF 表格,圖 9:控制台顯示提取的文本

控制台顯示擷取的文本

從上面的截圖可以看出,表格數據格式和邏輯結構在 Console.WriteLine 方法輸出中得到了保留。 您可以在此處找到有關如何使用 IronPDF 從 PDF 文檔中提取數據的更多詳情從PDF中提取資料的C#程式碼範例.

輸出也可以保存到 CSV 文件中,稍後可以進行格式化和編輯,以進行更多的數據分析。 代碼如下:

using (StreamWriter file = new StreamWriter("table_example.csv", false))
{
    string [] textList = text.Split("\n");
    foreach (string textItem in textList)
    {
        if (textItem.Contains("."))
        {
            continue;
        }
        else
        {
            file.WriteLine(textItem);
        }
    }
}
using (StreamWriter file = new StreamWriter("table_example.csv", false))
{
    string [] textList = text.Split("\n");
    foreach (string textItem in textList)
    {
        if (textItem.Contains("."))
        {
            continue;
        }
        else
        {
            file.WriteLine(textItem);
        }
    }
}
Imports Microsoft.VisualBasic

Using file As New StreamWriter("table_example.csv", False)
	Dim textList() As String = text.Split(vbLf)
	For Each textItem As String In textList
		If textItem.Contains(".") Then
			Continue For
		Else
			file.WriteLine(textItem)
		End If
	Next textItem
End Using
VB   C#

輸出將保存為CSV檔案,其中每個textItem將是一列。

摘要

本文演示了如何使用 IronPDF 從 PDF 文件中提取數據和表格。 IronPDF提供多種有用的選項來從PDF文件中提取文字。 它提供了提取頁面文字方法,允許從特定頁面提取數據。 IronPDF 還支持將不同格式轉換為 PDF,例如Markdown 檔案DOCX 文件以及從PDF轉換為不同格式。 這使開發人員能夠輕鬆地將 PDF 功能整合到應用程式開發過程中。 此外,它不需要 Adobe Acrobat Reader 就能查看和編輯 PDF 文件。

IronPDF 在開發階段免費,可授權用於商業用途。 提供了一個IronPDF 測試用免費試用許可證以測試該庫的全部功能。 您可以在此連結找到更詳細的資訊。

里根普恩

里根普恩

軟體工程師

 LinkedIn

Regan 畢業於雷丁大學,擁有電子工程學士學位。在加入 Iron Software 之前,他的工作角色讓他專注於單一任務;而他在 Iron Software 工作中最喜歡的是他所能承擔的工作範圍,無論是增加銷售價值、技術支持、產品開發或市場營銷。他喜歡了解開發人員如何使用 Iron Software 庫,並利用這些知識不斷改進文檔和開發產品。
< 上一頁
如何將 QR Code 轉換為 PDF
下一個 >
PDF 檢視器 C# Windows 應用程式(教程)