Donnez vie à vos documents numériques !
 

Imprimer une zone de document en pleine page

abracadabraPDF Forums PDF – Général Imprimer une zone de document en pleine page

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

    Bonjour,
    Aujourd’hui je suis en pleine réflexion de faisabilité !
    Le fichier joint est constitué d’un cartouche (le cadre) et d’un plan. Lorsqu’on imprime ce fichier, le plan peut paraître un peu petit…
    Je voudrais donc ajouter à chaque plan un bouton permettant de définir automatiquement la zone de dessin puis de l’imprimer pleine page !  :doute:
    Ces plans étant réalisés sous Illustrator, je pourrais sinon définir cette zone, puis sous Acrobat imprimer cette zone pleine page.
    Si quelqu’un  :siffle: a un début d’idée…
    Si l’on place le dessin et le cartouche sur deux calques différents par exemple, est-ce que cela pourrait faciliter l’opération ?
    Merci.
    :bonjour:

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

    bon, ben j’ai trouvé comment récupérer la zone de dessin !
    donc il ne devrait plus y avoir de problème…

    // Zone de dessin
    var aRect=this.getPageBox({
    cBox: “Art”,
    });
    // Rognage
    this.setPageBoxes({
    cBox: “Crop”,
    rBox: [aRect[0], aRect[1], aRect[2], aRect[3]],
    });

    Je finis le script complet et le post plus tard…
    @+
    :bonjour:

    #61443
    bebarth
    Maître des clés

    …J’ai bien fait d’utiliser DEVRAIT car je tombe sur un premier problème !
    le cadre étant sur un calque, si je masque ce calque la zone “Art” considérée reste la même, et apparemment on ne peut pas supprimer un calque…
    Je fais un peu la conversation tout seul, désolé…
    @+
    :bonjour:

    #61444
    Merlin
    Maître des clés

    Bonjour.

    Pour le coup je crois que tu te casses bien la tête…
    Acrobat Reader permet de n’imprimer que la “Vue active”, ce qui laisse toute liberté à l’utilisateur pour imprimer ce qu’il veut dans le sens qu’il veut.

    Et c’est assez facile à expliquer en quelques lignes (placées dans une fenêtre d’alerte…).
    :Smiley15:

    #61445
    bebarth
    Maître des clés

    Bonjour Merlin,
    J’ai déjà proposé cette solution, mais ça ne convient pas… On suppose généralement que l’utilisateur ne veut pas se casser la tête avec plusieurs manipulations et que pour qu’une solution soit acceptable on ne doit avoir qu’un seul clique !!!
    @+
    :bonjour:

    #61446
    Merlin
    Maître des clés

    Et si un seul clic sur le bouton déclenchait un message explicatif suivi de l’affichage de la fenêtre d’impression ?

    Sinon il faudrait recadrer la page (et éventuellement aplatir les calques) mais ça ne fonctionnera pas avec Reader.

    #61447
    bebarth
    Maître des clés

    bon … Merlin (ou quelqu’un d’autre) peux-tu me dire ce que tu penses de mon essai !!!
    Ça me fera un peut de travail supplémentaire, mais voilà ce que j’ai trouvé pour l’instant. Avec un script sous Illustrator pour mettre le cadre et un autre sous Acrobat pour créer le Template, ça se fait bien…,
    Je duplique mon plan de travail sur Illustrator que je défini “Ajusté au limites de la sélection. Ça me donne donc 2 page sur le fichier pdf. Cette deuxième page je la définie en “Template caché” que je fais ré-apparaître pour l’impression.
    Question : que signifie le message “Une tentative d’impression…” ? j’ai déjà imprimé via javascript sans avoir ce message !!!
    Je fais apparaître un message pour la fermeture du document, mais s’il y a une solution pour afficher le fichier d’origine sans avoir à enregistrer (à cause du Template…)
    Merci pour les commentaires avant que je ne soumette ma solution…
    @+
    :bonjour:

    #61448
    Merlin
    Maître des clés

    que signifie le message “Une tentative d’impression…” ? j’ai déjà imprimé via JavaScript sans avoir ce message !!!

    En raison des paramètres de sécurité on ne peut pas lancer une impression silencieuse avec un script de document, seul un script d’application, ou de batch, à le droit de faire ça.

    C’est bUI:false qui est en cause.

    Sinon, c’est bien, mais pourquoi fermer autoritairement le document après l’impression ?

    #61449
    bebarth
    Maître des clés

    …parce qu’il y a une page “Template” en plus et si on laisse l’utilisateur fermer le document, ça va lui demander d(enregistrer…
    :bonjour:

    #61450
    Merlin
    Maître des clés

    parce qu’il y a une page “Template”

    Pourquoi ne pas la re-masquer pour la rétablir dans état initial ?

    si on laisse l’utilisateur fermer le document, ça va lui demander d(enregistrer

    Pourquoi pas mettre this.dirty = false; en fin de script ?

    #61451
    bebarth
    Maître des clés

    Faut-il faire les 2 ?
    J’avais essayé this.dirty = false sans remasquer le template car à ce que j’avais compris ça indiquait que le document n’ait pas besoin d’être sauvegardé (…même s’il y avait eu des modifications).

    Dans mon fichier, je ne montre pas le Template, mais j’ajoute une page… je vais donc voir pour montrer le template !
    @+
    :bonjour:

    #61452
    bebarth
    Maître des clés

    …mais c’est bien sûr !!!

    // Affichage Template
    var t = this.getTemplate(“Drawing”);
    t.hidden = false;
    // Impression
    this.print({bUI:false,bShrinkToFit:true,nStart:1});
    // Masquage Template
    t.hidden = true;
    // Pas besoin de sauvegarde
    this.dirty=false;

    merci.
    @+
    :bonjour:

    #61453
    Merlin
    Maître des clés

    Et pis c’est tout !  :Smiley01:

    #61454
    bebarth
    Maître des clés

    A noter que dans l’exemple
    http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_properties.htm%23TOC_templatesbc-50&rhtocid=_6_1_8_23_0_49
    la ligne
    var state = (t.hidden) ? “visible” : “hidden”
    doit être
    var state = (t
    .hidden) ? “hidden” : “visible”
    @+
    :bonjour:

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