2016-11-23 1 views
0

J'ai créé une action à l'aide Assistant d'action dans Acrobat Pro X.Menu personnalisé (Acrobat X) pour une action en utilisant javascript

Un JavaScript est en cours d'exécution lorsque l'action a commencé.

Qu'est-ce que Javascript fait? supposons 100 pages en pdf ouvert, ce javascript extrait tout comme des pages séparées et le renommer comme style défini par l'utilisateur.

par exemple. Hello_001.pdf, Hello_002.pdf, Hello_003.pdf, Hello_004.pdf, ... et ainsi de suite,

Je veux un Menu personnalisé qui cible cette action à exécuter.

+0

J'ai du mal à comprendre ce que vous voulez faire, ce que vous avez fait pour essayer de le faire fonctionner et pourquoi cela ne fonctionne pas. Pourriez-vous éditer votre question pour clarifier ces points? Inclure tout code pertinent qui présente votre problème ainsi que toutes les tentatives que vous avez faites pour le résoudre. –

+0

@MikeC mon action fonctionne bien. supposons que je l'ai nommé "ExtractALL" mais je veux un menu personnalisé qui exécute cette action. –

+0

Cela ne répond pas à ce que j'ai dit. Il semble que vous vouliez créer un menu personnalisé, mais vous n'avez fourni aucun contexte, ce que vous avez fait pour essayer de le créer vous-même et pourquoi vous pensez que cela ne fonctionne pas. –

Répondre

0

Il me semble que vous pouvez trouver votre réponse dans le lien que vous avez donné. L'important est que votre script/fonction fonctionne correctement. Donc, testez-le avant dans la console js. Cependant, voici un exemple, où vous pouvez remplacer le script par le vôtre. Cordialement, Reinhard

EDIT: (25.11.) Pensée peut l'utiliser par moi-même, mais alors je veux l'avoir triable. J'ai donc introduit des zéros en tête dans le nom de fichier de l'extrait -> fonction modifiée.

//Save this in the ....\Acrobat\Javascripts\ program or user directory 
// as whatever.js to load as Add-In 

//-> create a submenu as first position under "Edit" 
app.addSubMenu({ cName: "Specials", cParent: "Edit", nPos: 0 }); 

//-> now create a Menuitem for the function you will execute 
app.addMenuItem({ cName: "Extract all Pages to file", cParent: "Specials", cExec: "extractAll()"}); 

//-> state your function (extract all Pages with leading zeros) 
extractAll = app.trustedFunction(function(){ 
var re = /.*\/|\.pdf$/ig; 
    var filename = this.path.replace(re,""); 
    var lastPage = this.numPages; 
    var lz = Math.pow(10, (lastPage).toString().length); //calc full decimals (10,100,..) 
    app.beginPriv(); // Explicitly raise privilege 
    for (var i = 0; i < lastPage; i++) { 
     var zPgNo = (lz + i+1).toString().slice(1); //calc actual, cut leading 1 = zerofilled PgNo 
     this.extractPages({ 
      nStart: i, 
      nEnd: lastPage -1, 
      cPath : filename + "_page_" + zPgNo + ".pdf" 
     }); 
    }; 
    app.endPriv(); 
    app.alert("Done!"); 
}) 
+0

Super! cela fonctionne très bien pour moi .. Je viens de coller ce code dans mon fichier Js et de placer mon fichier Js ici 'app.getPath (" user "," javascript ");'. Je suis étonné de voir pourquoi cela me donne une erreur de 'niveau de sécurité 'avec mon code alors que mon js fonctionne bien dans l'action. fonction extractAll() { // -> mon code ici} app.addMenuItem ({ cName: "Propriétés du document", cParent: "Fenêtre", cexec: "extractAll()" }); –

+0

extractPages est signé en tant que méthode sécurisée ("S"). Donc, fondamentalement, cela ne fonctionne que dans la console ou en batch. Si vous voulez l'utiliser dans un menu personnalisé ou ailleurs, vous devez redéfinir votre fonction à une fonction trustedFunction. C'est ce que j'ai fait. Jetez un oeil sur le js-help et l'exemple donné (non approuvé) là-bas. http://help.adobe.com/livedocs/acrobat_sdk/11/Acrobat11_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat11_HTMLHelp&file=JS_API_AcroJS.89.471.html – ReFran

0

Vous ne pouvez pas déclencher une action à exécuter à partir d'un élément de menu. Toutefois, vous pouvez créer un JavaScript au niveau de l'application qui contient une fonction qui correspond à vos besoins, puis appeler cette fonction à partir d'une action Acrobat ou d'un élément de menu personnalisé, ou les deux. La réponse de ReFran montre comment ajouter l'élément de menu personnalisé.