2017-04-20 6 views
0

Je travaille dans VBA (MS Office 2010) et je veux extraire des mots clés des pièces jointes PDF que je reçois régulièrement dans Outlook.Copier tout le texte du PDF dans le presse-papiers Windows

Je prévoyais de sauvegarder les fichiers PDF en tant que documents Word et d'en extraire le texte, mais apparemment je ne peux pas le faire par programmation car j'utilise Acrobat X Standard (il me semble que j'aurais besoin de Pro). Donc, je cherche maintenant un moyen de copier tout le texte d'un document PDF dans le presse-papiers de Windows en utilisant les méthodes Acrobat Library. Je vais ensuite coller dans Word (ce copier/coller fonctionne bien lorsqu'il est fait manuellement - pas de corruption de texte).

J'ai une expérience très limitée de travail avec Acrobat et j'étudie les ressources Acrobat SDK, etc., mais s'avère difficile. Comment puis-je sélectionner tout le texte d'un document PDF et le copier dans le presse-papier de Windows en utilisant les méthodes Acrobat Library dans VBA?

+0

... ou vous pouvez simplement mettre à jour. Acrobat XI Standard et DC Standard permettent d'exporter vers les formats Office via VBA. – joelgeraci

+0

Bon à savoir, au travail, mais vérifier si possible –

Répondre

0

Pour référence, j'ai résolu en utilisant le code ci-dessous.

Ce rapidement un fichier caudales PDF dans un fichier texte et de là, les mots clés peuvent être sélectionnés et lire dans une chaîne, mis dans le presse-papiers, etc.

Cela fonctionne avec Adobe X Standard.

code

est de 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