Donnez vie à vos documents numériques !
 

Javascript PDF archivable

abracadabraPDF Forums PDF – Général Javascript PDF archivable

  • Créateur
    Sujet
  • #72998
    adrith
    Participant

    Bonjour,

    Existe-t-il une fonction javascript permettant l’enregistrement en PDF/A (PDF archivable) ?

    Le but étant que cela puisse être codé dans un bouton puis utiliser sous le Reader.

    Merci de votre aide.
    Bonne journée

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

    Bonjour

     

    La réponse est oui mais Acrobat Reader (logiciel gratuit) ne peut pas enregistrer en PDF normé (PDF/A ou autre), ça requiert Acrobat Pro ou Acrobat Standard.

    Même principe et même limitation chez Foxit, le principal concurrent.

    #73002
    adrith
    Participant

    Merci Merlin c’est bien ce que je pensais.

    Pourrais-je avoir le bout de code quand même stp pour le tester sous Acrobat Pro ?

    #73005
    Merlin
    Maître des clés

    this.saveAs("/c/myDocs/myDoc.pdf", "com.callas.preflight.pdfa");

     

    Erratum : comme cette fonction utilise le Contrôle en amont je suppose qu’elle ne fonctionne pas avec Acrobat Standard

    Tout est là, attention il y a des restrictions :

    https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html#saveas

    #73007
    adrith
    Participant

    Merci Merlin

    #73008
    adrith
    Participant

    Oui effectivement il y a des restrictions, j’obtiens ce message avec Acrobat Pro :

    NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode. Doc.saveAs:2:AcroForm:Button1:Annot1:MouseUp:Action1

    Sais-tu comment contourner ?
    Pourtant le fichier n’est pas protégé, quand je passe par les menus cela fonctionne l’enregistrement en PDF-A.

    Voici le code complet car juste avant je dois aplatir le document sinon l’enregistrement (via menu) en PDF-A ne fonctionne pas.

    this.flattenPages();
    this.saveAs(“myDoc.pdf”, “com.callas.preflight.pdfa”);

    #73009
    bebarth
    Maître des clés

    bonjour,
    Il n’est pas possible d’enregistrer avec un script directement à partir d’un bouton.
    Pour cela, il faut un script de d’application (un fichier .js que l’on place dans le répertoire JavaScript d’Acrobat).
    Le script est du genre :
    if (app.formsVersion>=8) {
    Save_PDFA=app.trustedFunction(function(cheminFichier) {
    app.beginPriv();
    this.flattenPages();
    this.saveAs({
    cPath: cheminFichier,
    cConvID: "com.callas.preflight.pdfa"
    });
    app.endPriv();
    })
    console.println("Le plugin d\'enregistrement \"Save_PDFA\" est actif.");
    }

    Et tu appelles le script via ton bouton avec :
    event.target.display=display.hidden;
    Save_PDFA("myDoc.pdf");

    Ici la première ligne cache le bouton avant d’aplatir les champs (on ne peut pas supprimer le champ qui lance l’action).

    Ci-joint les fichiers.

    @+
    😎

    Attachments:
    You must be logged in to view attached files.
    #73014
    Merlin
    Maître des clés

    Un tel script peut aussi être exécuté par une Action (Assistant Action).

    #73015
    adrith
    Participant

    Merci merci, top !

    #73016
    bebarth
    Maître des clés
    bonjour,

    Un tel script peut aussi être exécuté par une Action (Assistant Action).

    Exact ! Ou même depuis la console…
    Et pour ces deux façons on n’a pas besoin d’étendre les privilèges.

    @+
    😎

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