在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
從 PDF 文件中提取數據在 C# 中相當具有挑戰性。數據可以是文本、圖像、圖表、表格等形式。有時,業務分析師需要提取數據以進行數據分析並根據這些結果做出決策。IronPDF C# PDF Library 是一個從 PDF 文件中提取數據的極佳解決方案。
本文將演示如何使用 IronPDF Library 在 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 文件
要從 PDF 文件中提取表格數據,我們需要在本地計算機系統上安裝以下組件:
Visual Studio - Visual Studio 2022 是 C# 開發的官方 IDE,必須安裝在計算機上。請從以下位置下載並安裝 Visual Studio 網站.
創建專案 - 建立一個用於擷取數據的主控台應用程式。請按照以下步驟創建專案:
打開 Visual Studio 2022,然後點擊 建立新專案 按鈕
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 框架**
安裝 IronPDF - 有三種不同的方法來安裝IronPDF庫。它們如下:
使用 Visual Studio。Visual Studio 包含 NuGet 包管理器,它有助於在 C# 應用程式中安裝所有 NuGet 套件。
點擊頂部菜單中的工具,或
在方案總管中右鍵點擊該專案
**工具 & 管理 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"
這裡,將從包含表格的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>"
接下來,該 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 文件中提取數據的更多詳細信息。 程式碼範例輸出也可以保存為 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 在開發過程中是免費的,並可用於商業用途。它提供了一個 免費試用授權 測試該庫的全部功能。您可以在此連結中找到更詳細的信息。