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

让所有程序 都可以 自动化 以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

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics