Utilisation API ADOBE ACROBAT PRO avec VBA Excel [Résolu]

Messages postés
83
Date d'inscription
mardi 7 juin 2005
Dernière intervention
19 février 2012
- 12 mai 2011 à 23:29 - Dernière réponse :
Messages postés
83
Date d'inscription
mardi 7 juin 2005
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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 13 mai 2011 à 02:28
3
Merci
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)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
83
Date d'inscription
mardi 7 juin 2005
Dernière intervention
19 février 2012
- 13 mai 2011 à 10:00
0
Merci
Bien...

Au final, je copié une zone blanche a cause du type de donnée, en transformant le CDbl en CInt sa marche...

Merci...
Commenter la réponse de Phalalis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.