将所有文本从 PDF 复制到 Windows 剪贴板

Copy All Text from PDF to Windows Clipboard

我在 VBA (MS Office 2010) 中工作,想从我经常在 Outlook 中收到的 PDF 附件中提取一些关键词。

我计划将 PDF 保存为 Word 文档并从中提取文本,但显然我无法以编程方式执行此操作,因为我使用的是 Acrobat X Standard(似乎我需要 Pro)。

因此,我现在正在寻找一种使用 Acrobat 库方法将所有文本从 PDF 文档复制到 Windows 剪贴板的方法。然后我将粘贴到 Word 中(这个 copy/paste 在手动完成时工作正常 - 没有文本损坏)。

我使用 Acrobat 的经验非常有限,我正在审查 Acrobat SDK 资源等,但事实证明这很有挑战性。

如何使用 VBA 中的 Acrobat 库方法 select PDF 文档中的所有文本并将其复制到 Windows 剪贴板?

作为参考,我使用下面的代码解决了问题。

这可以快速将 PDF 文件转换为文本文件,然后可以从中选择关键字并将其读入字符串、放入剪贴板等。

这适用于 Adob​​e X Standard。

代码来自http://forum.chandoo.org/threads/vba-to-convert-pdf-to-txt.14245/

Dim AcroXApp As Acrobat.AcroApp
Dim AcroXAVDoc As Acrobat.AcroAVDoc
Dim AcroXPDDoc As Acrobat.AcroPDDoc
Dim Filename As String
Dim jsObj As Object
Dim NewFileName As String

Filename = "C:\Documents and Settings\xxx\Desktop\file01.pdf"
NewFileName = "U:\file.txt"

Set AcroXApp = CreateObject("AcroExch.App")
'AcroXApp.Show

Set AcroXAVDoc = CreateObject("AcroExch.AVDoc")
AcroXAVDoc.Open Filename, "Acrobat"
AcroXApp.Hide 'my additon - needed?

Set AcroXPDDoc = AcroXAVDoc.GetPDDoc

Set jsObj = AcroXPDDoc.GetJSObject

jsObj.SaveAs NewFileName, "com.adobe.acrobat.plain-text"

AcroXAVDoc.Close False
AcroXApp.Hide
AcroXApp.Exit

End Sub