使用IRONPDF

如何在C#中读取PDF表格

更新 2024年三月3日
分享:

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

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

IronPDF - C# PDF Library

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

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

一些重要功能包括

在 C&num 中提取表格数据的步骤;使用 IronPDF 库

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

  1. Visual Studio - Visual Studio 2022 是用于 C# 开发的官方集成开发环境,必须安装在计算机上。请从 Visual Studio 网站.

  2. 创建项目 - 创建一个用于提取数据的控制台应用程序。请按照以下步骤创建项目:

    • 打开 Visual Studio 2022,然后点击创建新项目按钮

      如何用 C# 阅读 PDF 表格,图 1:Visual Studio 的启动屏幕

      视觉工作室的启动屏幕

    • 下一步,选择 C# 控制台应用程序并点击下一步

      如何用 C# 阅读 PDF 表格,图 2:在 Visual Studio 中创建新的控制台应用程序

      在 Visual Studio 中创建新的控制台应用程序

    • 接下来,键入项目名称"ReadPDFTable ",然后点击下一步

      如何在 C# 中读取 PDF 表,图 3:配置新创建的应用程序

      配置新创建的应用程序

    • 为您的项目选择".NET Framework 6 长期支持"。

      如何在 C# 中读取 PDF 表,图 4:选择 .NET 框架

      选择一个 .NET 框架

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

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

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

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

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

        工具和管理 NuGet 软件包

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

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

        工具和管理 NuGet 软件包

    • 直接下载 NuGet 包 另一种下载和安装 IronPDF 的简单方法是访问其在 NuGet 网站.

    • 下载 IronPDF .DLL 库。 IronPDF 也可以从 IronPDF 网站下载。点击 IronPDF DLL 下载 下载并安装。请记住,您必须在项目中引用 .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 对象的 PDF 文件,文件名为 "table/example.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 文档中提取数据的更多详情,请参阅以下内容 代码示例.

输出结果还可保存为 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 可免费用于开发,也可授权用于商业用途。它提供了一个 免费试用许可证 来测试该库的全部功能。更多详细信息,请访问此链接。

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

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

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