将所有文本从 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 文件转换为文本文件,然后可以从中选择关键字并将其读入字符串、放入剪贴板等。
这适用于 Adobe 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
我在 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 文件转换为文本文件,然后可以从中选择关键字并将其读入字符串、放入剪贴板等。
这适用于 Adobe 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