我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#/VB.NET中从 PDF 文档中提取所有表格

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#/VB.NET中从 PDF 文档中提取所有表格

前言

有时,我们可能需要从 PDF 文档中提取表格数据,例如,当PDF发票的表格中存储了一些有用的信息,需要提取数据以进行进一步分析时。在这篇文章中,我将介绍如何使用Spire.PDF for .NET 从 PDF 文档中提取所有表格数据。

安装

首先,我们需要将 Spire.PDF for .NET 包中包含的 DLL 文件添加为 .NET 项目中的引用。可以从此链接下载 DLL 文件,也可以通过 NuGet 安装 DLL 文件。

PM> Install-Package Spire.PDF

从PDF文档中提取表格

Spire.PDF提供了PdfTableExtractor.ExtractTable()方法,用于从特定页面中提取表格。以下是从整个PDF文档中提取表格的详细步骤。

  • 创建一个Document类的对象,并加载源 PDF 文件。
  • 遍历文档中的页面,并使用ExtractTable()方法从特定页面获取表格列表。
  • 遍历特定表格中的单元格,并通过PdfTable.GetText()方法获取单元格值。
  • 将所提取的数据写入 TXT 文件。

[C#]

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.IO;
using System.Text;

namespace ExtractTable
{
class Program
{
static void Main(string[] args)
{
//实例化PdfDocument类的对象
PdfDocument pdf = new PdfDocument();

//加载PDF文档
pdf.LoadFromFile("sample.pdf");

//创建StringBuilder类的对象
StringBuilder builder = new StringBuilder();

//实例化PdfTableExtractor类的对象
PdfTableExtractor extractor = new PdfTableExtractor(pdf);

//声明一个PdfTable类的表格数组
PdfTable[] tableLists;

//遍历PDF页面
for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
{
//从页面提取表格
tableLists = extractor.ExtractTable(pageIndex);

//判断表格列表是否为空
if (tableLists != null && tableLists.Length > 0)
{
//遍历表格
foreach (PdfTable table in tableLists)
{
//获取表格中的行和列数
int row = table.GetRowCount();
int column = table.GetColumnCount();

//遍历表格行和列
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
//获取行和列中的文本
string text = table.GetText(i, j);

//写入文本到StringBuilder容器
builder.Append(text + " ");
}
builder.Append("\r\n");
}
}
}
}
//保存提取的表格内容为.txt文档
File.WriteAllText("ExtractedTable.txt", builder.ToString());
}
}

VB.NET

Imports Spire.Pdf
Imports Spire.Pdf.Utilities
Imports System.IO
Imports System.Text

Namespace ExtractTable
Class Program
Private Shared Sub Main(args As String())
'实例化PdfDocument类的对象
Dim pdf As New PdfDocument()

'加载PDF文档
pdf.LoadFromFile("sample.pdf")

'创建StringBuilder类的对象
Dim builder As New StringBuilder()

'实例化PdfTableExtractor类的对象
Dim extractor As New PdfTableExtractor(pdf)

'声明一个PdfTable类的表格数组
Dim tableLists As PdfTable()

'遍历PDF页面
For pageIndex As Integer = 0 To pdf.Pages.Count - 1
'从页面提取表格
tableLists = extractor.ExtractTable(pageIndex)

'判断表格列表是否为空
If tableLists IsNot Nothing AndAlso tableLists.Length > 0 Then
'遍历表格
For Each table As PdfTable In tableLists
'获取表格中的行和列数
Dim row As Integer = table.GetRowCount()
Dim column As Integer = table.GetColumnCount()

'遍历表格行和列
For i As Integer = 0 To row - 1
For j As Integer = 0 To column - 1
'获取行和列中的文本
Dim text As String = table.GetText(i, j)

'写入文本到StringBuilder容器
builder.Append(text & Convert.ToString(" "))
Next
builder.Append(vbCr & vbLf)
Next
Next
End If
Next

'保存提取的表格内容为.txt文档
File.WriteAllText("ExtractedTable.txt", builder.ToString())
End Sub
End Class
End Namespace

到此这篇关于C#/VB.NET中从 PDF 文档中提取所有表格的文章就介绍到这了,更多相关C#提取表格内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#/VB.NET中从 PDF 文档中提取所有表格

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#/VB.NET中从 PDF 文档中提取所有表格

这篇文章主要介绍了C#/VB.NET中从PDF文档中提取所有表格,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
2022-11-13

C#实现从PDF中提取表格的方法详解

PDF是办公中比较常见的一种文件格式,在工作中应用也越来越普遍。今天为大家介绍一种通过C#/VB.NET代码从PDF中提取表格内容的方法,感兴趣的可以动手尝试一下
2022-11-13

Go Firestore 从集合中获取所有文档

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《Go Firestore 从集合中获取所有文档》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要
Go Firestore 从集合中获取所有文档
2024-04-05

TS从目录中提取所有指定扩展名文件的方法

这篇文章主要介绍了TS从目录中提取所有指定扩展名文件的方法,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。“.ts”是一种高清视频封装格式文件,全称为MPEG2-TS,TS表示TransportStream;MPEG2-T
2023-07-06

TS如何从目录中提取所有指定扩展名的文件

.ts是一种高清视频封装格式文件,全称为MPEG2-TS,TS表示TransportStream,这篇文章主要介绍了TS如何从目录中提取所有指定扩展名的文件,需要的朋友可以参考下
2023-05-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录