abracadabraPDF › Forums › PDF – Général › Not Allowed – Script
- Ce sujet contient 22 réponses, 3 participants et a été mis à jour pour la dernière fois par Merlin, le il y a 3 mois et 3 semaines.
-
CréateurSujet
-
13 août 2024 à 05:51 #74706jctremblayParticipant
Bonjour!
J’ai un script qui fonctionne très bien dans la console, ou via une action.
Par contre, il ne fonctionne pas dans un action>javascript, un doc-level script, ou même un script d’application.le message d’erreur ressemble à ceci:
NotAllowedError: Security settings prevent access to this property or method. Doc.createTemplateLe script, fait un modèle d’une page, d’un nombre de copies, et d’une destination des copies.
Est-ce qu’il y a une façon de permettre l’execution d’un tel script?
Le script est en pièce jointe.
Attachments:
You must be logged in to view attached files. -
CréateurSujet
-
AuteurRéponses
-
13 août 2024 à 08:45 #74708bebarthMaître des clés
bonjour,
Si tu regardes la 3e colonne de la Quick bar, le S indique les niveaux de privilèges où tu peux exécuter cette méthode et on ne trouve pas le niveau Sript de document.
Par contre, si tu étends les privilèges tu devrais pouvoir te créer un menu qui te permette d’exécuter ce script.
Essaye et dis-moi/nous.
@+
13 août 2024 à 12:59 #74709MerlinMaître des clésBonjour
“createTemplate” et “removeTemplate” ne peuvent fonctionner que depuis la console ou depuis une action (batch), et que avec Acrobat Pro (ou Standard).
Pour que ça fonctionne avec Reader il faudrait que le document ait des droits étendus (Extended Rights) mais pas ceux qu’on peut activer avec Acrobat Pro, il faut ceux d’un niveau supérieur qu’il faut acheter (cher) chez Adobe.
L’astuce serait donc de créer les templates d’avance, utiliser la fonction “spawn” pour ajouter des pages et la fonction “deletePage” pour les supprimer.
13 août 2024 à 13:05 #74710jctremblayParticipantIl y a donc une sérieuse limite en lien avec la sécurité. C’est compréhensible… mais chiant à la fois.
Je vais, comme tu le suggères, devoir faire mes modèles avant et modifier mon script pour avoir un choix des modèles existant à dupliquer. Je garde quand même celui-ci à sauvegarder en action.
@bebarth,
De quel Quick bar parles-tu?- Cette réponse a été modifiée le il y a 4 mois et 1 semaine par jctremblay.
13 août 2024 à 13:20 #74712MerlinMaître des clésOn peut dupliquer une page template qu’elle soit masquée ou apparente, ça ne change rien. Il faut seulement que ladite page soit enregistrée comme template.
La QuickBar, ou Table Quick Key :
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/index.html#table-quick-key
Voir aussi la capture ci-dessous.
Attachments:
You must be logged in to view attached files.13 août 2024 à 13:22 #74714MerlinMaître des clésPS à propos de la QuickBar : attention quand même car la documentation est farcie d’erreurs…
13 août 2024 à 14:50 #74715bebarthMaître des clésDésolé je suis dans le cap corse sans pratiquement aucun réseau…
@+
Attachments:
You must be logged in to view attached files.14 août 2024 à 16:25 #74718jctremblayParticipantDésolé je suis dans le cap corse sans pratiquement aucun réseau…
Profite…
14 août 2024 à 16:28 #74719jctremblayParticipantOn peut dupliquer une page template qu’elle soit masquée ou apparente, ça ne change rien. Il faut seulement que ladite page soit enregistrée comme template.
@Merlin Est-ce qu’il y a un scénario ou cela pourrait être avantageux ou problèmatique d’avoir les page modèles visible ou l’inverse.Ce que je comprend…
Pages modèles cachées = Augmentation du Poids du PDF
Pages modèles visible = Si l’utilisateur supprime cette page, le modèle disparaît également.16 août 2024 à 08:55 #74722MerlinMaître des clésLes pages modèles masquées n’augmentent pas vraiment le poids du PDF mais effectivement une page modèle visible est définitivement supprimée du document. (Acrobat Reader ne peut supprimer que des pages modèles, il ne peut pas supprimer de “vraies” pages).
L’avantage de la page masquée quand elle est générée/dupliquée c’est que les données saisies dans les champs de formulaire sont en double : dans la page visible et dans la page masquée. Donc quand l’utilisateur change d’avis il peut retrouver les données déjà saisies quand il re-génère une page précédemment supprimée.
Sauf si on utilise le paramètre “bRename” qui renomme les champs dans la (les) page(s) générée(s), ce qui est indispensable quand on génère plusieurs pages à partir du même modèle.
16 août 2024 à 13:30 #74725jctremblayParticipantMerci pour ces précision.
Dans mon cas, l’avantage des modèles masqués est d’offrir ce panneau à l’utilisateur lui offrant un choix de modèle à dupliquer.
Attachments:
You must be logged in to view attached files.16 août 2024 à 14:00 #74727MerlinMaître des clésWaouh, beau boulot !
Si ça t’intéresse, bebarth m’avait écrit un script qui “démasque” les modèles masqués en conservant leurs noms de modèle dans le panneau des pages, au lieu d’avoir page 1, page 2, etc.
C’est très pratique quand il y en a beaucoup.
Avec son autorisation (dont je doute pas) je pourrais te l’envoyer, ou le poster céans.
16 août 2024 à 14:04 #74728jctremblayParticipantWaouh, beau boulot ! Si ça t’intéresse, bebarth m’avait écrit un script qui “démasque” les modèles masqués en conservant leurs noms de modèle dans le panneau des pages, au lieu d’avoir page 1, page 2, etc. C’est très pratique quand il y en a beaucoup. Avec son autorisation (dont je doute pas) je pourrais te l’envoyer, ou le poster céans.
Ce serait utile en effet. Est-ce qu’un script pourrait aussi créer un modèle en utilisant le nom du panneau page? J’imagine que oui.
16 août 2024 à 14:04 #74729MerlinMaître des clésPar ailleurs j’ai appris récemment par Thom Parker que le logiciel PDF XChange, utilisé notamment par Michel, implémente le “JavaScript Dialog object”, ce qui devrait être plus pratique que Acrobat pour créer ce genre de boite de dialogue.
16 août 2024 à 14:29 #74730MerlinMaître des clés“Ce serait utile en effet. Est-ce qu’un script pourrait aussi créer un modèle en utilisant le nom du panneau page? J’imagine que oui.”
Je n’en ai pas mais bebarth est capable de tout… 😉
Je n’ai pas eu ce besoin car s’il y a peu de modèles ce n’est pas très utile, et s’il y en a beaucoup je préfère prendre le temps de le créer manuellement par séquence en vérifiant au fur et à mesure. Quand je dis “beaucoup” c’est parfois plus de 70 pour certains clients.
Par ailleurs Acrobat ne sait que numéroter les pages en 1, 2, 3, etc. sans permettre l’ajout d’un ou plusieurs zéro directeur (01, 02, 03 ou 001, 002, 003, etc) ce qui est pénalisant pour ce que j’en fait.
17 août 2024 à 21:17 #74734bebarthMaître des clésbonjour,
Si ça t’intéresse, bebarth m’avait écrit un script qui “démasque” les modèles masqués en conservant leurs noms de modèle dans le panneau des pages, au lieu d’avoir page 1, page 2, etc. C’est très pratique quand il y en a beaucoup. Avec son autorisation (dont je doute pas) je pourrais te l’envoyer, ou le poster céans.
@Merlin : Tu peux partager car de tête je ne me souviens pas et je ne serai de retour qu’à la fin du mois pour le plonger dans mes archives…@+
😎18 août 2024 à 11:24 #74744MerlinMaître des clésLe script qui démasque les modèles en conservant leurs noms, à placer dans une Action :
var aTousLesModeles = this.templates;
for (i = 0; i < aTousLesModeles.length; i++) {
aTousLesModeles.hidden = false; // true ou false
var leNom=aTousLesModeles.name;
var ind=leNom.substr(leNom.length-1);
var nm=leNom.substr(0,leNom.length-1);
this.setPageLabels(this.numPages-1, ["D",leNom.substr(0,leNom.length-1),ind-1]);
}
20 août 2024 à 02:53 #74772jctremblayParticipantLe script qui démasque les modèles en conservant leurs noms, à placer dans une Action :
Merci!
Je l’ai modifié car le dernier caractère du nom du modèle n’étais pas conservé.
var aTemplates = this.templates;
for (var i = 0; i < aTemplates.length; i++) {
aTemplates.hidden = false; // true ou false
var leNom = aTemplates.name;
var ind = leNom.substr(leNom.length - 1);
this.setPageLabels(this.numPages - 1, ["D", leNom, ind - 1]);
}
22 août 2024 à 17:19 #74777MerlinMaître des clésTu as bien fait, à l’origine c’était fait exprès car ça correspondait à un type de documents particuliers, et ensuite je l’ai conservé tel quel.
- Cette réponse a été modifiée le il y a 4 mois par Merlin.
30 août 2024 à 10:14 #74793MerlinMaître des clésJe l’ai modifié car le dernier caractère du nom du modèle n’étais pas conservé.
Quand j’utilise ton script ça ne fonctionne pas et la console renvoie ce message d’erreur :
TypeError: leNom is undefined
5:Batch:Exec30 août 2024 à 12:58 #74794jctremblayParticipantJ’avais le même erreur avec l’original de bebarth. Version corrigé.
var aTemplates = this.templates;
for (var i = 0; i < aTemplates.length; i++) {
aTemplates.hidden = false;
var leNom = aTemplates.name;
var ind = leNom.substr(leNom.length - 1);
this.setPageLabels(this.numPages - 1, ["D", leNom, ind - 1]);
}
30 août 2024 à 15:47 #74795bebarthMaître des clésbonjour,
Toujours le même problème d’affichage d’un “i” entre crochets sur le forum… On peut le remplacer l’indice par un “j” et ça devrait beaucoup mieux marcher :
var aTousLesModeles=this.templates;
for (j=0; j<aTousLesModeles.length; j++) {
aTousLesModeles[j].hidden=false; // true ou false
var leNom=aTousLesModeles[j].name;
var ind=leNom.substr(leNom.length-1);
var nm=leNom.substr(0,leNom.length-1);
this.setPageLabels(this.numPages-1, ["D",leNom.substr(0,leNom.length-1),ind-1]);
}
P.S. : Je ne me souviens pas ce qu’elle fait là, mais la variable nm en ligne 6 ne sert à rien ici…
@+
😎- Cette réponse a été modifiée le il y a 3 mois et 3 semaines par bebarth.
31 août 2024 à 11:38 #74797MerlinMaître des clésCette variable devrait être insérée dans la dernière ligne, où tu as répété l’instruction.
Je l’ai renommée ci-dessous :
var aTousLesModeles=this.templates;
for (j=0; j<aTousLesModeles.length; j++) {
aTousLesModeles[j].hidden=false; // true ou false
var leNom = aTousLesModeles[j].name;
var ind = leNom.substr(leNom.length-1);
var sNom = leNom.substr(0,leNom.length-1);
this.setPageLabels(this.numPages-1, ["D",sNom,ind-1]);
}
En tout cas tu me sauves la mise car je suis justement en train de travailler sur les documents pour lesquels j’ai besoin de ce script qui affiche le nom exact des templates (sans ajouter de numéro), qui ne fonctionnait plus à cause de fichu bug du “i” sur le forum.
😉
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.