当前位置: 首页 > news >正文

VBA批量提取PDF内容的程序

VBA批量提取PDF内容的程序

Sub ExtractPDFText()Dim pdfApp As Acrobat.AcroAppDim pdfDoc As Acrobat.CAcroPDDocDim pdfPage As Acrobat.AcroPDPageDim txtData As StringDim i As IntegerDim filePath As StringDim outputFolder As StringDim outputFileName As String' 初始化Acrobat对象Set pdfApp = CreateObject("AcroExch.App")pdfApp.Show' 设置输入和输出文件夹filePath = "C:\path\to\your\pdf\files\" ' 修改为PDF文件所在文件夹路径outputFolder = "C:\path\to\output\folder\" ' 修改为输出文本文件的文件夹路径' 创建文件夹如果它不存在If Not Dir(outputFolder, vbDirectory) <> vbNullString ThenMkDir outputFolderEnd If' 获取PDF文件列表filePath = filePath & Dir("*.pdf")While filePath <> ""' 打开PDF文档Set pdfDoc = CreateObject("AcroExch.PDDoc")pdfDoc.Open(filePath)' 遍历文档中的每一页For i = 0 To pdfDoc.GetNumPages() - 1Set pdfPage = pdfDoc.AcquirePage(i)txtData = pdfPage.GetText()' 这里可以添加代码处理txtData,例如保存到文件' 提取文本并保存到文件outputFileName = outputFolder & "\" & GetFilenameFromPath(filePath) & "-" & i & ".txt"SaveTextToFile txtData, outputFileName' 释放页对象pdfDoc.ReleasePage(pdfPage)Next i' 关闭文档并释放对象pdfDoc.Close()Set pdfDoc = Nothing' 获取下一个PDF文件filePath = Dir()Wend' 关闭Acrobat对象pdfApp.ExitSet pdfApp = Nothing
End Sub' 获取文件名称不包含路径
Function GetFilenameFromPath(filePath As String) As StringGetFilenameFromPath = Right(filePath, Len(filePath) - InStrRev(filePath, "\"))
End Function' 将文本保存到文件
Sub SaveTextToFile(textData As String, filePath As String)Dim fileNum As IntegerfileNum = FreeFile()Open filePath For Output As #fileNumPrint #fileNum, textDataClose #fileNum
End Sub
http://www.lryc.cn/news/499336.html

相关文章:

  • C++入门终
  • ubuntu下Qt5自动编译配置QtMqtt环境(10)
  • Vulnhub DC-3靶机攻击实战(一)
  • 常用传感器介绍合集
  • “为您的家电穿上防震铠甲:优质电器缓冲器
  • Elasticsearch入门之HTTP高级查询操作
  • Java基础-异常
  • 鲲鹏麒麟使用Docker部署Redis5
  • 家政项目小程序+ssm
  • Day7 苍穹外卖项目 缓存菜品、SpringCache框架、缓存套餐、添加购物车、查看购物车、清空购物车
  • 天天 AI-241207:今日热点- Windsurf:在工程能力上进一步进化的Cursor
  • Windows远程桌面连接到Linux
  • 使用前,后端写 具有分页效果的数据展示
  • ubuntu防火墙管理(六)——ebtables
  • Oracle开发和应用——常用对象(表)
  • 嵌入式蓝桥杯学习8 模拟电压测量
  • FFmpeg源码中,计算CRC校验的实现
  • Android笔记【14】结合LaunchedEffect实现计时器功能。
  • kubectl 和 kubeconfig 基本原理
  • LVGL笔录----动画
  • 【LeetCode热题100】BFS解决FloodFill算法
  • 设计模式の软件设计原则
  • Linux centos7 下载MySQL5.7仓库的命令
  • CSS flex布局踩坑小记:flex-basis属性之0px与0%的差异 (赞)
  • 华硕主板不能开启
  • 室联人形机器人:家政服务任务结构化、技术要点、深入应用FPGA的控制系统框架设计(整合版)
  • OpenAI 发布 o1 LLM,推出 ChatGPT Pro
  • 【MySQL】存储过程和触发器
  • QT4和 QT5 槽函数连接的区别
  • 使用 PyTorch 和 Horovod 来编写一个简单的分布式训练 demo