Utilisation API ADOBE ACROBAT PRO avec VBA Excel

Résolu
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 - 12 mai 2011 à 23:29
Phalalis Messages postés 83 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 19 février 2012 - 13 mai 2011 à 10:00
Bonjour....Enfin bonsoir a cette heure.

Je suis en train de programmé une petite macro qui doit allez chercher les pages d'un pdf.

J'arrive bien a ouvrir mon pdf...mais pour ce qui est de la copie je séche...

Je tente d'utilisé le CopyToClipboard mais lorsque je fait mon paste...Je colle une zone blanche...

Voici mon code :
Private Sub DocPDF(ByVal sFichier As String, sName As String)

Dim oApp As Object
Dim PdfDoc As Object
Dim PdfPage As Object
Dim ObjPageSize As Object
Dim AvDoc As Object
Dim CheminPDF As String
Dim Num, i As Integer
Dim ObjRect As Object

    CheminPDF = sFichier
    Set oApp = CreateObject("AcroExch.App")
    Set AvDoc = CreateObject("AcroExch.AVDoc")
    
    If AvDoc.Open(CheminPDF, "") Then
        oApp.Show
        Set PdfDoc = AvDoc.GetPDDoc()
        Num = PdfDoc.GetNumPages()
    End If
    
    For i = 0 To Num - 1
        Set PdfPage = PdfDoc.AcquirePage(i)
        PdfPage.SetRotate (90)
        Set ObjPageSize = PdfPage.GetSize()
       Set ObjRect = oApp.getFrame()
       With ObjRect
            .Left = 0
            .Top = 0
            .Right = CDbl(ObjPageSize.x) 
            .Bottom = CDbl(ObjPageSize.y)
        End With
        PdfPage.CopyToClipboard ObjRect, ObjPageSize.x, ObjPageSize.y, 100
        Workbooks(sName).Activate
        ActiveSheet.Paste
    Next i   
    Set PdfDoc = Nothing
        AvDoc.Close (1)
    Set AvDoc = Nothing
    Set oApp = Nothing
End Sub


Je pense que j'utilise mal le CopyToClipboard...Ou alors mon ObjRect n'est pas défini...
L'api dit :
VARIANT_BOOL CopyToClipboard(LPDISPATCH boundRect,
short nXOrigin,short nYOrigin,
short nZoom);

boundRect
The LPDISPATCH for the AcroExch.Rect bounding rectangle in device space coordinates. boundRect contains the instance variable m_lpDispatch, which contains the LPDISPATCH.
nXOrigin
The x?coordinate of the portion of the page to be copied.
nYOrigin
The y?coordinate of the portion of the page to be copied.
nZoom
Zoom factor at which the page is copied, specified as a percent. For example, 100 corresponds to a magnification of 1.0.

J'avoue je coince

Merci d'avance

Cdt
A voir également:

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mai 2011 à 02:28
Salut

Essaye ça :
L'API te demande les coordonnées de départ (origin), pas celles de fin de la zone (PageSize).
PdfPage.CopyToClipboard ObjRect, 0, 0, 100

De plus, connaissant les types des variables demandées, j'aurai déclaré des structures compatibles au lieu de ce générique "As Object"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Rejoignez-nous