Donnez vie à vos documents numériques !
 

Automatisation assemblage de PDF

abracadabraPDF Forums PDF – Général Automatisation assemblage de PDF

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45538

    Bonjour à tous,

    J’espère ne pas être passé à côté de la réponse sur le forum, mais il ne me semble pas avoir trouver.

    J’ai Acrobat Pro DC.

    Voilà ce que je recherche à faire :

    J’ai un dossier “A traiter”, qui comporte lui-même d’autres dossiers et dans chacun d’eux 3 fichiers pdf nommés A, B et C.

    Je souhaiterai automatiser l’assemblage de mes fichiers PDF. Je lance un processus qui irait chercher pour chacun des sous-dossiers mes fichiers A,B et C qui les assemblerait (plus ajout d’un pied de page) puis qui enregistrerait le fichier ainsi obtenu en lui donnant le nom du dossier.

    Sur le papier, ça ne me semble pas impossible. J’ai regardé du côté des actions mais ça ne semble pas possible.

    Merci beaucoup de votre aide, ça me ferait gagner un temps précieux à l’avenir.  :priere:

Affichage de 22 réponses de 1 à 22 (sur un total de 22)
  • Auteur
    Réponses
  • #61690
    bebarth
    Maître des clés

    bonsoir,
    A première vue, ça ne semble pas irréalisable… peut-être pas si facile que ça, mais ça vaut le coup d’essayer !!!
    Que sont les noms des dossiers qui se trouvent dans “A traiter” ? Y a-t-il une récurrence ??? un numéro d’ordre ??? le nom peut être n’importe quoi ???
    Idem pour les fichier A, B et C ! Est-ce réellement leurs noms ???
    Quel est le bas de page ??? image, texte…
    Ou doit-être enregistré le fichier assemblé ?
    De tous ces critères dépendra la complexité du script à écrire.
    Si tu as un dossier avec des fichiers à poster comme exemple, c’est encore mieux !
    @+
    :bonjour:

    #61691

    Bonsoir,

    Merci pour votre réponse.
    Les dossiers qui sont dans à traiter n’ont pas de noms particuliers. Ca peut être n’importe quoi.

    Par contre, les fichiers A, B et C s’appelleront toujours ainsi dans chaque dossier (justement car ça me semble plus simple pour la suite).
    Pour le pied de page, non c’est simple c’est juste du texte.

    Le fichier assemblé serait à enregistrer dans un dossier “Terminé” par exemple.

    Comme effectivement, c’est plus simple avec des exemples.

    En voici un, un dossier contient :
    – un fichier PG.pdf (page de garde) 1 seule page
    – un fichier C.pdf (plusieurs pages)
    – un fichier NB.pdf (plusieurs pages)

    Je souhaite aussi rajouter en deuxième page un fichier Pdf “instructions” qui lui est unique et ne sera pas répéter dans chaque dossier.
    Le fichier à la racine du dossier est le fichier final à obtenir. Je voudrais l’alléger,  et le protéger de la modification.

    Comme il est trop gros pour être joint, voici le lien de téléchargement : http://www.sendbox.fr/1e9da03fe36aae0e/EXEMPLE.rar

    Merci beaucoup de ton aide  :Smiley01:

    #61692
    bebarth
    Maître des clés

    bonjour,
    Désolé, mais je n’ai pas eu le temps aujourd’hui de regarder ton problème. J’essaie ce soir ou demain.
    Questions :
    Tu as donné les noms de fichiers dans l’ordre ?
    Les fichiers sont tous toujours différents ? Le fichier PG n’est pas commun des fois !

    Au sujet du pied de page, c’est toujours le même ? sur toutes les pages ? toutes les pages sont au même format ? A4 ou….

    @+
    :bonjour:

    #61693

    Bonsoir bebarth,

    C’est très gentil de m’aider.
    Les noms de fichiers à combiner en réalité sont libres, on peut les appeler comme on veut ça n’a pas d’importance. Par exemple si c’est plus simple de les appeler 1,2 et 3 que PG, C et NB pourquoi pas.

    Par contre les fichiers contenus dans chaque dossier sont différents. Il n’y a que le fichier instruction qui est commun.

    Le pied de page est toujours le même et les pages sont toutes en A4 portrait.

    Merci beaucoup par avance

    #61694
    bebarth
    Maître des clés

    bonsoir,
    ça avance bien, je devrais pouvoir te proposer quelque chose demain.
    @+
    :bonjour:

    #61695

    :Smiley03: merci beaucoup ! J ai hâte d essayer

    #61696
    bebarth
    Maître des clés

    bonjour,

    ça avance bien, je devrais pouvoir te proposer quelque chose demain.

    Je traduis, ça voulais dire “j’en ai marre pour ce soir et je vais me coucher !”  :geek:

    Voici donc le résultat : Une action qui fonctionne, mais uniquement dans le meilleur des mondes.
    Ce qui signifie que je n’ai pas traité toutes les conditions avec renvoi d’un message s’il y a erreur…
    Il te faut un dossier “A Traiter” à peut près n’importe où tu à les permissions d’écriture, mais il ne doit pas y avoir de caractères accentués ou caractères spéciaux dans le chemin d’accès du fichier. J’ai déjà traité le cas dans un script précédent, et ce n’est pas facile à gérer.
    Tu lances donc l’action, puis tu va “Ajouter un dossier…” et tu sélectionnes le dossier “A Traiter”. Tous les fichiers pdf vont alors être ajoutés à la liste, mais uniquement les fichier “PG.pdf” seront traités.
    Le fichier “Instructions.pdf” ainsi qu’un dossier “Fichiers Assembles” (sans accent) doivent être directement sous “A Traiter”.
    Tu essaies et tu me dis ! L’action fonctionne très bien sur mes 2 Mac’s.
    Il y aurait certainement la possibilité d’ajouter et d’améliorer certaines choses. On verra plus tard, si cette action te convient déjà.
    @+
    :bonjour:

    #61697

    Bonsoir,

    Les captures d’écrans font envie. Mais je viens d’essayer plusieurs fois, et ça ne semble pas fonctionner.
    Le dossier Fichiers Assembles reste vide.

    Je te joins des captures, au cas où, il y aurait un truc que je n’aurais pas suivi correctement. Comme cela se devine sur les images, je suis sur Windows 10

    HS : Ouh ! Honte à moi j’ai mal orthographié “Terrasse”, et ça fait mal aux yeux. Je suis désolée.

    #61698
    bebarth
    Maître des clés

    bonjour,
    …et que dit la console ???  :Euuuh:
    Comme je l’ai indiqué, l’action ne fonctionne que dans le meilleur des mondes, et dans ce monde là, il y a un “T” majuscule dans le nom du dossier “A Traiter”.
    Le script vérifie que les dossiers et fichiers sont bien dans ce répertoire, s’ils ne le sont pas, l’action ne fonctionne pas. Mais comme je l’ai dit dans mon message précédent :

    …je n’ai pas traité toutes les conditions avec renvoi d’un message s’il y a erreur…

    Je re-joins un fichier action ou j’ai sorti quelques lignes d’une boucle,
    Je joint également un fichier avec le code javascript.
    @+
    :bonjour:

    #61699

    Bonjour Bebarth !

    En effet, tu l’avais bien précisé mais je n’avais pas fait attention à ce T majuscule, et cela venait tout simplement de là !  :soleil:

    Du coup ça fonctionne super bien, et le rendu est exactement celui attendu.  :bravo: :bravo:

    Un énorme Merci  :Smiley03:

    J’ai bien ouvert le fichier javascript, très bien commenté pour me permettre de le modifier.

    J’ai quelques petites questions :
    – comment modifier le fond bleu du bas de page ainsi que la police s’il s’agit d’une police non “standard”. Dans mon cas, c’est Open Sans (regular).
    – dans mes sous-dossiers je peux avoir d’autres fichiers que des PDF (jpg, png et autres formats). Comment lui demander de ne pas les traiter ?
    Et une petite dernière, comment passer du javascript à une action dans acrobat ?

    Encore très sincèrement, un grand merci ! :Ooops:

    #61700
    bebarth
    Maître des clés

    bonjour,
    1) Pour savoir ce que tu peux modifier pour le champ, tu devrais à peu près tous trouver à cette adresse :
    http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_properties.htm
    Regarde fillColor pour le fond et textFont pour la police. je ne suis pas expert en police, alors les police “standard” ça va, mais les autres je ne sais pas comment les appeler…
    Tu peux aussi modifier d’autres paramètres !!!
    Ensuite, tu met tes nouveaux paramètres avec les autres, en dessous de // Construction du champ texte
    f.fillColor = …

    2) Lorsque tu choisi le dossier “A Traiter” pour ton action, même les fichiers autres que pdf sont indiqués, mais seuls les fichiers “PG.pdf” sont traités.

    3) pour modifier l’action, tu fais clique droit sur l’action et modifier… (tu gardes le fichier .sequ de côté, au cas où…).

    @+
    :bonjour:

    #61701

    Super je vais regarder tout ça.

    Pour les autres fichiers, j’avais essayé sans et avec mais apparemment il ouvre quand même les images, et demande si on veut l’enregistrer. (mon image jpg s’appelle alors image.pdf) je refuse et le script se poursuit. C’est pour ça que je posais la question.

    A bientôt

    #61702
    bebarth
    Maître des clés

    Le problème avec l’action, c’est qu’elle traite un fichier ouvert !
    C’est pourquoi j’ai rajouté this.dirty dans l’expression switch par défaut. Ça sert à fermer un fichier pdf sans l’enregistrer (au cas où il y aurait dans le pdf une opération automatique). Sauf qu’effectivement je n’ai pas pensé que l’action pouvait ouvrir d’autres formats de fichiers.
    Et pour dirty, il y a une note : If the document is temporary or newly created, setting dirty to false has no effect. That is, the user is still asked to save changes before closing the document.
    Je pense qu’il n’y a donc pas de solution ! du moins je ne vois pas, comme ça !!!
    @+
    :bonjour:

    #61703
    bebarth
    Maître des clés

    …ou alors tu sélectionnes uniquement les fichiers “PG.pdf” au lieu du dossier “A Traiter”, mais c’est moins automatique !!!
    ça dépend du nombre de fichiers non pdf présents !!!
    @+
    :bonjour:

    #61704

    Bonsoir,

    J’ai modifié le texte du bas de page, et la couleur sans soucis.
    Par contre pour la police et le remplissage bleu j’ai essayé avec f.fillcolor mais c’est sans effet.

    Je me pose alors une question, pourrait-on procéder de la façon suivante :

    On assemble les fichiers PDF comme il le fait sans se soucier des pieds de pages.
    Il traite donc tous les fichiers.
    Une fois terminé cette phase d’assemblage, on lui demande alors d’appliquer une action “Pied de page” (à créer dans Acrobat) sur tous les fichiers contenus dans le dossier “Fichiers Assembles”.

    Est-ce possible ? ça serait plus simple finalement et plus évolutif (imaginons par la suite que je souhaite appliquer un filigrane ou autre).

    Sinon reste la possibilité pour moi de lancer l’action manuellement sur tout le dossier. Mais si on peut tout faire en une fois pourquoi s’en priver ?

    Merci beaucoup en tout cas, je gagne déjà beaucoup de temps rien que pour l’assemblage des PDF.

    #61705
    Merlin
    Maître des clés

    j’ai essayé avec f.fillcolor mais c’est sans effet

    JavaScript est sensible à la casse : f.fillColor

    Est-ce possible ?

    Oui.

    #61706
    bebarth
    Maître des clés

    bonjour,

    f.fillColor = color.blue; // Couleur du fond
    ou
    f.fillColor = [“RGB”,1,1,.855]; // Couleur du fond en RVB
    ou
    f.fillColor = [“CMYK”,0,0,0.2,0]; // Couleur du fond en CMJN

    par exemple, mais pour la police, je ne sais pas !
    f.textFont = font.Helv; pour Helvetica, mais je ne sais pas comment appeler la police OpenSans. Merlin peut-être ???  :Euuuh:

    @+
    :bonjour:

    #61707
    Merlin
    Maître des clés

    [“RGB”,1,1,.855];

    Pour le CMJN c’est plus simple, mais pour les couleurs en RVB j’ai trouvé une astuce qui permet d’éviter de devoir convertir les valeurs des couches de couleur en centièmes comme ci-dessus : il faut demander au logiciel de se débrouiller tout seul !

    Ainsi pour la couleur R 72, V 188, B 200 on peut indiquer à JavaScript :

    Code:
    [“RGB”,72/255, 188/255, 200/255]

    :extra:

    #61708
    bebarth
    Maître des clés

    Merci Merlin,  :extra:

    et pour la police, il faut l’indiquer entre guillemets (testé et ça marche) :
    f.textFont = “OpenSans”; // Police du texte
    @+
    :bonjour:

    #61709

    Merci beaucoup de votre aide.

    Je connais pas le Javascript donc c’est tout nouveau pour moi.
    C’est Ok pour la police, mais le fond du pied de page me donne toujours du fil à retordre… le fond reste bleu.
    Je souhaiterai qu’il n’y ai pas de fond ou que celui-ci soit blanc.
    J’ai essayé avec :

    f.fillColor = [“CMYK”,0,0,0,0]
    f.fillColor = color.white

    Mais peut-être que ce n’est pas insérer où il faudrait. D’ailleurs j’ai pas trouvé où le pied de page a hérité du bleu…

    Je vous joins le code que j’ai.

    #61710
    bebarth
    Maître des clés

    bonsoir,
    Essaye juste de rajouter un “;” en fin de ligne !!!

    f.fillColor = [“CMYK”,0,0,0,0];
    ou
    f.fillColor = color.white;

    @+
    :bonjour:

    #61711
    Merlin
    Maître des clés

    f.fillColor = [“CMYK”,0,0,0,0];
    ou
    f.fillColor = color.white;

    Oui, inutile de mettre deux fois de suite la même instruction, de toute façon en JavaScript c’est le dernier qui a parlé qui a raison.

    Par ailleurs, il vaut mieux éviter de coder les couleurs en CMJN (ou CMYK) sauf si on a vraiment de bonnes raisons de le faire, c’est-à-dire si on manipule des documents destinés à être imprimés en offset. Autrement c’est contre-productif* et il vaut mieux utiliser les couleurs nommées** ou le mode RVB (RGB).

    * Pour plein de raisons trop longues à expliquer dans un post, mais Google Qwant est un ami…

    **
    color.white
    color.red
    etc.

Affichage de 22 réponses de 1 à 22 (sur un total de 22)
  • Vous devez être connecté pour répondre à ce sujet.