使用 IRONPDF

如何在C#中讀取PDF表格

Kannaopat Udonpant
坎納帕特·烏頓潘
2023年3月25日
已更新 2024年3月3日
分享:

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

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

IronPDF - C# PDF 庫

IronPDF 是一個 C# .NET 庫解決方案,用於在 .NET 中生成 PDF,可幫助開發人員在其軟體應用程式中輕鬆讀取、創建和編輯 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,然後點擊建立新專案按鈕

    如何在 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

    • 點擊建立按鈕,並且控制台專案將被建立。 現在,我們已準備好以程式化方式從 PDF 文檔中提取表格數據。
  3. 安裝 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 網站下載。 請記得在專案中引用該 .DLL 檔以使用它。

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

在創建任何東西之前,需要將 IronPDF 命名空間添加到檔案中,並設置許可證密鑰以使用 IronPDF 庫中的ExtractText方法。

using IronPdf;

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

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

在這裡,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>";

接下來,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");

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

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

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

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

要從 PDF 表格中提取數據,請使用PdfDocument物件打開文檔,然後使用ExtractAllText方法檢索數據以進行進一步分析。 以下程式碼展示了如何完成此任務:

PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();
PdfDocument pdfDocument = new PdfDocument("table_example.pdf");
string text = pdfDocument.ExtractAllText();

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

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

如何在 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);
    }
}

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

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

控制台顯示提取的文本

從上面的截圖可以看出,表格數據格式和邏輯結構在 Console.WriteLine 方法輸出中得到了保留。 您可以在此使用 IronPDF 提取 PDF 中資料的 C# 範例程式碼找到有關如何從 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);
        }
    }
}

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

摘要

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

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

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
如何將 QR Code 轉換為 PDF
下一個 >
PDF 檢視器 C# Windows 應用程式(教程)