在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
從 PDF 文件中提取數據在 C# 中可能相當具有挑戰性。 數據可以是文本、圖像、圖表、圖形、表格等形式。有時,業務分析師需要提取數據以進行數據分析並根據這些結果做出決策。 IronPDF C# PDF Library 是從 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 中提取文本、圖像和表格。
要從 PDF 文件中提取表格數據,我們需要在本地計算機系統上安裝以下組件:
Visual Studio - Visual Studio 2022 是 C# 開發的官方 IDE,必須安裝在電腦上。 請從該處下載並安裝它Visual Studio 網站.
創建項目 - 建立一個用於提取數據的控制台應用程式。 按照以下步驟建立專案:
打開 Visual Studio 2022,然後點擊 Create a new project 按鈕
Visual Studio 的啟動畫面
接下來,選擇 C# 控制台應用程式,然後點擊下一步。
在 Visual Studio 中創建新的主控台應用程式
接下來,輸入您的專案名稱 "ReadPDFTable",然後點擊下一步。
配置新創建的應用程式
為您的專案選擇 ".NET Framework 6 長期支援"。
選擇 .NET Framework
安裝 IronPDF - 有三種不同的方法可以安裝 IronPDF 程式庫。 它們如下:
使用 Visual Studio。 Visual Studio 包含 NuGet 套件管理器,這有助於在 C# 應用程式中安裝所有 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 命名空間添加到文件中,並設置許可證金鑰以使用 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"
在這裡,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>"
接下來,該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")
這保存為
方法將保存PdfDocument
將物件轉換為名為 "table_example.pdf" 的 PDF 檔案。 保存的文件如下所示:
在 NuGet 套件管理器 UI 中搜尋 IronPDF
若要從 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()
上述程式碼使用 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)
要提取文字的 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
這個簡單的代碼範例幫助從提取的文本中僅提取表格單元格數據。 首先,文本行被分割並儲存在字串陣列中。 然後,每個數組元素進行迭代,並跳過那些以句號“.”結束的元素。 在大多數情況下,僅從提取的數據中檢索表格數據,儘管它可能也會檢索其他行。 輸出如下:
控制台顯示擷取的文本
從上面的截圖可以看出,表格數據格式和邏輯結構在 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
輸出將保存為CSV檔案,其中每個textItem
將是一列。
本文演示了如何使用 IronPDF 從 PDF 文件中提取數據和表格。 IronPDF提供多種有用的選項來從PDF文件中提取文字。 它提供了提取頁面文字
方法,允許從特定頁面提取數據。 IronPDF 還支持將不同格式轉換為 PDF,例如Markdown 檔案或DOCX 文件以及從PDF轉換為不同格式。 這使開發人員能夠輕鬆地將 PDF 功能整合到應用程式開發過程中。 此外,它不需要 Adobe Acrobat Reader 就能查看和編輯 PDF 文件。
IronPDF 在開發階段免費,可授權用於商業用途。 提供了一個IronPDF 測試用免費試用許可證以測試該庫的全部功能。 您可以在此連結找到更詳細的資訊。