IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Decouper un pdf


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Decouper un pdf
    Bonjour,

    je souhaiterais pourvoir dissocier un fichier PDF en plusieur fichiers.
    sur ce PDF il ya de nombreuses factures et donc je souhaiterais decouper ce fichier pour chacunes des factures, qu'elles fassent 1 ou x pages. et récuperer dans un string le numéro de la facture pour l'insérer dans un fichier excel.
    La plupart des exemples que je trouve font appel à une librairie que je ne peux installer car peut etre trop anciennes.
    Pourriez vous me conseiller s'il vous plait ? Un tuto par exemple.

    Vous en remerciant par avance.

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Aujourd'hui nombre de pdf sont traitables par PowerQuery, intégré à Excel2016 &+...

  3. #3
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 1 032
    Par défaut
    Bonjour,
    De mémoire, de nos jours il faut Acrobat Pro pour pouvoir gérer les PDF.
    Voir ce site de la documentation officielle: https://opensource.adobe.com/dc-acro...Exch_PDDoc.htm
    Qui donne tous les détails et beaucoup d'exemples, vous devriez y trouver vos réponses, sous réserve d'avoir Acrobat Pro.
    Je m'en suis servi pour écrire cette fonction qui fusionne deux PDF :

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    '------------------------------------------------------------------------------------------------
    Public Function FusionAcrobatPro(FichierSource As String, _
                                     FichierAJoindre As String, _
                                     FichierDestination As String, _
                                     Ouvrir As Boolean) As Boolean
    '------------------------------------------------------------------------------------------------------
    ' Fait la fusion de deux fichiers PDF pour en générer un troisième.
    ' Documentation Officielle:
    ' https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/index.html#t=Acro12_MasterBook%2FIAC_API_OLE_Objects%2FAcroExch_PDDoc.htm
    '------------------------------------------------------------------------------------------------------
    ' FichierSource : le fichier d'origine (qui contient les premières pages).
    ' FichierAJoindre : le fichier à joindre au fichier d'origine, a la suite du fichier d'origine.
    ' FichierDestination : le fichier qui sera générer par cette fusion.
    ' Ouvrir : VRAI s'il faut ouvrir le fichier fusionné.
    '------------------------------------------------------------------------------------------------------
    ' Renvoie : VRAI si tout s'est bien passé.
    '------------------------------------------------------------------------------------------------------
    ' Exemple:
    ' Call FusionAcrobatPro("C:\Users\ott_l\Downloads\FichierA.pdf", _
    '                       "C:\Users\ott_l\Downloads\FichierB.pdf"_
    '                       "C:\Users\ott_l\Downloads\Fusion.pdf", True)
    '------------------------------------------------------------------------------------------------------
    ' Cas de la liaison tardive:
    Const PDSaveFull = 1
     
    ' Gestion des erreurs:
    Err.Clear
    On Error GoTo Gest_Err
     
    Dim oPdfDoc1 As Object
    Dim oPdfDoc2 As Object
     
    Set oPdfDoc1 = CreateObject("AcroExch.PDDoc")
    Set oPdfDoc2 = CreateObject("AcroExch.PDDoc")
     
    If oPdfDoc1.Open(FichierSource) = False Then _
        Err.Raise vbObjectError, "FusionAcrobatPro", "Le fichier [" & FichierSource & "] n'a pas été trouvée."
     
    If oPdfDoc1.GetNumPages() < 1 Then _
        Err.Raise vbObjectError, "FusionAcrobatPro", "Impossible de lire les pages du fichier [" & FichierSource & "]."
     
    If oPdfDoc2.Open(FichierAJoindre) = False Then _
        Err.Raise vbObjectError, "FusionAcrobatPro", "Le fichier [" & FichierAJoindre & "] n'a pas été trouvée."
     
    If oPdfDoc2.GetNumPages() < 1 Then _
        Err.Raise vbObjectError, "FusionAcrobatPro", "Impossible de lire les pages du fichier [" & FichierAJoindre & "]."
     
    If oPdfDoc1.InsertPages(0, oPdfDoc2, 0, oPdfDoc2.GetNumPages(), 0) = False Then _
        Err.Raise vbObjectError, "FusionAcrobatPro", "Impossible de fusionné les fichiers [" & FichierSource & "] + [" & FichierAJoindre & "]."
     
    If oPdfDoc1.Save(PDSaveFull, FichierDestination) = False Then _
        Err.Raise vbObjectError, "FusionAcrobatPro", "Impossible de sauvegarder la fusion [" & FichierDestination & "]."
     
    If Ouvrir = True Then Call Shell("Explorer.exe " & FichierDestination, vbMaximizedFocus)
     
    ' Fin du traitement:
    Gest_Err:
    If Err.Number <> 0 Then
        MsgBox "Erreur : " & Err.Number & vbCrLf & vbCrLf _
             & "Description : " & Err.Description & vbCrLf & vbCrLf _
             & "Source : " & Err.Source & vbCrLf & vbCrLf _
            , vbCritical, "L'application rencontre une erreur de traitement"
    Else
        FusionAcrobatPro = True
    End If
     
    On Error Resume Next
    oPdfDoc1.Close
    oPdfDoc2.Close
     
    Set oPdfDoc1 = Nothing
    Set oPdfDoc2 = Nothing
     
    Err.Clear
    End Function
    '------------------------------------------------------------------------------------------------
    Bonne programmation.

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 244
    Par défaut
    Hello,
    si tu as java installé sur ton ordinateur tu peux essayer d'utiliser PdfBox en l'appelant dans une commande shell
    Exemple d'utilisation pour extraire les pages 5 à 8 d'un PDF qui en comporte 31
    Usage: java -jar pdfbox-app-x.y.z.jar PDFSplit [options] <inputfile>


    Options:
    -password <password> : Password to decrypt document
    -split <integer> : split after this many pages (default 1, if startPage and endPage are unset)
    -startPage <integer> : start page
    -endPage <integer> : end page
    -outputPrefix <prefix> : Filename prefix for split files
    <inputfile> : The PDF document to use


    D:\Temp\java>dir
    Répertoire de D:\Temp\java


    12/01/2021 12:45 322 387 fr_eng.pdf
    08/09/2022 08:47 10 081 077 pdfbox-app-2.0.26.jar


    D:\Temp\java>java -jar pdfbox-app-2.0.26.jar PDFSplit -startPage 5 -endPage 8 -outputPrefix sortie fr_eng.pdf


    D:\Temp\java>dir
    Répertoire de D:\Temp\java
    12/01/2021 12:45 322 387 fr_eng.pdf
    08/09/2022 08:47 10 081 077 pdfbox-app-2.0.26.jar
    08/09/2022 08:55 217 847 sortie-1.pdf

    Ami calmant, J.P

  5. #5
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Bonjour à vous,
    Kiki29 a fait à une époque toute une série de contributions pour traiter les fichiers PDF en VBA.

    Il utilisait les fonctions de divers logiciels comme Acrobat Pro ou PDFCreator 1.7.3 (la version la plus ouverte à l'époque).

    Faits une recherche dans les contributions du forum Excel.

    Cordialement,

    ESVBA

Discussions similaires

  1. Poids d'un PDF decouper (split) PDFbox
    Par titi42 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 05/03/2015, 12h00
  2. [] Convertir un fichier word en pdf
    Par SpaceFrog dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/12/2002, 15h27
  3. langage] Découper une chaine suivant un délimiteur
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 25/11/2002, 16h25
  4. Affichage de documents PDF
    Par Dajon dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/10/2002, 11h36
  5. [CR] exporter en PDF
    Par Nathy dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 16/05/2002, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo