• NZ系列工具NZ02:VBA读取PDF使用说明


    【分享成果,随喜正能量】凡事好坏,多半自作自受,既不是神为我们安排,也不是天意偏私袒护。业力之前,机会均等,毫无特殊例外;好坏与否,端看自己是否能应机把握,随缘得度。。

    我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织成自己的程序呢?VBA可否能组织一个大型的程序呢?如何让VBA形成一个工具,拿来就用呢?在我的教程完结后,我陆续推出这类技术工具资料,这类工具整合了若干多的VBA知识点,让大家感受到VBA之强大。工具资料共两个系列,一个是YZ系列,一个是NZ系列。今日给大家介绍的是NZ系列工具NZ02:VBA读取PDF使用说明34b0fdc43eaf28e32483dea467d86ab9.jpeg

    NZ02 VBA读取PDF使用说明

    PDF文件大家并不陌生,很多资料的传递都是依靠这种文件格式进行,如一些报表,合同书,甚至个人的一些资料。这个格式的文件有着自己的特点,不易被修改,但是我们的一些数据信息往往来自于这类文件,那么怎么利用VBA技术读取把这类文件的信息呢?这个应用就是实现这个目的。提供给学员7项功能:

    功能1:在指定路径下的PDF中查找字符串;

    功能2:将指定路径下的PDF文件拆分成若干个文件,每个文件的页数是指定的;

    功能3:将某个文件夹下的多个pdf文件合并,

    功能4:提取pdf文件中表的数据,表中不能有合并单元格,

    功能5:提取PDF中某个段落数据到EXCEL

    功能6:提取pdf文件中表的数据,表中可以有合并单元格

    功能7:将文件夹下的多个PDF转变成WORD文件,并放在同路径下的WORD文件夹下(事前建立)

    1e06ce34566d11e535bb97a5f8c06645.jpeg

    一准备工作

    当你得到这个应用技术后,可以看到两个文件夹及一个使用的文档说明。

    fbfb6d47131a2ddae6cff4c901381d82.jpeg

    1我们首先打开“adobeacrobatXpro_setup”文件夹,安装一下ADODB,这个文件夹下有安装的说明,如果按照过程出现异常,按照这个说明进行处理即可。安装ADODB的目的是要获得VBA中利用的控件。

    2安装好后,我们打开“程序及示例文件文件”这个文件夹,这个文件如下截图:

    3a5dece9a1a1f351deff6e5d48ef50c1.jpeg

    这个文件夹中包含两个文件夹和两个文件,其中“word”文件夹是空的,用于文档装换后的目的地址;“测试文档”中包含我们可以用于测试各个功能的PDF文件;PDFChangeTo.xlam文件是加载项文件,是整个文件的技术核心部分,如果您得到的是不开放源码的资料,您是无法打开这个文件并看到代码的,如果您得到的是开放源码的资料,可以输入密码“123456789”打开这个加载项,并看到里面的代码,但是建议您不要轻易打开。TestPDFChangeTo.xlsm文件是我们应用这个加载项的程序,提供了应用的界面,我们打开这个文件,截图如下:

    f6229c74abf3e92276d5802d9a6b7894.jpeg

    以上的界面截图提供了各项功能的运行按钮及要提供的输入参数。您只要在这个界面中按照要求输入相应的参数就可以了。

    二功能1:在指定路径下的PDF中查找字符串

    测试参数输入,在D2单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E2单元格中输入文件名search;在F2单元格中输入我们要查找的字符。

    88d1f61a1eb0e7d309793b3612208821.jpeg

    点击运行按钮mynzTestA.

    结果:

    757be841d3228c55aea4b74ce355c15c.jpeg

    三功能2:拆分PDF文件

    测试参数输入,在D4单元格中输入路径地址:D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档;在E4单元格中输入文件名”Fiddler调试”;在F4单元格中输入我们要形成每个文件的页数,这里我们选择10。

    13f718d0df98bfab0ac82e56f5916a1a.jpeg

    点击运行按钮mynzTestB.

    结果:

    05cd2819a46c92c2366e0779beee53dd.jpeg

    以上我们看到,已经将”Fiddler调试文件,分隔成每10页一个文件,运行也是非常的快。

    四功能3:将某个文件夹下的多个pdf文件合并

    测试参数输入,在D6单元格中输入路径地址:D:\VBA笔记\VBA_PDF\程序及示例文件文件;在E6单元格中输入文件名”myMergePDF”;在F6单元格为空,没有参数。如下截图:

    8b1c63ffa4a72b87af05e8fa5a833c10.jpeg

    7c2e7c5ba5340f8340906b51f08abd52.jpeg

    点击运行按钮mynzTestC.

    结果:

    085257a513c3d42c55df025b02ef7452.jpeg

    以上结果,已经将“search文件”和“文章”文件合并到“myMergePDF”文件。当然,你也可以在这个文件夹下放入多个PDF文件。

    五功能4:提取pdf文件中表数据(表中不能有合并单元格)

    测试参数输入:在D8单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E8单元格中输入文件名”myPDF(无合并单元格)”;在F8单元格为空,没有参数。如下截图:

    c147afbe6e5afc7774e1e0fc5b21e015.jpeg

    点击运行按钮mynzTestD.

    结果:

    9cb94e3506b9bc7db8e99bfb6c3d681d.jpeg

    程序运行后,会形成一个新的文件,把表格中的内容放到新的工作簿文件中。

    六功能5:提取PDF中某个段落数据到EXCEL

    测试参数输入:在D10单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E10单元格中输入文件名“文章”;在F8单元格输入“要提取的段落号”这里我们输入1。如下截图:

    869eae528c64638dde1d67fbaf625a56.jpeg

    点击运行按钮mynzTestE.

    结果:

    1d97b6e740590dccea0102cd83936280.jpeg

    程序运行后,会形成一个新的文件,把PDF文件“文章”中的第一段内容放到新的工作簿文件中。

    七功能6:提取pdf文件中表的数据(可以有合并单元格)

    测试参数输入:在D12单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E12单元格中输入文件名“myPDF(有合并单元格)”;在F12单元格输入表间隔参数,是指两个表的间隔行数,这里用的是3。如下截图:

    48f5ac04c698b2dee4786428606f1988.jpeg

    点击运行按钮mynzTestF.

    结果:

    7f1932c3ebdfd209fdfcdca0e3df194a.jpeg

    程序运行后,会形成一个新的文件,把PDF各个表格中的内容放到新的工作簿文件中。

    八功能7:将文件夹下的多个PDF转变成WORD文件

    测试参数输入:在D14单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件”;没有其他参数,如下截图:

    9264665089b974b93eda76f360405a90.jpeg

    fc9fec78a59563d091e469363fec1f3a.jpeg

    点击运行按钮mynzTestG.

    结果:

    b55595a36d742d5885628a5fe6235629.jpeg

    程序运行后,会在word文件夹中形成相应新的word文件.

    九技术总结

    这个应用中,我们大体上解决了VBA读取PDF文件中常见的七大问题:

    功能1:在指定路径下的PDF中查找字符串;

    功能2:将指定路径下的PDF文件拆分成若干个文件,每个文件的页数是指定的;

    功能3:将某个文件夹下的多个pdf文件合并,

    功能4:提取pdf文件中表的数据,表中不能有合并单元格,

    功能5:提取PDF中某个段落数据到EXCEL

    功能6:提取pdf文件中表的数据,表中可以有合并单元格

    功能7:将文件夹下的多个PDF转变成WORD文件,并放在同路径下的WORD文件夹下(事前建立)

    但是,由于有些PDF的文件完全完美的读取对于VBA而言是非常困难的,还不能够完全实现,也希望学员的技术在我的基础上有所突破,

    【分享成果,随喜正能量】

    37b838d13a568a733415a44471de283d.jpeg

    下面是NZ系列VBA应用工具:

    67cb746b500bcc31cb1e5321157aa6b9.jpeg

    0be44249ff4826f97c94735784ead6e9.jpeg

  • 相关阅读:
    java-- 静态数组
    xf86-video-intel源码分析6 —— intel_device.c和intel_driver.h(1)
    Flume从入门实战到精通再到面试一文搞定
    实测 ubuntu 20.04 编译LIO-SAM问题与解决办法
    Java递归查询树形结构(详解)
    将AI带入企业,红帽选择了开源
    点击标签给文本域(Textarea)赋值,文本域支持手动输入
    C++学习day1
    技术学习:Python(18)|爬虫篇|解析器BeautifulSoup4(一)
    SwiftUI AR教程之应用程序中使用 RealityKit 生成 3D 文本(教程含完整源码)
  • 原文地址:https://blog.csdn.net/VBA6337/article/details/132815540