`
love19820823
  • 浏览: 958382 次
文章分类
社区版块
存档分类
最新评论

让所有程序 都可以 自动化 以PdfReader 为例

 
阅读更多

需求:批量转化n多的pdf文件到txt文件,选择的工具是PdfReader,PdfReader不支持批量操作。

实现:通过自定义VB.NET程序向PdfReader程序发送键盘指令来实现批量转化,VB.NET测试代码粘贴如下:


Try

If String.IsNullOrEmpty(Me.txtPdfFilesFolder.Text) Or String.IsNullOrEmpty(Me.txtResultTxtFilesFolder.Text) Then

MessageBox.Show("请选择pdf或txt文件夹路径!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop)

Exit Sub
End If

Dim sourcePdfFolder As String = Me.txtPdfFilesFolder.Text.Trim()
Dim targetTxtFolder As String = Me.txtResultTxtFilesFolder.Text.Trim()

Dim exePath As String = Application.StartupPath + "/pdfreader/PdfReader.exe"
Shell(exePath, AppWinStyle.NormalFocus)

Dim intFileCount As Integer = 0
Dim dir As New System.IO.DirectoryInfo(sourcePdfFolder)
For Each file As System.IO.FileInfo In dir.GetFiles()
If ".pdf".Equals(file.Extension.ToLower()) = True Then

Dim strPdfFileFullName As String = file.FullName
Dim strTxtFileFullName As String = targetTxtFolder + "/" + file.Name.Replace(file.Extension, "") + ".txt"

SendKeys.Send("%F^O")
SendKeys.Send(strPdfFileFullName)
SendKeys.Send("{ENTER}")


SendKeys.Send("^F4")

SendKeys.Send("%F{DOWN 5}")
SendKeys.Send("{ENTER}")
SendKeys.Send(strTxtFileFullName)
SendKeys.Send("{ENTER}")

intFileCount = intFileCount + 1

End If
Next

SendKeys.Send("%F^X")

Catch ex As Exception
MessageBox.Show("转化出现错误:" + ex.Message, "错误")
End Try

遗留的的小问题:因为是程序间直接发送键盘指令,可能受到中文输入法的影响,最好程序把输入法设置成英文。

分享到:
评论

相关推荐

    C#获取指定PDF文件页数的方法

    在C#编程中,处理PDF文件时,有时我们需要获取PDF文档的页数,这在诸如统计文档、自动化处理或报告生成等场景中是至关重要的。本文将详细介绍如何使用C#来获取指定PDF文件的页数。 首先,由于PDF格式本身并不直接...

    VC实现PDF的显示

    以下以Acrobat(Reader)5.x/6.x为例,介绍如何用新版控件实现PDF文件的显示。 1. 运行VC,新建一个基于对话框的MFC应用程序ViewPDF,在设置生成选项时,选中“ActiveX Controls”,其余使用缺省值即可。 2. 生成后...

    绿色PDF阅读器

    以压缩包内的文件“Foxit PDF Reader”为例,福昕PDF阅读器是一款广受欢迎的绿色PDF阅读器。它以其小巧的体积、快速的启动速度和丰富的功能著称。福昕阅读器支持打开、阅读、打印PDF文件,还提供了注释、书签、页面...

    pdfbox-app-1.7.1.jar pdf操作

    3. **文本提取**:能够从PDF中提取文本,这对于文档搜索、文本分析和自动化处理非常有用。 4. **图像提取**:可以提取PDF中的图像,以JPG、PNG或其他格式保存。 5. **表单处理**:支持交互式PDF表单的填写和导出,...

    V680S与PLC之间通信协议的研究.pdf

    Modbus/TCP协议所有的请求都是通过TCP从寄存器端口502发出的。它通过简单地将Modbus帧嵌入到TCP帧中的方法来实现面向连接的数据传输,这种协议需要有响应。 在音圈振膜生产线中,V680S系列的RFID通信问题被测试和...

    aDesk桌面虚拟化典型部署.pptx

    以某学校为例,电子阅览室主要用来浏览电子图书馆,需要支持MS Office、PDF Reader和IE浏览器等应用,允许学生通过U盘保存资料,同时考虑到安全因素,必须限制网络检索。而电子教室主要用于软件培训和考试,需要屏幕...

    protobuf的安装和使用 (2).pdf

    它允许开发者定义数据结构(称为消息类型),然后生成能够在各种编程语言中使用的代码,以方便地序列化和反序列化这些数据。在C++中,protobuf会根据.proto文件自动生成消息类的定义和实现,极大地简化了数据交换的...

    电信设备-一种可移动搅拌反应釜.zip

    8. **自动化流程**:在处理大量类似文档时,自动化工具(如脚本或工作流软件)可以帮助批量处理任务,如批量命名、转换或分发文件。 9. **合规性和法规遵循**:在某些行业,如电信,必须遵循特定的数据保护和记录...

    图书管理系统的UML图.pdf

    图书管理系统是一种常见的软件应用,用于自动化图书馆的日常运营,包括图书的借阅、归还、预定、查询等操作。在UML(统一建模语言)中,我们可以使用多种图表来描述系统的结构和行为。以下是对图书管理系统UML图的...

    计算机应用技术(实用手册)

    此项目允许您去选择 [ENABLED],以让您在DOS环境下可以使用USB鼠标,或是选择 [OS] 以在OS环境下使用。在默认情况下是关闭的即:[DISABLED],只有打开在DOS下才可以用。 AC97 Audio 这个选项开启或关闭集成声卡...

    官方驱动-三星 SCH-X609说明书使用手册(中文版)(ver.1.0)-三星手机驱动.rar

    值得注意的是,随着科技的发展,许多现代智能手机已经简化了驱动程序的安装过程,很多功能可以直接通过内置的软件和自动更新来实现。 在处理这样的文件时,用户应确保电脑上已安装了支持PDF阅读的软件,如Adobe ...

    疯狂JAVA讲义

    学生提问:图11.15和图11.16显示的所有按钮都紧挨在一起,如果希望像FlowLayout、GridLayout等布局管理器指定组件的间距该怎么办? 397 11.4 AWT 常用组件 398 11.4.1 基本组件 398 11.4.2 对话框 400 11.5 事件...

Global site tag (gtag.js) - Google Analytics