iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#实现从PDF中提取表格的方法详解
  • 109
分享到

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

C#PDF提取表格C#PDF表格 2022-11-13 14:11:22 109人浏览 安东尼
摘要

目录程序环境从pdf中提取表格具体步骤完整代码PDF是办公中比较常见的一种文件格式,在工作中应用也越来越普遍。由于PDF文件集成度和安全可靠性都较高,所以在PDF中编辑内容是一件比较

PDF是办公中比较常见的一种文件格式,在工作中应用也越来越普遍。由于PDF文件集成度和安全可靠性都较高,所以在PDF中编辑内容是一件比较复杂且困难的事。但有时因工作需要,要求我们从中提取数据或表格该怎么办呢?别担心,今天为大家介绍一种通过C#/VB.NET代码从PDF中提取表格内容的方法。下面是我整理的思路步骤及代码供大家参考。

程序环境

本次测试时,在程序中引入 Spire.PDF.dll 文件。

方法1:

将 ​ ​Free Spire.PDF for .net​​ 下载到本地,解压,找到 BIN 文件夹下的 Spire.PDF.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。

方法2:

通过NuGet​​安装。可通过以下 2 种方法安装:

1. 可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.PDF”,点击“安装”。等待程序安装完成。

2. 将以下内容复制到 PM 控制台安装。

Install-Package FreeSpire.PDF -Version 8.6.0

从PDF中提取表格具体步骤

实例化PdfDocument类的对象并调用PdfDocument.LoadFromFile()方法加载文档。

通过 PdfTableExtractor.ExtractTable(int pageIndex) 方法提取指定页面中的表格。

通过 PdfTable.GetText(int rowIndex, int columnIndex) 方法将获取具体行和列中的单元格文本内容。

将获取的表格内容保存为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("编程语言1.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("提取表格.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("编程语言1.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("提取表格.txt", builder.ToString())
    End Sub
  End Class
End Namespace

效果图

注意:

测试代码中的文件路径为程序 Debug 路径,仅供参考,文件路径可自定义为其他路径。

到此这篇关于C#实现从PDF中提取表格的方法详解的文章就介绍到这了,更多相关C# PDF提取表格内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C#实现从PDF中提取表格的方法详解

本文链接: https://www.lsjlt.com/news/171502.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • C#实现从PDF中提取表格的方法详解
    目录程序环境从PDF中提取表格具体步骤完整代码PDF是办公中比较常见的一种文件格式,在工作中应用也越来越普遍。由于PDF文件集成度和安全可靠性都较高,所以在PDF中编辑内容是一件比较...
    99+
    2022-11-13
    C# PDF提取表格 C# PDF 表格
  • C# 提取PDF中的表格详情
    目录1、简单介绍2、环境配置3、代码示例1、简单介绍 本文介绍在C#程序中(附VB.NET代码)提取PDF中的表格的方法,调用Spire.PDF for .NET提供的提取表格的 类...
    99+
    2024-04-02
  • C#/VB.NET中从 PDF 文档中提取所有表格
    目录前言安装从PDF文档中提取表格前言 有时,我们可能需要从 PDF 文档中提取表格数据,例如,当PDF发票的表格中存储了一些有用的信息,需要提取数据以进行进一步分析时。在这篇文章中...
    99+
    2022-11-13
    C#/VB.NET 从 PDF 文档提取表格
  • 用Python提取PDF表格的方法
    目录一、简单文本类型数据二、复杂型表格提取三、图片型表格提取大家好,从PDF中提取信息是办公场景中经常需要用到的操作,也是经常又读者在后台问的一个操作。 内容少的话我们可以手动复制粘...
    99+
    2024-04-02
  • python实现读取excel表格详解方法
    目录一、python读取excel表格数据1、读取excel表格数据常用操作2、xlrd模块主要操作3、读取单元格内容为日期时间的方式4、读取合并单元格的数据二、python写入ex...
    99+
    2024-04-02
  • Python--从PDF中提取文本的方法总结
    目录 前言 一、pdfplumber 二、pdfminer 三、fitz / pymupdf 四、性能对比 前言 这段时间做了好几个关于年报的需求,其中无一例外需要从年报PDF中提取文本再进行下一步的操作。为了提高效率,对...
    99+
    2023-09-03
    python pdf 自动化
  • C#实现绘制PDF嵌套表格案例详解
    嵌套表格,即在一张表格中的特定单元格中再插入一个或者多个表格,使用嵌套表格的优点在于能够让内容的布局更加合理,同时也方便程序套用。下面的示例中,将介绍如何通过C#编程来演示如何插入嵌...
    99+
    2024-04-02
  • Java实现添加条形码到PDF表格的方法详解
    目录程序环境代码示例条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以...
    99+
    2024-04-02
  • Java读取PDF中的表格的方法示例
    目录一、概述​二、环境配置1. 手动导入2. Maven仓库下载导入三、读取PDF中的表格一、概述 本文以Java示例展示读取PDF中的表格的方法。这里导入Spire.P...
    99+
    2024-04-02
  • C#读取word中表格数据的方法实现
    前些日子有一个项目需要从word文件中取表格数据并进行处理,网上大部分方案都是基于office的com组件实现,但是这样有一个缺点,如果电脑里没有安装office将无法使用,因为之前...
    99+
    2024-04-02
  • C++从文件中提取英文单词的实现方法
    目录思路:一:读取一行,去除该行标点符号二:截取单词三:将拿到的每一个单词都放在链表中首先,要准备好words.txt(英文文章)置于工程目录下 思路: 1.打开文件 2.读取每一行...
    99+
    2024-04-02
  • C#实现将PDF转为Excel的方法详解
    目录dll引用方法方法1方法2PDF转ExcelC#VB.NET通常,PDF格式的文档能支持的编辑功能不如office文档多,针对PDF文档里面有表格数据的,如果想要编辑表格里面的数...
    99+
    2024-04-02
  • 通过Python的pdfplumber库提取pdf中表格数据
    文章目录 前言一、pdfplumber库是什么?二、安装pdfplumber库三、查看pdfplumber库版本四、提取pdf中表格数据1.引入库2.定义pdf文件路径3.打开pdf文件4.获...
    99+
    2023-09-05
    python pdf 开发语言
  • 从 Angular Route 中提前获取数据的方法详解
    目录介绍你为什么应该使用 Resolver在应用中使用 Resolver创建服务并编写逻辑获取列表数据怎么应用一个预加载导航总结介绍 提前获取意味着在数据呈现在屏幕之前获取到数据。本...
    99+
    2024-04-02
  • Java实现将PDF转为图片格式的方法详解
    目录代码编译环境将整个 PDF 文档转换为多个图片完整代码效果图将指定 PDF 页面转换为图片完整代码效果图PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是...
    99+
    2023-03-23
    Java实现PDF转图片 Java PDF转图片 Java PDF 图片
  • 详解OpenCV实现特征提取的方法
    目录前言1. 颜色2. 形状3. 纹理a. GLCMb.  LBP结论前言 如何从图像中提取特征?第一次听说“特征提取”一词是在 YouTube ...
    99+
    2024-04-02
  • JavaScript实现动态表格的方法详解
    目录JavaScript实现动态表格基本效果如下代码如下:第一种方式(较简单,建议使用)方式二改进版代码如下:总结JavaScript实现动态表格 (改建版,代码见最下面) 基本效...
    99+
    2024-04-02
  • Vue树表格分页的实现方法详解
    目录1. 准备工作2. 动态树2.1 在配置请求路径2.2 使用动态数据构建导航菜单2.2.1 通过接口获取数据2.2.2 通过后台获取的数据构建菜单导航2.3 点击菜单实现路由跳转...
    99+
    2022-11-13
    Vue树表格 Vue树表格分页 Vue表格分页
  • Python实现PDF转Word的方法详解
    由于PDF的文件大多都是只读文件,有时候为了满足可以编辑的需要通常可以将PDF文件直接转换成Word文件进行操作。 看了网络上面的python转换PDF文件为Word的相关文章感觉都...
    99+
    2023-02-16
    Python PDF转Word Python PDF Word
  • C#/VB.NET实现在PDF表格中添加条形码
    目录类库引入及代码思路代码示例C#vb.net条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作