使用命令行开关将PDF保存为文本 – 可以完成吗?

我需要使用命令行开关执行“另存为文本”命令。 理想情况下,我想:

  1. 使用命令行开关打开PDF
  2. 使用命令行开关通过模仿“另存为文本”命令将PDF转换为文本文件。
  3. 使用命令行closuresPDF。

这可能吗? 如果是这样,那么有没有人知道如何做到这一点?

不要使用CMD; 使用AutoIt。 很容易做,并采取几行

Run("file.pdf") winwait("Adobe") send(?);; whatever commands necessary to save as text send("{enter}") send("!{F4}") 

我不明白你为什么不想使用免费软件(而不是免费软件), pdftotext是理想的解决方案。 但是,如果您只想使用Windows GUI以自动方式打开并保存PDF,则可以使用vbscript和sendkeys命令。

只要使用pdftotext,它会更可靠,不会花费你一整盒。

我认为下面的VBScript应该做的伎俩。 它将把所有的.pdf文件放在给定的文件夹位置,并保存为.txt文件。 一个主要的缺点是只有当你的机器因为使用SendKeys命令而没有被锁定时才有效。 如果任何人有一个解决方案,而电脑锁定,请发送它的方式!

 Set objFSO = CreateObject("Scripting.FileSystemObject") objStartFolder = "PATH_OF_ALL_PDFS_YOU_WANT_TO_CONVERT_HERE" Set objFolder = objFSO.GetFolder(objStartFolder) Set colFiles = objFolder.Files For Each objFile in colFiles extension = Mid(objFile.Name,len(objFile.Name)-3,4) file = Mid(objFile.Name,1,len(objFile.Name)-4) fullname = """PATH_OF_ALL_PDFS_YOU_WANT_TO_CONVERT_HERE" + objFile.Name + """" fullname_txt = "PATH_OF_ALL_PDFS_YOU_WANT_TO_CONVERT_HERE" + file + ".txt" Set objFSO = CreateObject("Scripting.FileSystemObject") if extension = ".pdf" and not objFSO.FileExists(file+".txt") then set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run fullname WScript.Sleep 1000 WshShell.SendKeys "%" WScript.Sleep 100 WshShell.SendKeys "f" WScript.Sleep 100 WshShell.SendKeys "h" WScript.Sleep 100 WshShell.SendKeys "x" WScript.Sleep 300 WshShell.SendKeys "{ENTER}" count = 0 'this little step prevents the loop from moving on to the next .pdf before the conversion to .txt is complete Do While i=0 and count < 100 On Error Resume Next Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile = fso.OpenTextFile(fullname_txt,8) If Err.Number = 0 Then i = 1 End If count = count + 1 Wscript.Sleep 20000 Loop end if Next