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

时间:2017-04-20 00:53:17

标签: vba pdf adobe acrobat acrobat-sdk

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

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

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

我使用Acrobat的经验非常有限,我正在审核Acrobat SDK资源等,但证明具有挑战性。

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

1 个答案:

答案 0 :(得分:0)

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

这会快速将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