Donnez vie à vos documents numériques !
 

Extraire des pages d’un PDF et les enregistrer dans un seul PDF sauvegardable

abracadabraPDF Forums PDF – Général Extraire des pages d’un PDF et les enregistrer dans un seul PDF sauvegardable

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45503
    passifacile
    Participant

    Bonjour à toutes et à tous.

    Il y a quelques temps un an :Smiley01:, j’avais ouvert un sujet http://abracadabrapdf.net/forum/index.php/topic,2801.msg15688.html#msg15688 concernant un PDF permettant de sélectionner par cases à cocher, des pages ou des plages de pages, et de les imprimer.

    Bebarth avait eu la gentillesse de résoudre brillamment le problème.

    Aujourd’hui, je voudrais permettre l’enregistrement des pages sélectionnées en un seul PDF indépendant, qui conserverait un format de « formulaire » enregistrable.

    Est-il possible de configurer le bouton « imprimer » pour qu’il extraie les pages sélectionnées (y compris en n exemplaires selon choix de l’utilisateur) et qu’il les sauvegarde en un seul document PDF (formulaire) qui pourra être enregistré avec adobe reader par les utilisateurs ?

    Merci par avance de vos éclairages avisés et des pistes à explorer suggérées…

    Cordialement,

    Passifacile

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

    bonjour,
    Ça ne devrait pas poser de problème, je vais essayer de te faire ça demain matin.
    Le bouton “Imprimer” doit faire les 2 actions : “Imprimer” et “Extraire” ?
    Lorsqu’on imprime plusieurs fois, on extrait la page le même nombre de fois ???
    @+
    :bonjour:

    #61462
    Merlin
    Maître des clés

    Bonjour.

    Est-il possible de configurer le bouton « imprimer » pour qu’il extraie les pages sélectionnées (y compris en n exemplaires selon choix de l’utilisateur) et qu’il les sauvegarde en un seul document PDF (formulaire) qui pourra être enregistré avec Adobe Reader par les utilisateurs ?

    Bebarth est de bonne volonté mais il a lu trop vite.  :Smiley03:

    La réponse est non, ce n’est pas possible avec Reader.
    Il faudrait que les utilisateurs aient Acrobat Pro ou Standard.

    #61463
    bebarth
    Maître des clés

    Correct !!!
    J’ai tendance à faire abstraction à Adobe Reader…
    @+
    :bonjour:

    #61464
    passifacile
    Participant

    :mur: Zut, flûte, … !

    :idee: En solution de repli, peut-on imaginer d’afficher un champ gris grand comme une page sur chacune de celles non concernées par le choix d’impression ?

    Ainsi, l’utilisateur ne distinguerait et ne pourrait compléter que les pages pertinentes ( :doute: pas super “user oriented”, mais, bon, c’est mieux que rien).

    :extra: Ou mieux, encore : peut-on “cacher” les pages non concernées, c’est-à dire  empêcher leur affichage ?

    Qu’en pensez-vous, est-ce que Monsieur Reader le permet ?

    :priere: Et le cas échéant, vous voudriez bien me dire comment le faire ?

    #61465
    Merlin
    Maître des clés

    On peut utiliser un pseudo masquage/affichage des pages avec Reader, versions 11 et DC uniquement.

    Pour ça il faut enregistrer les pages comme modèles (templates), et générer toutes les pages du document à partir de ces modèles (une simple duplication : spawnPageFromTemplate), même s’ils ne servent à rien d’autre.

    Parce-que les seules pages que Reader peut ajouter ou supprimer dans un document sont les pages issues d’un modèle.

    OK, ça peut paraitre absurde, mais c’est comme ça…
    :geek:

    #61466
    passifacile
    Participant

    La fonction spawnPageFromTemplate, dans mon cas, ne va pas être utile (je garde cependant en mémoire la fonction, très utile, et le tuto y relatif est super bien fait).

    J’ai besoin de cacher/afficher des pages dans un document figé de n pages.

    Pour cela, avec la fonction “Modèle de page”, j’ai créé des modèles différents selon les pages à masquer (je n’ai pas trouvé comment appliquer un même Template à plusieurs pages).

    Depuis Acrobat, je peux afficher le menu, et “jouer” avec les “yeux” des modèles pour les faire disparaître ou apparaître.

    Cependant, la réapparition d’une page cachée ne s’opère pas à l’emplacement initial, mais la rajoute à la fin du document.

    Y a-t-il un moyen de gérer le masquage par script (si case à cocher active, alors masquer modèle x, y, z…) et de retrouver l’affichage des pages aux endroits initiaux (si case à cocher désactivée, alors ré-insertion des pages à leur place initiale) ?

    #61467
    passifacile
    Participant

    Pour le script, je me réponds  :Smiley03:
    var f = this.getTemplate(“03”);
    f.hidden = true;  (ou false, selon besoin)

    Par contre, je n’arrive pas encore à afficher la page à l’endroit initial…

    SOS…SOS…SOS…

    #61468
    passifacile
    Participant

    Un pas devant l’autre, et j’avance  :Smiley01: mais pas tout à fait dans la bonne direction…  :Smiley02:

    J’ai scripté la case à cocher “document 1” (entourée en rouge) du document annexé pour afficher ou cacher des pages (en l’occurrence celles de 11 à 14).

    Ça marche, mais je n’arrive pas à réafficher les pages cachées aux emplacements initiaux (elles se positionnent toujours en fin de document…  :mur:

    Si une bonne âme pouvait me dire comment placer le prochain pas pour me remettre sur le droit bon chemin, je pense pouvoir lui en être éternellement reconnaissant (au bas mot)  :Smiley08:

    #61469
    Merlin
    Maître des clés

    Bonjour.

    Comme c’est effectivement un vrai casse-tête… Je l’ai résolu en contournant le problème.
    Toutes les pages du document, sauf la première, sont un template, et quand je veux en faire apparaitre une à un emplacement précis, je masque toutes les pages et je fait réapparaitre toutes celles dont j’ai besoin dans l’ordre qui convient.

    Ce qui se traduit par :

    Code:
    //s’il y a d’autres pages affichées en + de la 1re on les masque toutes, sauf la 1re
    if (this.numPages > 1) {this.deletePages({nStart: 1, nEnd: this.numPages-1});}
    // on réaffiche les pages dont on a besoin
    this.spawnPageFromTemplate({cTemplate: “page0”, bRename: false});
    this.spawnPageFromTemplate({cTemplate: “page1”, bRename: false});
    this.spawnPageFromTemplate({cTemplate: “page4”, bRename: false});
    // on affiche la 1re page (ou n’importe laquelle)
    this.pageNum = 0;

    :geek:

    Attention : spawnPageFromTemplate fonctionne avec toutes les versions d’Acrobat mais seulement avec Reader versions 11 et DC.

    #61470
    Merlin
    Maître des clés

    La fonction spawnPageFromTemplate, dans mon cas, ne va pas être utile (je garde cependant en mémoire la fonction, très utile, et le tuto relatif est super bien fait).

    Je te remercie, mais du coup j’ai relu ce tuto… Et j’en ai conclu qu’il fallait tout refaire tellement c’était confus.  :geek:
    Ce que j’ai fait, mais cette fois il y est question de la fonction plus moderne getTemplate, sur la base d’un exemple plus simple :
    http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/dupliquer-dynamiquement-des-pages-dans-un-pdf/

    Le paramètre nPage devrait t’intéresser…

    :Smiley15:

    #61471
    bebarth
    Maître des clés

    bonjour Merlin,
    Il n’y a plus la possibilité d’ enregistrer tes tutos  au format pdf ??? C’était bien pratique !
    @+
    :bonjour:

    #61472
    Merlin
    Maître des clés

    Cette fonction est revenue !
    :extra:

    #61473
    bebarth
    Maître des clés

    merci Merlin !
    c’est vrai qu’il y a un peu de pub, mais c’est bien pratique quand même…
    Je viens même de m’apercevoir que l’on peut supprimer certaines parties de textes (publier sur  facebook, etc.) ce qui va bien m’éclaircir mes fichiers et impression ! bien sûr, il faut prendre le temps de supprimer ces textes.
    @+
    :bonjour:

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