Toutes mes réponses sur les forums
-
AuteurRéponses
-
ATK
ParticipantJe viens de voir votre deuxième message avec lequel je suis entièrement d’accord.
Malgré tout je me force à m’en servir afin de mieux pouvoir la dompter le jour ou elle sera imposée par Adobe. (à regret)
ATK
ParticipantMerci pour votre retour rapide.
Je ne vois pas cette icône, savez-vous comment l’afficher ?
Attachments:
You must be logged in to view attached files.ATK
ParticipantBonjour Merlin,
Merci pour l’info, je vais poser ma question à coté.
Merci.
ATK
ParticipantLe logiciel permet bien d’enregistrer en PDF-3D, mais nous ne connaissons pas bien ce format et craignons pour sa compatibilité auprès de nos clients/fournisseurs.
De plus nous souhaitons convertir des plans 2D en PDF-3D, cela est-il gênant ?
ATK
ParticipantDésolé, je n’ai pas précisé que le logiciel utilisé pour faire les plans est TopSolid. C’est ce programme qui ne propose pas d’enregistrer en PDF nativement.
Merci pour tes réponses, et bonne journée.
ATK
ParticipantBonjour Merlin,
Malheureusement non, le logiciel utilisé n’offre que très peu de format d’enregistrement et le PDF n’en fait pas parti…
En affinant les paramètres d’Adobe PDF le résultat est vraiment parfait, le seul problème est celui du nom de fichier généré.
ATK
ParticipantJ’ai finalement réussi en récupérant un autre script sur le web, je le partage ici :
Le fichier JS placé dans le dossier Javascript :
Code:// Folder-level JavaScript function
var getLoginName = app.trustedFunction(
function () {
// Get and return the user’s login name
app.beginPriv();
return identity.loginName;
app.EndPriv();
}
);Le code que j’ai finalement placé dans un script de document pour que le nom d’utilisateur apparaisse à l’ouverture du fichier :
Code:f = this.getField(“Nom du dessinateur”);
if (f.value == “”)
{
f.value = getLoginName();
}
this.dirty = false;Merci Merlin car j’ignorais qu’on pouvais ajouter des fonctions JS à Acrobat en passant par ce dossier ! :bonjour:
ATK
ParticipantMerci, j’ai modifié le code du script.
J’ai placé le fichier JS dans le répertoire : C:Program Files (x86)AdobeAcrobat 11.0AcrobatJavascripts, et redémarré Acrobat juste après.
Le fichier doit il avoir un nom particulier ? Je l’ai appelé “Fonction nom d’utilisateur.js”
ATK
ParticipantEn effet, je préférerais utiliser l’identifiant si c’est possible. Ça évite de devoir remplir le champ Nom.
Par contre je ne m’en sors toujours pas avec l’action, je décris ce que je fais :
– Formulaires -> Modifier
– Clic droit sur le champ “Nom du dessinateur” -> Propriétés
– Onglets Actions
– Déclencheur : Champ activé
– Action : Exécuter un script JavaScript
Ajouter.Je sélectionne l’action créée juste en dessous, je clique sur modifier, et j’ajoute comme script :
Code:nomUtilisateur();Je valide le tout.
Est-ce que la manip est bonne ? Car lorsque je clic sur le champ rien ne se passe. (et j’ai bien rempli le Nom dans Identité)
ATK
ParticipantSuper merci !
J’ai tout appliqué mais la valeur ramenée est “undefined”, et je ne m’appelle pas comme ça. ^^
Pour info, le code JavaScript utilisé est :
Code:f = this.getField(“Nom du dessinateur”);
f.value = nomUtilisateur()ATK
ParticipantBonjour Merlin et merci pour la réponse.
Aucun problème la dessus, les utilisateurs passent par une session bureau à distance sur un serveur que j’administre, je peux donc placer le fichier JS dans chaque session. (ils sont deux ^^)
Aurais-tu plus d’informations sur le script en question ?
ATK
ParticipantEn effet, il s’agissait bien d’un paramètre de sécurité qui bloquait l’enregistrement.
Préférences – Protection (renforcée) – Activer le mode protégé au démarrage (décocher)
Problème résolu, un grand merci ! :extra: :extra:
Bon weekend !
ATK
ParticipantBonjour Merlin.
Mes versions :
Adobe Acrobat XI 11.0.16
Adobe Acrobat Reader DC 2015.016.20045Oui en effet le phénomène est le même avec tous les formulaires. Je viens de faire un essai en ajoutant un commentaire sur un autre PDF qui n’est pas un formulaire et le problème est le même.
J’ajoute que les fichiers PDF sont sur des lecteurs réseaux locaux.La fonction Fichier : Enregistrer provoque la même chose également.
Peut être est-ce un problème de configuration du Reader ?
ATK
ParticipantBonjour à tous ! :soleil:
J’ai terminé hier soir l’import des données dans les nouveaux formulaires, tout c’est parfaitement déroulé ! :bravo:
Les scripts d’export et d’import pour ceux que ça intéresse :
Export
Code:// Récupération du chemin
var Chemin = this.path;
// modification de l’extension
var Pathfdf = Chemin.substring(0,Chemin.length-3) + “fdf”;
// exporte les données à partir du chemin d’accès complet
this.exportAsFDF({cPath: Pathfdf});
// Enregistrement
app.execMenuItem(“Save”);Import
Code:// Récupération du chemin
var Chemin = this.path;
// modification de l’extension
var Pathfdf = Chemin.substring(0,Chemin.length-3) + “fdf”;
// importe les données à partir du chemin d’accès complet
this.importAnFDF({cPath: Pathfdf});
// Enregistrement
app.execMenuItem(“Save”);J’ai juste ajouté app.execMenuItem(“Save”) afin d’éviter que la boite de dialogue d’enregistrement apparaisse à chaque export/import.
Dans le même principe, et suivant les conseils de Merlin, j’ai ajouté this.dirty = false; dans mon script d’affichage automatique du nom du fichier, et donc plus de demande d’enregistrement non plus. :jerisjaune:
Pour info j’ai lancé l’action sur 700 fichiers d’un coup et tout c’est bien passé. Avec cette quantité, il faut compter 15 min d’export et 15 min pour l’import.
Encore un énorme merci à vous, Merlin et bebarth pour votre aide !!! :extra:
Excellente journée à vous ! :soleil:
ATK
Participantici, il est indiqué pour cPath : “If the parameter is omitted, a dialog box is shown to let the user select the file.”
En effet si je retire l’argument cPath, une boite de dialogue me demande ou enregistrer le FDF, mais mon problème ne concerne pas le script JS mais l’action.
Je viens de chercher et de constater que la commande “Fermer sans enregistrer” n’existe plus, sans doute une des nouveautés cachées de la version DC…
Je n’en avais pas parlé mais je suis en version 11.
Malheureusement le code ferme le PDF et annule l’exécution de l’action.
Je pense être coincé, je m’explique : Mes formulaires PDF possèdent tous un script au démarrage permettant de reporter le nom du fichier dans un champ du formulaire.
Lors de l’exécution de l’action, un PDF est ouvert pour ensuite être exporté et ce les uns après les autres.
Au moment de la fermeture du PDF (celui venant d’être exporté), la boite de dialogue s’affiche car adobe détecte une modification (le fameux champ automatique) et me propose donc de l’enregistrer.
Pensez-vous que ça puisse être ça ?ATK
ParticipantLes ingénieurs recommandent des lots de 300 fichiers maximum.
Ok, je vais faire ça !
lorsque tu lances l’action, tu cliques sur la petite flèche à côté de Ajouter des fichiers… soit tu ajoutes des fichiers, soit un dossier.
Super !
il faut décocher “Demander à l’utilisateur”.
J’avais déjà fait ça et en effet, ça évite que le programme me demande de confirmer le script à chaque fois.
Je détaille l’action afin de mettre en évidence l’étape qui me dérange :
1 – Ouverture du premier PDF du dossier à traiter
2 – Export en FDF (JS)
3 – Fermeture du PDF en question
4 – Confirmation d’enregistrement avant fermeture (je clique sur non)
5 – Ouverture du second PDF du dossier
6 – Export en FDF
etc.Afin d’éviter de devoir cliquer sans cesse sur Non, j’aimerais éviter l’étape 4 et forcer la fermeture sans enregistrer.
ATK
ParticipantC’est parfait, les deux scripts de bebarth fonctionnent parfaitement, j’ai effectué un essai pour un formulaire et c’est un succès !
Maintenant, comment appliquer ces scripts sur un lot de documents ?
Edit : “Assistant Action” est pourtant écrit en gros… :jerisjaune:
—-Edit2 : A chaque export de FDF, adobe me demande si je veux enregistrer le PDF à exporter, comment éviter l’apparition de ce message et ainsi enchaîner les actions ?
ATK
ParticipantOu bien modifier les paramètres et autoriser ledit dossier via : Préférences : Protection renforcée : Emplacements privilégiés.
Victoire !! C’était bien ça ! J’ai ajouté le répertoire Bureau dans la liste approuvé et ça a fonctionné ! :extra: :bravo:
Je peux continuer mes essais !
Un grand merci à vous pour votre aide ! :soleil:
ATK
ParticipantBonjour Merlin.
Même résultat sur le bureau. :mur:
Quoiqu’il en soit, je continuerai mes prochains essais sur le bureau.Generally, when a path is judged to be not safe, a NotAllowedError exception is thrown (see Error object) and the method fails.
Je n’ai pas ce type d’erreur dans le log, peut-on donc conclure que ça ne vient pas de ça ?
ATK
ParticipantMerci bebrath, grâce à ton code j’ai en effet pu vérifier que la syntaxe du chemin était correct, ce qui est définitivement le cas.
Malgré cela, le code ne donne rien.
En faisant quelque recherches, j’ai appris que l’utilisation de l’argument cPath impliquait que le chemin en question soit un “SafePath”, soit un répertoire autorisé en écriture pour un script JS Adobe , pensez-vous que ça puisse être une solution à mon problème ?—-
J’ai aussi été voir le log d’erreur du débogueur de scripts JS qui contient :
Code:RangeError: Valeur d’argument incorrecte.
Doc.exportAsFDF:1:Field Export:Mouse UpQu’est ce que ça signifie ?
—-
Egalement, j’aimerais que vous puissiez confirmer que le résultat attendu de ce code soit bien la création, dans le répertoire “/C/temp/”, d’un fichier test.fdf contenant les données du formulaire test.pdf, est-ce correct ?
ATK
ParticipantBonjour bebarth et merci pour ta participation.
Je n’arrive toujours pas à utiliser la fonction exportAsFDF, le clic sur le bouton ne donne rien.
Etant donné que je suis hyper novice dans ce domaine, je pense que je zappe quelque chose de simple et d’essentiel que j’ignore, auriez-vous un tutoriel pour utiliser convenablement une action JS dans Adobe ?
L’exemple simple que j’essaye de faire fonctionner :
Code:this.exportAsFDF({cPath: “/C/temp/test.fdf”});ATK
ParticipantOups !
Mais j’avais prévenu : non testé.Pas de soucis !
Par contre je ne m’en sors toujours pas avec l’export en FDF … :Euuuh:
ATK
ParticipantAprès de nombreux essais je reste bloqué à l’étape de l’export en FDF, voici mes démarches :
J’ai donc ouvert un ancien formulaire, y ai ajouté un bouton sur lequel j’ai placé le premier script qui s’exécute en cliquant dessus (Souris relâchée). Malheureusement il ne se passe rien et aucun fichier FDF n’est créé.
J’ai donc testé un code plus simple, à savoir :
Code:this.exportAsFDF({cPath: “/C/temp/test.fdf”});Et la non plus rien ne se passe, qu’est-ce que j’ai raté ?
Merci
ATK
ParticipantBonjour Merlin !
Merci pour ton travail, j’ai testé mais j’obtiens un message d’erreur de syntaxe au moment de valider le script dans l’action.
Code:SyntaxError: missing ) after argument list 10: à la ligne 11Edit :
Je pense avoir résolu le problème en ajoutant des crochets sur cette ligne :
Avant
Code:this.exportAsFDF(cPath: cCheminComplet)Après
Code:this.exportAsFDF({cPath: cCheminComplet})Je continue mes essais.
ATK
ParticipantConseils suivis et 1465 formulaires vierges créés et nommés comme les anciens !
ATK
ParticipantC’est bon j’ai compris ! :priere:
Je vais aller générer mes formulaires vierges ! :jerisjaune:
ATK
ParticipantCe champ utilise-t-il le nom complet avec le suffixe (.pdf) ou sans ?
Avec le suffixe .pdf, il s’agit bien du nom du fichier complet et entier.
Non, l’idée c’est d’exporter à partir de l’ancien formulaire les données dans un fichier FDF qui aura le même nom que le formulaire dont il est issu.
Bien compris.
Ensuite il suffit de récupérer le nom du nouveau formulaire vierge et de changer son suffixe en .fdf pour obtenir le nom du fichier de données à importer.
Ok donc on évite ainsi de devoir créé 1500 nouveaux formulaires vierges nommés de la même manière que les anciens, c’est bien ça ?
OK mais je commence les
pontsviaducs de mai cet après-midi…Et bien nous sommes deux dans ce cas ! :extra:
ATK
ParticipantBonjour Merlin.
Je suppose que les nouveaux formulaires contiennent déjà les champs.
Exact !
Il faudrait un JavaScript et/ou une Action pour exporter toutes les données des anciens formulaires en FDF ou XFDF, sans changer le nom de fichier.
Pour info, tous les anciens formulaires sont dans un seul et même dossier.
récupérer le nom du formulaire vierge actif…
Pour info, le nom du formulaire est utilisé (automatiquement à l’ouverture du PDF) dans un champ de ce dernier, ce champ est nommé “Machine”. (Si ça peut aider)
remplacer son suffixe “PDF” par “FDF” (ou XFDF)
Le remplacement de l’extension suffit, à lui seul, à générer un fichier compatible pour l’import ?
– ajouter le contenu de cette variable au chemin d’accès du dossier pour obtenir le chemin d’accès complet au fichier FDF ciblé,
– importer les données en utilisant ce chemin d’accès,
– enregistrer,
– fermer.
Et on emballe le tout dans une Action qui se chargera de répéter ces instructions sur le lot de formulaires vierges.On continue ?
On continue !
Un grand merci, excellente journée à toi ! :soleil:
ATK
ParticipantEst-ce que le anciens et les nouveaux formulaires ont les mêmes ?
Oui, à la lettre prêt ! Pour tout expliquer, les fichiers PDF sont générés automatiquement à partir d’un script VBA, et nommés suivant des données précises. Aucun risque d’erreur la dessus.
De plus, les champs du nouveau formulaire correspondent à ceux de l’ancien. (Fort heureusement)Ci nécessaire, je peux facilement anticiper la création de 1500 nouveaux formulaires vides, portant les même noms que les anciens, et ainsi prêt à recevoir les données.
ATK
ParticipantMerci pour cette réponse.
Donc pour confirmation, la seule fonction d’importation de données issues d’un formulaire, disponible dans Adobe Acrobat Pro est : Formulaires / Autres options de formulaire / Importer des données ?
Aucune autre solution intégrée au programme n’est disponible ?J’ai quelques notions en VB, je vais donc creuser dans cette direction, merci !
12 mars 2014 à 15:13 en réponse à : Envoi automatique d’un email à chaque enregistrement du PDF #56880ATK
ParticipantLe deuxième bout de code fonctionne à merveille !
Encore un très grand merci !
12 mars 2014 à 14:34 en réponse à : Envoi automatique d’un email à chaque enregistrement du PDF #56878ATK
ParticipantMerci Merlin, mais mon problème réside dans le fait de vouloir mêler du texte “fixe” et une variable.
Est ce que tu vois ce que je veux dire ?
Objet=”Modification de la fiche ” ET this.documentFileName;
ATK
ParticipantParfait !
Tout fonctionne parfaitement bien, maintenant plus d’erreurs dans le formulaire !
Un grand merci à toi Merlin, et longue vie à ce forum !
12 mars 2014 à 14:06 en réponse à : Envoi automatique d’un email à chaque enregistrement du PDF #56876ATK
ParticipantJuste une dernière chose, j’aurais aimé que l’objet soit sous cette “syntaxe” : Modification de la fiche ‘nom_du_fichier’
J’ai bricolé un bout de code sans connaitre JS et ça ne fonctionne pas bien entendu, sinon il n’y aurait pas de forum comme celui ci.
Code:Objet=”Modification de la fiche “&this.getField(“Objet”).value;Je suis mauvais bricoleur ^^
ATK
ParticipantBonjour Merlin, merci de te pencher sur mon problème !
Alors l’idéal serait de le faire à l’ouverture du pdf.
12 mars 2014 à 13:39 en réponse à : Envoi automatique d’un email à chaque enregistrement du PDF #56875ATK
ParticipantSuper, c’est exactement ce que je voulais !
Merci pour tout Alex !! :extra:
12 mars 2014 à 10:52 en réponse à : Envoi automatique d’un email à chaque enregistrement du PDF #56873ATK
ParticipantMerci beaucoup Alex, je surveille le topic, bon appétit.
12 mars 2014 à 10:10 en réponse à : Envoi automatique d’un email à chaque enregistrement du PDF #56871ATK
ParticipantBonjour Alex,
Je ne vois pas de quel bouton vous parlez, pouvez-vous m’indiquer ou il se situe ?
Merci du coup de main
-
AuteurRéponses