如何在.NET中從PDF中提取資料
PDF 文件在商業領域無所不在; 現代的例子包括發票、報告、合約和手冊。 但是,透過程式設計從中獲取關鍵資訊可能很棘手。 PDF 文件關注的是內容的呈現方式,而不是資料的存取方式。
對於 .NET 開發人員來說, IronPDF是一個功能強大的 .NET PDF 程式庫,可以輕鬆地從 PDF 文件中提取資料。 您可以直接從輸入的 PDF 文件中提取文字、表格、表單欄位、圖像和附件。 無論您是自動化發票處理、建立知識庫或產生報告,此庫都能節省大量時間。
本指南將透過實際範例引導您完成提取文字內容、表格資料和表單欄位值的操作,並在每個程式碼片段後進行解釋,以便您可以將其應用到自己的專案中。
開始使用 IronPdf
透過 NuGet 套件管理器安裝 IronPDF 只需幾秒鐘。 開啟軟體包管理器控制台並執行:
Install-Package IronPdf
安裝完成後,即可立即開始處理輸入的PDF文件。 以下是一個簡單的 .NET 範例,展示了 IronPDF API 的簡潔性:
using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);IRON VB CONVERTER ERROR developers@ironsoftware.com這段程式碼載入一個PDF檔案並提取其中的每一段文字。 IronPDF 可以自動處理複雜的 PDF 結構、表單資料和編碼,而這些通常會為其他庫帶來問題。 從 PDF 文件中提取的數據可以保存到文字文件,也可以進一步處理以進行分析。
實用技巧:您可以將提取的文字儲存到 .txt 檔案中以便稍後處理,或者解析它以填充資料庫、Excel 表格或知識庫。 這種方法適用於報告、合約或任何只需要快速取得原始文字的 PDF 檔案。
從PDF文件中提取數據
實際應用中往往需要精確的資料擷取。 IronPDF 提供多種方法,可以從 PDF 中的特定頁面提取有價值的資訊。 在這個例子中,我們將使用以下PDF文件:
以下程式碼將從該 PDF 中的特定頁面提取數據,並將結果傳回我們的控制台。
using IronPdf;
using System;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
string pageText = pdf.ExtractTextFromPage(pageIndex);
// Split on 2 or more spaces (tables often flatten into space-separated values)
var tokens = Regex.Split(pageText, @"\s{2,}");
foreach (string token in tokens)
{
// Match totals, invoice headers, and invoice rows
if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
{
Console.WriteLine($"Important: {token.Trim()}");
}
}
}using IronPdf;
using System;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
string pageText = pdf.ExtractTextFromPage(pageIndex);
// Split on 2 or more spaces (tables often flatten into space-separated values)
var tokens = Regex.Split(pageText, @"\s{2,}");
foreach (string token in tokens)
{
// Match totals, invoice headers, and invoice rows
if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
{
Console.WriteLine($"Important: {token.Trim()}");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com本範例展示如何從 PDF 文件中提取文本,搜尋關鍵訊息,並將其準備儲存到資料檔案或知識庫中。 ExtractTextFromPage() 方法可保持文件的閱讀順序,因此非常適合文件分析和內容索引任務。
從PDF文件中提取表格數據
PDF 檔案中的表格沒有固定的結構; 它們只是排列成表格形狀的文字內容。 IronPDF 可以提取表格資料並保留佈局,以便您可以將其處理成 Excel 或文字檔案。 在這個例子中,我們將使用這份PDF文件:
using IronPdf;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
continue;
string[] rawCells = Regex.Split(line.Trim(), @"\s+");
string[] cells;
// If the line starts with "Product", combine first two tokens as product name
if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
{
cells = new string[rawCells.Length - 1];
cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
}
else
{
cells = rawCells;
}
// Keep header or table rows
bool isTableOrHeader = cells.Length >= 2
&& (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
|| Regex.IsMatch(cells[0], @"^INV-\d+"));
if (isTableOrHeader)
{
Console.WriteLine($"Row: {string.Join("|", cells)}");
string csvRow = string.Join(",", cells).Trim();
csvBuilder.AppendLine(csvRow);
}
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");using IronPdf;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
continue;
string[] rawCells = Regex.Split(line.Trim(), @"\s+");
string[] cells;
// If the line starts with "Product", combine first two tokens as product name
if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
{
cells = new string[rawCells.Length - 1];
cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
}
else
{
cells = rawCells;
}
// Keep header or table rows
bool isTableOrHeader = cells.Length >= 2
&& (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
|| Regex.IsMatch(cells[0], @"^INV-\d+"));
if (isTableOrHeader)
{
Console.WriteLine($"Row: {string.Join("|", cells)}");
string csvRow = string.Join(",", cells).Trim();
csvBuilder.AppendLine(csvRow);
}
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");IRON VB CONVERTER ERROR developers@ironsoftware.comPDF 檔案中的表格通常只是排列成網格狀的文字。 此檢查有助於確定一行是屬於表格行還是表格標題。 透過過濾掉頁首、頁尾和無關文本,您可以從 PDF 中提取乾淨的表格數據,並將其轉換為 CSV 或 Excel 文件。
此工作流程適用於 PDF 表單、財務文件和報告。 之後您可以將 PDF 中的資料轉換為 xlsx 文件,或將它們合併到一個包含所有有用資料的 zip 檔案中。 對於包含合併儲存格的複雜表格,您可能需要根據列位置調整解析邏輯。
從 PDF 文件中提取表單欄位數據
IronPDF 也允許擷取和修改表單欄位資料:
using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
Console.WriteLine($"{field.Name}: {field.Value}");
// Update form values if needed
if (field.Name == "customer_name")
{
field.Value = "Updated Value";
}
}
// Save modified form
pdf.SaveAs("updated_form.pdf");using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
Console.WriteLine($"{field.Name}: {field.Value}");
// Update form values if needed
if (field.Name == "customer_name")
{
field.Value = "Updated Value";
}
}
// Save modified form
pdf.SaveAs("updated_form.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.com此程式碼片段從 PDF 中提取表單欄位值,並允許您以程式設計方式更新它們。 這樣就可以輕鬆處理 PDF 表單,並提取指定範圍的資訊以進行分析或產生報告。 這對於自動化工作流程非常有用,例如客戶註冊、調查處理或資料驗證。
後續步驟
IronPDF 讓 .NET 中的 PDF 資料擷取實用且有效率。 您可以從各種 PDF 文件中提取圖像、文字、表格、表單字段,甚至提取附件,包括通常需要額外 OCR 處理的掃描 PDF。
無論您的目標是建立知識庫、自動化報告工作流程,還是從財務 PDF 中提取數據,該庫都能為您提供完成此目標所需的工具,而無需手動複製或容易出錯的解析。 它簡單、快速,並且可以直接整合到 Visual Studio 專案中。 不妨一試,您很可能會節省大量時間,並避免處理 PDF 文件時通常會遇到的各種麻煩。
!{--01001100010010010100001001010010010000010101001001011001010 111110100011101000101010101010001011111010100110101010001000001 010100100101010001000101010001000101111101010111010010010101010 001001000010111110101000001010101000010010000101111101010000010 1001001001111010001000101010101000011010101010001011111010101000101001001001001010101010001010010010010010100001010101010101 010101011000010101000100010101001110010001000101010001000101111101000010010011000100111110100010010011000100111100
準備好在您的應用程式中實現 PDF 資料提取功能了嗎? IronPDF 聽起來像您理想的 .NET 程式庫嗎? 立即開始免費試用,可用於商業用途。 請造訪我們的文檔,以取得全面的指南和 API 參考。
常見問題解答
使用 .NET 從 PDF 文件中提取文字的最佳方法是什麼?
使用 IronPDF,您可以在 .NET 應用程式中輕鬆地從 PDF 文件中提取文字。它提供了有效擷取文字資料的方法,確保您能存取所需的內容。
IronPDF 可以處理掃描的 PDF 資料擷取嗎?
是的,IronPDF 支援 OCR(光學字元辨識),可從掃描的 PDF 文件中處理和擷取資料,即使是以影像為基礎的文件,也能存取文字。
如何使用 C# 從 PDF 中提取表格?
IronPDF 提供了用 C# 解析和提取 PDF 文件中表格的功能。您可以使用特定的方法來識別並準確擷取表格資料。
使用 IronPDF 進行 PDF 資料擷取有什麼好處?
IronPDF 為 PDF 資料擷取提供全面的解決方案,包括文字擷取、表格解析以及掃描文件的 OCR。它可與 .NET 應用程式無縫整合,提供可靠且有效率的 PDF 資料處理方式。
是否可以使用 IronPDF 從 PDF 中提取圖片?
是的,IronPDF 允許您從 PDF 中提取圖片。如果您需要訪問和處理嵌入在 PDF 文件中的圖像,此功能將非常有用。
IronPDF 如何在資料提取過程中處理複雜的 PDF 佈局?
IronPdf 專為管理複雜的 PDF 佈局而設計,提供強大的工具來瀏覽和擷取資料,確保您能處理格式和結構複雜的文件。
我可以在 .NET 應用程式中自動抽取 PDF 資料嗎?
絕對可以IronPDF for .NET 可以整合到 .NET 應用程式中,自動化 PDF 資料擷取,簡化需要定期且一致擷取資料的流程。
IronPDF 可用于 PDF 数据提取的编程语言有哪些?
IronPDF 主要配合 .NET Framework 中的 C# 使用,為希望以程式化方式從 PDF 擷取資料的開發人員提供廣泛的支援與功能。
IronPDF 是否支持从 PDF 文档中提取元数据?
是的,IronPDF 可以從 PDF 文件中提取元資料,讓您可以存取作者、創建日期和其他文件屬性等資訊。
學習 IronPDF 的 PDF 資料擷取有哪些範例程式碼?
該開發人員指南提供了完整的 C# 教學,並附有工作代碼示例,幫助您掌握在 .NET 應用程式中使用 IronPDF 進行 PDF 資料擷取。
IronPDF 是否與新版 .NET 10 完全相容,這對資料萃取有什麼好處?
是 - IronPDF 與 .NET 10 完全相容,支援其所有效能、API 和執行時的改進,例如減少堆分配、陣列介面去虛擬化和增強語言功能。這些改進使 C# 應用程式中的 PDF 資料擷取工作流程更快速、更有效率。






