使用IRONPDF

如何在C#中读取PDF表格

更新 2024年三月3日
分享:

用 C# 从 PDF 文件中提取数据是一项相当大的挑战。 数据可以是文本、图像、图表、图形、表格等形式。有时,业务分析人员需要提取数据以进行数据分析,并根据分析结果做出决策。 IronPDF C# PDF 库**是从 PDF 文件中提取数据的绝佳解决方案。

本文将演示如何使用 IronPDF 库用 C# 从 PDF 文档中提取表格数据。

IronPDF - C# PDF 库

IronPDF 是用于在 .NET 中生成 PDF 的 C# .NET 库解决方案该译文可帮助开发人员在其软件应用程序中轻松阅读、创建和编辑 PDF 文档。 其 Chromium 引擎可准确、快速地渲染 PDF 文档。 它允许开发人员从不同格式无缝转换为 PDF,反之亦然。 它支持最新的 .NET 7 Framework 以及 .NET Framework 6、5、4、.NET Core 和 Standard。

此外,IronPDF .NET API 还能让开发人员轻松操作和编辑 PDF、添加页眉和页脚,以及从 PDF 中提取文本、图像和表格。

一些重要功能包括

使用 IronPDF 库在 C# 中提取表数据的步骤

要从 PDF 文档中提取表格数据,我们需要在本地计算机系统中安装以下组件:

  1. Visual Studio - Visual Studio 2022 是用于 C# 开发的官方集成开发环境,必须安装在计算机上。 请从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 框架

      选择一个 .NET Framework

    • 单击创建按钮,将创建控制台项目。 现在,我们可以通过编程从 PDF 文档中提取表格数据了。
  3. Install IronPDF - IronPDF 库有 3 种不同的安装方法。 它们如下

    • 使用 Visual Studio。 Visual Studio 包含 NuGet 软件包管理器,可帮助在 C# 应用程序中安装所有 NuGet 软件包。

      • 单击顶部菜单中的工具,或

      • 右键单击解决方案资源管理器中的项目

        如何在 C# 中读取 PDF 表,图 5:工具与管理 NuGet 软件包

        工具与管理 NuGet 软件包

      • 打开 NuGet 包管理器后,浏览 IronPDF 并点击安装,如下图所示:

        如何在 C# 中读取 PDF 表,图 6:工具与管理 NuGet 软件包

        工具与管理 NuGet 软件包

    • 直接下载 NuGet 包。 另一种下载和安装 IronPDF 的简便方法是访问其NuGet 软件包页面.

    • Download IronPDF .DLL Library. 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";
Imports IronPdf

License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY"
VB   C#

在这里,将从一个包含表格的 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>"
VB   C#

接下来是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")
VB   C#

"(《世界人权宣言》)保存为方法将保存PDFDocument翻译对象为名为 "table_example.pdf "的 PDF 文件。 保存的文件如下所示:

如何在 C# 中读取 PDF 表,图 7:在 NuGet 软件包管理器用户界面中搜索 IronPDF

在 NuGet 软件包管理器用户界面中搜索 IronPdf

使用 IronPDF 从 PDF 文档中提取表格数据

要从 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()
VB   C#

上述代码使用 "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)
VB   C#

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

这个简单的代码示例有助于从提取的文本中仅提取表格单元格数据。 首先,文本行被拆分并保存在字符串数组中。 然后,对每个数组元素进行迭代,跳过末尾带有句号". "的元素。 在大多数情况下,从提取的数据中只检索表格数据,但也可能检索其他行。 输出结果如下

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

输出结果将保存为 CSV 文件,其中每个 textItem 为一列。

摘要

本文演示了如何使用 IronPDF 从 PDF 文档中提取数据和表格。 IronPDF 为从 PDF 文件中提取文本提供了多个有用的选项。 它提供了从页面提取文本该方法允许从特定页面提取数据。 IronPDF 还便于将不同格式转换为 PDF,如标记符文件DOCX 文件以及从 PDF 到不同格式的翻译。 这样,开发人员就可以轻松地将 PDF 功能集成到应用程序开发过程中。 此外,它不需要使用 Adobe Acrobat Reader 来查看和编辑 PDF 文档。

IronPDF 在开发期间是免费的,可用于商业用途需要获得许可。 它提供了用于测试 IronPDF 的免费试用许可证测试库的全部功能。 您可以在此链接上找到更多详细信息。

< 前一页
如何将二维码转换为PDF
下一步 >
PDF查看器C# Windows应用程序(教程)

准备开始了吗? 版本: 2024.11 刚刚发布

免费NuGet下载 总下载量: 11,436,010 查看许可证 >