IRONSOFTWAREHOME
使用IRONPDF

How to Create an Azure PDF Generator Using IronPDF

Curtis Chau
Curtis Chau
Updated: 2026年4月23日

在許多行業中,PDF檔案是分享結構化文件的首選格式,例如報告、發票和資料表。 然而,從PDF中提取資料,尤其是涉及表格時,由於PDF格式的特性,可能會具有挑戰性。 不同於結構化資料格式,PDF主要是為了展示,並非用來提取資料。

不過,使用IronPDF,這是一個強大的C# PDF .NET程式庫,您可以輕鬆從PDF中直接提取像表格這樣的結構化資料,並在您的.NET應用程式中進行處理。 本文將逐步指導您如何使用IronPDF從PDF檔案中提取表格資料。

什麼時候需要從PDF文件中提取表格?

表格是一種便捷的結構化和展示資料的方式,無論是進行庫存管理、資料輸入,還是記錄降雨量等資料。因此,可能有許多原因需要從PDF文件中提取表格及其資料。 一些最常見的使用情境包括:

  • **自動化資料輸入:**從PDF報告或發票中的表格提取資料可以自動化將資料填入資料庫或試算表的過程。
  • **資料分析:**企業常常收到PDF格式的結構化報告。 提取表格可以讓您以程式方式分析這些資料。
  • **文件轉換:**將表格資料提取至更易於存取的格式如Excel或CSV,便於操作、儲存和分享。
  • **審計和合規:**對於法律或財務記錄,程式化地從PDF文件中提取表格資料可以協助自動化審核並確保合規。

PDF表格是如何運作的?

PDF檔案格式並不提供任何原生的能力來以結構化格式儲存資料,例如表格。 我們在今天的例子中使用的表格是先用HTML建立,然後轉換為PDF格式的。 表格作為文字和線條呈現,因此提取表格資料通常需要對內容進行解析和解釋,除非您使用OCR軟體,例如IronOCR。

How to Extract Table Data from a PDF File in C#

在我們探討IronPDF如何處理這項任務之前,讓我們先探討下能夠處理PDF提取的線上工具。 要使用線上PDF工具從PDF文件中提取表格,請遵循以下步驟:

  1. 前往免費線上PDF提取工具
  2. 上傳包含表格的PDF
  3. 查看並下載結果

步驟一:前往免費線上PDF提取工具

今天,我們將使用Docsumo作為我們的線上PDF工具範例。 Docsumo是一個線上PDF文件AI,提供免費的PDF表格提取工具。

在C#中從PDF檔案中提取表格資料:圖1

步驟二:上傳包含表格的PDF

現在,點擊"上傳文件"按鈕上傳您的PDF文件進行提取。 工具會立即開始處理您的PDF。

在C#中從PDF檔案中提取表格資料:圖2

步驟三:查看並下載結果

一旦Docsumo完成PDF的處理,就會顯示提取的表格。 然後,您可以對表格結構進行調整,例如新增和刪除行。 在此,您可以將表格下載為另一個PDF、XLS、JSON或文字格式。

在C#中從PDF檔案中提取表格資料:圖3

使用IronPDF提取表格資料

IronPDF允許您從PDF中提取資料、文字及圖形,然後使用這些資料程式化地重建表格。 為此,您首先需要從PDF中的表格中提取文字內容,然後使用這些文字解析表格為行和列。 在開始提取表格之前,讓我們先來看看IronPDF的ExtractAllText()方法是如何通過提取表中的資料運作的:

using IronPDF;

class Program
{
    static void Main(string[] args)
    {
        // Load the PDF document
        PdfDocument pdf = PdfDocument.FromFile("example.pdf");
        
        // Extract all text from the PDF
        string text = pdf.ExtractAllText();
        
        // Output the extracted text to the console
        Console.WriteLine(text);
    }
}

在C#中從PDF檔案中提取表格資料:圖4

在這個例子中,我們已經使用PdfDocument類載入了PDF文件,然後使用**ExtractAllText()**方法提取了文件中的所有文字,最後在控制台顯示了文字。

使用IronPDF從文字中提取表格資料

從PDF中提取文字之後,表格將作為純文字中的一系列行和列出現。 您可以根據換行符(\n)來分割這個文字,然後根據一致的間距或分隔符如逗號或標籤進一步將行分割為列。 以下是一個基本的範例,如何從文字解析表格:

using IronPDF;
using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        // Load the PDF document
        PdfDocument pdf = PdfDocument.FromFile("table.pdf");
        
        // Extract all text from the PDF
        string text = pdf.ExtractAllText();
        
        // Split the text into lines (rows)
        string[] lines = text.Split('\n');
        
        foreach (string line in lines)
        {
            // Split the line into columns using the tab character
            string[] columns = line.Split('\t').Where(col => !string.IsNullOrWhiteSpace(col)).ToArray();
            Console.WriteLine("Row:");
            
            foreach (string column in columns)
            {
                Console.WriteLine("  " + column); // Output each column in the row
            }
        }
    }
}

在C#中從PDF檔案中提取表格資料:圖5

在這個範例中,我們採取了與之前相同的步驟來載入我們的PDF文件並提取文字。 然後,使用**text.Split('\n'),根據換行符將提取的文字分割為行,並將結果儲存在lines陣列中。 然後使用foreach迴圈遍歷陣列中的行,使用line.Split('\t'),使用標籤字元'\t'**作為分隔符進一步將行分割為列。 欄位陣列的下一部分,Where(col => !string.IsNullOrWhiteSpace(col)).ToArray(),過濾掉由於額外空格可能產生的空欄位,然後將欄位新增到欄位陣列中。

最後,我們將文字輸出到控制台視窗,並結構化為基本的行和列。

導出提取的表格資料至CSV

現在我們已經介紹了如何從PDF文件中提取表格,讓我們看看可以對提取的資料做什麼。 將提取的表格導出為CSV文件是一種處理表格資料並自動化執行如資料輸入等任務的有效方式。 在這個例子中,我們用模擬資料填充了一個表格,在這個例子中是某周的每日降雨量,從PDF中提取了表格,然後將其導出為CSV文件。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using IronPDF;

class Program
{
    static void Main(string[] args)
    {
        string pdfPath = "table.pdf";
        string csvPath = "output.csv";
        
        // Extract and parse table data
        var tableData = ExtractTableDataFromPdf(pdfPath);
        
        // Write the extracted data to a CSV file
        WriteDataToCsv(tableData, csvPath);
        Console.WriteLine($"Data extracted and saved to {csvPath}");
    }

    static List<string[]> ExtractTableDataFromPdf(string pdfPath)
    {
        var pdf = PdfDocument.FromFile(pdfPath);
        
        // Extract text from the first page
        var text = pdf.ExtractTextFromPage(0); 
        var rows = new List<string[]>();
        
        // Split text into lines (rows)
        var lines = text.Split('\n');
        
        // Variable to hold column values temporarily
        var tempColumns = new List<string>();
        
        foreach (var line in lines)
        {
            var trimmedLine = line.Trim();
            
            // Check for empty lines or lines that don't contain table data
            if (string.IsNullOrEmpty(trimmedLine) || trimmedLine.Contains("Header"))
            {
                continue;
            }
            
            // Split line into columns. Adjust this based on how columns are separated.
            var columns = trimmedLine.Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
            
            if (columns.Length > 0)
            {
                // Add columns to temporary list
                tempColumns.AddRange(columns);
                rows.Add(tempColumns.ToArray());
                tempColumns.Clear(); // Clear temporary list after adding to rows
            }
        }
        
        return rows;
    }

    static void WriteDataToCsv(List<string[]> data, string csvPath)
    {
        using (var writer = new StreamWriter(csvPath))
        {
            foreach (var row in data)
            {
                // Join columns with commas and quote each field to handle commas within data
                var csvRow = string.Join(",", row.Select(field => $"\"{field.Replace("\"", "\"\"")}\""));
                writer.WriteLine(csvRow);
            }
        }
    }
}

範例PDF文件

在C#中從PDF檔案中提取表格資料:圖6

輸出CSV文件

在C#中從PDF檔案中提取表格資料:圖7

如您所見,我們已成功將PDF表格導出為CSV。首先,我們載入了包含表格的PDF並建立了一個新的CSV文件路徑。 在此之後,我們使用該var tableData = ExtractTableDataFromPdf(pdfPath)行提取了表格,這裡調用了ExtractTableDataFromPdf()方法。 該方法提取表格所在的PDF頁面上的所有文字,並將其儲存在text變數中。

然後,我們將文字分割為行和列。 最後,從該分割過程返回結果後,我們調用該方法static void WriteDataToCsv(),該方法將提取的拆分後的文字使用StreamWriter寫入我們的CSV文件。

提示和最佳實踐

在處理PDF表格時,遵循一些基本的最佳實踐可以幫助確保您將遇到的錯誤或問題降至最低。

  • **預處理PDF:**如果可能,預先處理您的PDF以確保一致的格式,這可以簡化提取過程。
  • **驗證資料:**始終驗證提取的資料以確保其準確性和完整性。
  • **處理錯誤:**實施錯誤處理來管理文字提取或解析失敗的情況,例如將您的程式碼包裝在try-catch塊中。
  • **優化性能:**對於大容量PDF,考慮優化文字提取和解析以處理性能問題。

IronPDF授權

IronPDF提供不同的授權選項,允許您在承諾購買授權之前試用IronPDF提供的所有強大功能。

結論

使用IronPDF從PDF中提取表格是一種強大的方式,能夠自動化資料提取、促進分析以及將文件轉換為更易於存取的格式。 無論是處理簡單表格還是複雜、不規則的格式,IronPDF都提供了提取和處理表格資料所需的工具,效率極高。

借助IronPDF,您可以簡化自動化資料輸入、文件轉換和資料分析等工作流程。 IronPDF提供的靈活性和高級功能使其成為處理各種基於PDF的任務的寶貴工具。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起