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 5 mois et 3 semaines.
-
CréateurSujet
-
13 août 2024 à 05:51 #74706
jctremblay
ParticipantBonjour!
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 #74708
bebarth
Maître des clésbonjour,
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 #74709Merlin
Maî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 #74710jctremblay
ParticipantIl 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 6 mois et 1 semaine par
jctremblay.
13 août 2024 à 13:20 #74712Merlin
Maî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 #74714Merlin
Maî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 #74715bebarth
Maî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 #74718jctremblay
ParticipantDésolé je suis dans le cap corse sans pratiquement aucun réseau…
Profite…
14 août 2024 à 16:28 #74719jctremblay
ParticipantOn 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 #74722Merlin
Maî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 #74725jctremblay
ParticipantMerci 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 #74727Merlin
Maî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 #74728jctremblay
ParticipantWaouh, 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 #74729Merlin
Maî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 #74730Merlin
Maî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 #74734bebarth
Maî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 #74744Merlin
Maî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 #74772jctremblay
ParticipantLe 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 #74777Merlin
Maî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 6 mois par
Merlin.
30 août 2024 à 10:14 #74793Merlin
Maî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 #74794jctremblay
ParticipantJ’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 #74795bebarth
Maî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 5 mois et 3 semaines par
bebarth.
31 août 2024 à 11:38 #74797Merlin
Maî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.
😉
-
Cette réponse a été modifiée le il y a 6 mois et 1 semaine par
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.