Donnez vie à vos documents numériques !
 

Importer un grand nombre de données formulaire

abracadabraPDF Forums PDF – Général Importer un grand nombre de données formulaire

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45403
    ATK
    Participant

    Bonjour à tous.

    Il y a deux ans j’ai pu mettre en place, grâce à vous, un formulaire PDF me permettant de communiquer des informations entre deux services de ma société.
    Véritable succès, nous avons généré pas moins de 1500 formulaires contenant une bonne partie de notre savoir-faire, merci !

    Je reviens vers vous aujourd’hui car nous avons besoin de mettre à jour ce formulaire en ajoutant et supprimant des champs.
    J’aimerais pouvoir récupérer toutes les données des 1500 formulaires existant, et les importer dans le nouveau formulaire.

    La solution d’import / export de données fonctionne, mais m’oblige à l’appliquer un par un pour chaque formulaire. (Laborieux…)
    Quelles solutions s’offrent à moi ?

    Détails sur les formulaires existants :
    – Chaque fichier possède un nom unique qu’il faudra respecter.
    – Les champs de l’ancien et du nouveau formulaire correspondent. (Testé avec la fonction import / export)

    J’espère avoir été clair dans mes explications, si ce n’est pas le cas je répondrais à toutes vos questions.

    Encore merci et excellente journée !

Affichage de 15 réponses de 26 à 40 (sur un total de 40)
  • Auteur
    Réponses
  • #60617
    ATK
    Participant

    Bonjour 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 ?

    #60618
    Merlin
    Maître des clés

    Collision, j’ai modifié ma réponse ci-dessus pendant que tu répondais.  :geek:

    #60619
    ATK
    Participant

    Ou 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:

    #60620
    ATK
    Participant

    C’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 ?

    #60621
    Merlin
    Maître des clés

    Si tu ne peux pas utiliser Acrobat 9 pour le traitement par lot il vaut mieux diviser le dossier de 1500 fichiers en plusieurs petits car depuis Acrobat X la gestion de la mémoire n’est plus la même et on arrive assez vite au “bourrage” et au plantage.

    Les ingénieurs recommandent des lots de 300 fichiers maximum.  :idee:

    #60622
    bebarth
    Maître des clés

    :extra:
    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.
    @+
    :bonjour:

    #60623
    bebarth
    Maître des clés

    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 ?

    il faut décocher “Demander à l’utilisateur”.
    @+
    :bonjour:

    #60624
    ATK
    Participant

    Les 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.

    #60625
    bebarth
    Maître des clés

    :Euuuh:
    …pour moi, il n’y a pas de boîte de dialogue, et même, si le fichier .fdf existe déjà, il est remplacé sans avertissement !!!

    http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#rhhlterm=this.exportAsFDF&rhsyns=&t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23XREF_71999_exportAsFDFStr
    ici, il est indiqué pour cPath : “If the parameter is omitted, a dialog box is shown to let the user select the file.”
    peut-être encore une histoire de privilèges Windows ???
    :doute:

    #60626
    Merlin
    Maître des clés

    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 ?

    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…  :oh:

    Essaye en ajoutant ces deux lignes à la fin du script :

    Code:
    this.dirty = false;
    this.closeDoc();

    :priere:

    #60627
    ATK
    Participant

    ici, 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 ?

    #60628
    bebarth
    Maître des clés

    essaye de rajouter :
    this.closeDoc(true);
    @+
    :bonjour:

    #60629
    Merlin
    Maître des clés

    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 ?

    C’est pour ça que j’ai proposé :

    Code:
    this.dirty = false;

    C’est censé réinitialiser le marqueur “dirty”, donc de marquer le document comme étant non modifié.

    #60630
    ATK
    Participant

    Bonjour à 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:

    #60631
    bebarth
    Maître des clés

    :bravo:
    si tu veux connaitre le temps exact d’exécution du script, tu places avant ton scipt :

    console.show();
    console.clear();
    //debut duree
    d0=new Date();
    debut=util.printd(“dd-mm HH:MM”,d0)
    console.println(“Début du process:”+debut)

    et après ton script :

    //fin duree
    df=new Date();
    fin=util.printd(“dd-mm HH:MM”,df)
    console.println(“Fin du process:”+fin)
    delta=(df.valueOf()-d0.valueOf())/1000/60
    console.println(“Durée du process:”+delta+” minutes”)

    @+
    :bonjour:

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