使用 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 測試用免費試用許可證以測試該庫的全部功能。 您可以在此連結找到更詳細的資訊。

< 上一頁
如何將 QR Code 轉換為 PDF
下一個 >
PDF 檢視器 C# Windows 應用程式(教程)

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

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