Donnez vie à vos documents numériques !
 

Convertir des planches en pages

abracadabraPDF Forums PDF – Général Convertir des planches en pages

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45395
    bebarth
    Maître des clés

    Bonjour,
    on m’a soumis un problème pour convertir en pages des fichiers pdf récupérés en planches (de 2 pages).
    j’ai écris un script et utilise la méthode suivante :
    je fais une copie du fichier original que je ré-insert à la fin de mon fichier
    je récupère les informations de rognage
    je récupère les “pages de gauche” sur la première moitié du fichier
    je récupère les “pages de droite” sur la deuxième moitié du fichier
    j’intercale les pages : une page gauche, une page droite
    puis je supprime la première page (qui est apparemment toujours vierge)
    ce qui donne :
    var aRect = this.getPageBox(“Trim”);
    var width = aRect[2] – aRect[0];
    var height = aRect[1] – aRect[3];
    var largeur = width/2;
    var nbPages = this.numPages – 1;
    //Copie du fichier
    this.saveAs({
    cPath: “copie.pdf”,
    bCopy: true,
    bPromptToOverwrite: true,
    });
    //Insertion de la copie
    this.insertPages ({
    nPage: nbPages,
    cPath: “copie.pdf”,
    });
    //Rognage des “pages de gauches” sur la première moitié
    this.setPageBoxes({
    cBox: “Crop”,
    nStart: 0,
    nEnd: nbPages,
    rBox: [aRect[0], aRect[1], aRect[0]+largeur, aRect[3]], //Pages de gauche
    });
    //Rognage des “pages de droite” sur la seconde moitié
    this.setPageBoxes({
    cBox: “Crop”,
    nStart: nbPages+1,
    nEnd: this.numPages – 1,
    rBox: [aRect[0]+largeur, aRect[1], aRect[2], aRect[3]], //Pages de droite
    });
    //Rognage Media Box
    this.setPageBoxes({
    cBox: “Media”,
    rBox: [0, height, largeur, 0],
    });
    //Intercallage pages de gauche et pages de droite
    for (i = this.numPages – 1; i > nbPages; i–) this.movePage(this.numPages – 1,i-nbPages-1);
    //Suppression de la première page
    this.deletePages();
    //Message
    app.alert(this.numPages + ” pages ont été rognées aux dimensions : ” + Math.ceil(largeur*10*25.4/72)/10 + ” x ” + Math.ceil(height*10*25.4/72)/10 + ” mm.”,3);

    par contre, il faut ensuite supprimer manuellement le fichier “copie”.

    j’aimerais savoir s’il y a une méthode qui pourrait me permettre de dupliquer toutes les pages de mon document initial sans avoir recourt à une copie de fichier.
    j’avais une piste avec la fonction “spawnPageFromTemplate” mais je ne m’en sort pas !!!

    j’espère avoir été assez clair… si un spécialiste à une idée…
    merci.
    :doute:

Affichage de 8 réponses de 1 à 8 (sur un total de 8)
  • Auteur
    Réponses
  • #60533
    Merlin
    Maître des clés

    Bonjour.

    Je vais répondre sans répondre, et sans regarder ton script…
    Parce-qu’en fait j’en ai déjà un qui fait ça très bien, à placer dans le dossier JavaScripts d’Acrobat (c’est un script de document).
    C’est cadeau.

    :soleil:

    #60534
    bebarth
    Maître des clés

    Bonjour Merlin et merci pour ta réponse.
    j’ai placé le fichier dans le dossier javascript, mais cela ne fonctionne pas. j’ai une erreur interne lorsque je lance le script.
    j’ai regardé vite fait mais pour l’instant je n’ai pas vu d’où ça peut venir… par contre, le script ressemble à ce que j’ai écris. je regarderai ça plus précisément demain…
    j’ai par contre une question que je me pose ! dans mons script je redéfini la taille de la Media Box avec :
    this.setPageBoxes({
    cBox: “Media”,
    rBox: [0, height, largeur, 0],
    });
    je pensais que toutes les données en dehors de cette zone serait perdues afin de diminuer la taille du fichier final, mais ça n’a pas l’air d’être le cas. la taille du fichier ne diminue pas.
    sais-tu quelque chose à ce sujet ?
    merci.
    :bonjour:

    #60535
    bebarth
    Maître des clés

    j’ai testé le début du script  avec une action et ça fonctionne très bien de créer un nouveau fichier et dupliquer chaque page.
    je pense qu’en combinant les 2 scripts je devrais m’en sortir.
    je te tiens au courant.
    merci
    :extra:

    #60536
    bebarth
    Maître des clés

    placé en action, ton script fonctionne très bien.
    il faut supprimer les lignes “app.beginPriv();” et “app.endPriv();”
    je pense que si l’on modifie le script de document, ça doit fonctionner également…
    @+
    :extra:

    #60537
    Merlin
    Maître des clés

    À la vérité c’est juste que j’ai oublié un “détail” : pour que ça fonctionne depuis un menu il faut cocher “Autoriser les privilèges d’exécution JavaScript d’éléments de menu” dans Préférences : JavaScript.

    :geek:

    #60538
    Merlin
    Maître des clés

    je pensais que toutes les données en dehors de cette zone serait perdues afin de diminuer la taille du fichier final, mais ça n’a pas l’air d’être le cas. la taille du fichier ne diminue pas.

    Dans un PDF le recadrage est un masque, qui ne fait que masquer une partie du document sans rien supprimer. Il ne faut donc pas compter sur ça pour réduire le poids du fichier.

    Il existe un correctif (fixup) de Contrôle en amont qui permet de supprimer vraiment tous les éléments qui sont en dehors de la zone de rogne (trimbox).

    #60539
    bebarth
    Maître des clés

    bonjour Merlin,
    j’ai utilisé la partie de ton script pour créer un nouveau document et dupliquer les pages, que j’ai intégré au script que j’avais écris.
    ton script coupe les planches en 2 alors que alors que mon problème était de rogner au niveau des hirondelles.
    je joins un fichier action avec le script final si cela intéresse quelqu’un.
    encore merci & @+.
    :geek:

    #60540
    Merlin
    Maître des clés

    :bonjour:

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