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

目录
  • 前言
  • 安装
  • 从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#提取表格内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#/VB.NET实现将XML转为PDF

    目录 引入dll 方法1 方法2 将XML转为PDF C# VB.NET 补充 可扩展标记语言(XML)文件是一种标准的文本文件,它使用特定的标记来描述文档的结构以及其他特性.通过将XML转换为PDF,能够便于文件传输及共享.本文,将介绍通过C#及VB.NET代码来实现该格式转换的方法. 引入dll 方法1 在程序中引入Spire.Doc.dll文件:将 Free Spire.Doc for .NET 下载到本地,解压,找到BIN文件夹下的Spire.Doc.dll.然后在Visual Stud

  • C#/VB.NET 在PDF中添加文件包(Portfolio)的方法

    PDF文件包(Portfolio)允许用户将多种不同类型的文件如Word.Excel.PDF.PowerPoint和图片等集合到一个PDF文件中,用户可以打开.更改PDF文件包中的单个文件.添加文件包时,可支持创建文件包时并直接将文件添加到文件包:或者创建文件包的同时创建文件夹,并将文件添加到文件夹. 环境准备:程序中需要使用到PDF类库工具(Spire.PDF for .NET hotfix 6.5.15及以上版本)下载后,解压,将Bin文件夹下的dll文件添加引用到VS程序.如下效果: 1.

  • C#/VB.NET 实现彩色PDF转为灰度PDF

    目录 配置程序环境 转彩色PDF为灰度 转换结果 补充 本文以C#代码为例介绍如何实现将彩色PDF文件转为灰度(黑白)的PDF文件,即 将PDF文档里面的彩色图片或者文字等通过调用PdfGrayConverter.ToGrayPdf()方法转为文档页面为灰色调.无彩色效果的文档.下面的程序运行环境及代码示例. 配置程序环境 Visual Studio 2017 .Net Framework 4.6.1 Spire.PDF for .NET 关于如何引入dll文件: 1.通过NuGet安装dll(

  • C#/VB.NET 实现在PDF表格中添加条形码

    目录 类库引入及代码思路 代码示例 C# vb.net 条码的应用已深入生活和工作的方方面面.在处理条码时,常需要和各种文档格式相结合.当需要在文档中插入.编辑或者删除条码时,可借助于一些专业的类库工具来实现.本文,以操作PDF文件为例,介绍如何在编辑表格时,向单元格中插入条形码. 类库引入及代码思路 本次功能测试中,使用 Free Spire.PDF for .NET. 实现功能的大致思路:生成条形码,将条形码保存为图片,然后在PDF中的表格单元格中插入条码图片. Spire.PDF for

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

    目录 前言 安装 从PDF文档中提取表格 前言 有时,我们可能需要从 PDF 文档中提取表格数据,例如,当PDF发票的表格中存储了一些有用的信息,需要提取数据以进行进一步分析时.在这篇文章中,我将介绍如何使用Spire.PDF for .NET 从 PDF 文档中提取所有表格数据. 安装 首先,我们需要将 Spire.PDF for .NET 包中包含的 DLL 文件添加为 .NET 项目中的引用.可以从此链接下载 DLL 文件,也可以通过 NuGet 安装 DLL 文件. PM> Instal

  • C#实现在PDF文档中应用多种不同字体

    目录 引入dll 应用字体 C# VB.NET 绘制效果 引入dll 本次程序中引入的是Spire.Pdf.dll,引入方法如下: [方法1]通过NuGet安装. 可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“Free Spire.PDF”,点击“安装”. 也可以将以下内容复制到PM控制台安装: Install-Package FreeSpire.PDF -Version 7.8.9 [方法2]手动安装. 可通过手动下载Fre

  • C# 在PDF文档中创建表格的实现方法

    表格能够直观的传达数据信息,使信息显得条理化,便于阅读同时也利于管理.那在PDF类型的文档中如何来添加表格并且对表格进行格式化操作呢?使用常规方法直接在PDF中添加表格行不通,那我们可以在借助第三方组件的情况下来实现.本篇文章中将介绍如何正确使用组件Free Spire.PDF for .NET添加表格到PDF.该组件提供了两个类PdfTable和PdfGrid用于创建表格,在进行代码编辑前,需先安装,添加Spire.PDF. dll到项目程序集中,同时添加到命名空间.下面是两种方法来添加表格的

  • C#/VB.NET实现在Word文档中添加页眉和页脚

    目录 程序环境 在 Word 文档中添加页眉和页脚 完整代码 效果图 页眉位于文档中每个页面的顶部区域,常用于显示文档的附加信息,可以插入时间.图形.公司微标.文档标题.文件名或作者姓名等:页脚位于文档中每个页面的底部的区域,常用于显示文档的附加信息,可以在页脚中插入文本或图形.今天这篇文章就将为大家展示如何以编程的方式在在 Word 文档中添加页眉和页脚.下面是我整理的思路及方法,并附上C#/VB.NET供大家参考. 程序环境 本次测试时,在程序中引入Free Spire.Doc for .N

  • 怎样在php中使用PDF文档功能

    写给Hunte: 好久不在网上见你,真有点说不出来的感觉,没有hunte的phpuser.com什么也不是. 转了你站上的两篇文章, 特翻了一篇了以示致歉. ---------------------------------------------------- 原作者:Perugini Luca (www.phpbuilder.com) 译者:znsoft (http://www.phpease.com) --------------------------------------------

  • ASP.NET Core中快速构建PDF文档的步骤分享第1/2页

    比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本文中我们将要使用DinkToPDF来处理我们在.NET Core Web 程序中进行构建PDF文档!就现在我们不多说,直接开始有趣的部分. 前言# 您可以通过创建PDF文档在我的仓库中,获取源代码,欢迎给个免费的Star... 现在我们创建一个.NET Core 3.0 项目,至于是mvc.Api.

  • 用PHP编写PDF文档生成器

    PHP一个最大的优点就是它对新技术的支持非常容易,这种语言的可扩展性使得开发人员能够很方便地添加新的模块,而且遍布世界的技术团体的支持和众多扩展模块的支持使得PHP已经成为功能最齐全的Web编程语言之  一.目前可得到的扩展模块已经能够使开发人员执行IMAP和POP3操作,可以动态产生图象和Shockwave Flash动画,进行信用卡验证,敏感数据的加密解密,还能够解析XML格式的数据.但这还不是全部,现在,又有一个新的模块可以与PHP进行绑定了,那就是PDFLib扩展模块,它能够让开发人员动

  • 利用C#如何给PDF文档添加文本与图片页眉

    前言 下面这篇文章向大家分享如何使用了免费组件Free Spire.PDF给PDF文档添加文本和图片页眉.这个组件提供了一些方法,可以帮助我们快速方便地实现此目的. 添加页眉步骤: 首先,创建一个Visual C#控制台项目,添加组件引用并使用以下命名空间. using System; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics; 在下列代码中,我们先定义一个SetDocumentTemplate()方法来创建一

  • 基于PHP与XML的PDF文档生成技术

    摘要 本论文简要介绍了PHP.XML.PDF等技术的原理以及它们的应用情况.力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统.文中详细探讨了整个系统的组成部分以及各自的实现过程.并在最后给出一个运用这套系统实现的动态创建报表的实例. AbstractThis article introduced the fundamentls of PHP,XML and PDF and their application situation at present,expect

  • Java解析word,获取文档中图片位置的方法

    前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术,分别是HWPF(.doc)和XWPF(.docx).如果你对这两个技术熟悉的话,就应该能明白使用java解析word文档的痛楚所在. 其中两个最大的问题在于: 第一是这两个类并没有统一的父类和接口(隔壁的XSSF和HSSF投过来鄙视的眼光),所以没法进行同一格式的接口式编程: 第二是官方API中并

随机推荐