首页 文章

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

提问于
浏览
0

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

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

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

我在使用Acrobat和审查Acrobat SDK资源等方面的经验非常有限,但证明具有挑战性 .

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

1 回答

  • 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
    

相关问题