使用 IRONPDF

如何在C#中讀取PDF表格

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

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

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

IronPDF - C# PDF 圖書館

IronPDF 是一個 C# .NET 庫。,這有助於開發人員在其軟體應用程式中輕鬆地閱讀、創建和編輯 PDF 文件。其 Chromium 引擎以準確和快速的方式渲染 PDF 文件。它允許開發人員無縫地從不同格式轉換為 PDF,反之亦然。它支持最新的 .NET 7 Framework,以及 .NET Framework 6、5、4,.NET Core 和 Standard。

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

一些重要功能包括

保存並 列印 PDF 文件

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

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

  1. Visual Studio - Visual Studio 2022 是 C# 開發的官方 IDE,必須安裝在計算機上。請從以下位置下載並安裝 Visual Studio 網站.

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

    • 打開 Visual Studio 2022,然後點擊 建立新專案 按鈕

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

      Visual Studio 的開始畫面

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

    ![如何在 C# 中讀取 PDF 表格,圖 2:在 Visual Studio 中創建一個新的控制台應用程序](/static-assets/pdf/blog/csharp-read-pdf-table-tutorial/csharp-read-pdf-table-tutorial-2.webp)
    
    **在 Visual Studio 中創建一個新的控制台應用程式**
  • 接下來,輸入您的專案名稱 "ReadPDFTable" 並點擊下一步

    ![如何在 C# 中讀取 PDF 表格,圖 3:配置新創建的應用程式](/static-assets/pdf/blog/csharp-read-pdf-table-tutorial/csharp-read-pdf-table-tutorial-3.webp)
    
    **配置新創建的應用程式**
  • 為您的項目選擇 ".NET Framework 6 long-term support"。

    ![如何在 C# 中读取 PDF 表格,圖 4:選擇 .NET Framework](/static-assets/pdf/blog/csharp-read-pdf-table-tutorial/csharp-read-pdf-table-tutorial-4.webp)
    
    **選擇一個 .NET 框架**
  • 點擊 建立 按鈕,並且會創建一個控制台項目。現在,我們準備好以程式化方式從 PDF 文件中提取表格數據。
  1. 安裝 IronPDF - 有三種不同的方法來安裝IronPDF庫。它們如下:

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

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

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

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

                **工具 & 管理 NuGet 套件**
      • 一旦打開 NuGet 套件管理器,瀏覽 IronPDF 並點擊安裝,如下所示:

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

        工具與管理NuGet套件

    • 直接下載NuGet套件。 另一種簡單下載和安裝IronPDF的方法是訪問其頁面在 NuGet網站
    • 下載 IronPDF .DLL 庫。 您也可以從 IronPDF 網站下載 IronPDF。點擊: IronPDF DLL下載 下載並安裝它。記住,您將必須在您的專案中參考.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#

這裡,將從包含表格的HTML字串創建PDF文件,然後使用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 文件中提取數據的更多詳細信息。 程式碼範例輸出也可以保存為 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 在開發過程中是免費的,並可用於商業用途。它提供了一個 免費試用授權 測試該庫的全部功能。您可以在此連結中找到更詳細的信息。

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

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

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