Donnez vie à vos documents numériques !
 

Exporter données formulaire PDF vers base de données ACCESS

abracadabraPDF Forums PDF – Général Exporter données formulaire PDF vers base de données ACCESS

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45848
    romain05
    Membre

    Bonjour à tous,

    Grâce au logiciel « Mail Merge » de Evermap, j’arrive facilement à exporter les données de mes PDF vers une base Access.

    Maintenant, j’aimerais arriver à faire la même chose mais dans l’autre sens car mes collègues remplissent régulièrement des fichiers PDF sur le terrain et doivent tout ressaisir dans la base Access ce qui est une perte de temps pour eux.

    Je sais qu’il est possible d’exporter un formulaire PDF sous différents formats.
    Selon vous, le quel est le meilleur pour Access ?

    Par avance, merci et bonne journée,

Affichage de 25 réponses de 1 à 25 (sur un total de 26)
  • Auteur
    Réponses
  • #63833
    Merlin
    Maître des clés

    Bonjour.

    Pour moi « dans l’autre sens » ça veut dire « Access vers PDF ». C’est bien ça ?

    #63834
    romain05
    Membre

    Bonjour Merlin,

    Excusez-moi, je me suis trompé sur ma première phrase.
    J’arrive facilement à exporter mes données de Access vers PDF.
    Là, je voudrais trouver une solution ( avec un lien ODBC idéalement) pour exporter mes données saisies sur mon formulaire PDF vers ma base Access.

    Bonne journée,

    #63835
    Merlin
    Maître des clés

    ODBC n’est plus supporté par Acrobat depuis la version 9.
    Voici le meilleur tuto actuel qui explique comment s’en passer, avec ou sans SOAP : http://khkonsulting.com/2017/08/connect-database-pdf-form-time-without-soap/

    :Smiley15:

    #63836
    romain05
    Membre

    Merci pour votre réponse.
    Après avoir un peu regardé, j’ai peur que cela dépasse de loin mes compétences actuelles.
    Je vais creuser afin d’essayer de mieux comprendre.

    #63837
    romain05
    Membre

    J’essai d’exporter mon PDF en Excel, mais sans y exporter tout le document, seulement les valeurs de mon formulaire.
    De cette façon, je pourrais faire correspondre les lignes à ma table access.
    Savez-vous sil cela est possible ?

    #63838
    Merlin
    Maître des clés

    Trop facile : Acrobat Pro : Panneau Préparer le formulaire : menu Autres : Fusionner les fichiers de données dans un feuille de calcul.
    D’abord on sélectionne les fichiers (PDF, FDF ou XFDF) a fusionner, et ensuite on exporte toutes les données en CSV.

    #63839
    romain05
    Membre

    C’est Excellent :D
    Dernière petite question, est-il possible d’automatiser la manipulation avec un bouton ?

    #63840
    Merlin
    Maître des clés

    On doit pouvoir placer l’outil dans la barre des « Outils rapides » d’Acrobat Pro DC, ou bien créer une Action avec l’assistant action.

    #63841
    romain05
    Membre

    Je n’y suis pas arrivé avec l’assistant d’action :(
    Par contre, je viens de trouver ce script en JS :

    Code:
    var fieldValues = [];

    for (var i = 0; i   fieldValues.push(this.getField(this.getNthFieldName(i)).value);

    this.createDataObject(‘output.csv’, fieldValues.join());
    this.exportDataObject({ cName:’output.csv’, nLaunch:’2′});

    Celui exporte bien les données directement en CSV, mais pour le moment toutes les données sont dans la ligne 1 ( ce qui est peut pratique pour les récupérer par la suite). Egalement, le fichier Excel, s’ouvre, mais je cherche à ce que celui-ci s’enregistrement directement sur le bureau.

    Si vous avez des solutions je suis preneur, sinon je continue mes recherches  :Smiley01:

    #63842
    romain05
    Membre

    Pour l’enregistrement, il faut remplacer nLaunch par la valeur 0, ça permet de ne pas ouvrir le fichier Excel et de proposer directement le lieu d’enregistrement.

    #63843
    romain05
    Membre

    Avec ce code, j’arrive à exporter toutes les données de mon formulaire.
    Les noms des champs sont toutes présentes dans la ligne 1
    Les réponses à ces champs sont présents dans la ligne 2.

    var fieldValues = []; 
    var fieldValuesNames = []; 
     
    for (var i = 0; i { 
      fieldValues.push(this.getField(this.getNthFieldName(i)).value); 
      var f = this.getField(this.getNthFieldName(i)); 
      fieldValuesNames.push(f.name);   

    this.createDataObject(‘output.csv’,fieldValuesNames.join() + « rn » + fieldValues.join()); 
    this.exportDataObject({ cName:’output.csv’, nLaunch:’0′});

    Il ne me manque plus qu’à trouver comment exporter chaque donnée dans une colonne distincte et j’aurais résolu mon problème.

    #63844
    romain05
    Membre

    Et voici le code qui marche à la perfection  :extra:

    Code:
    var outputString = «  »; 
    for (var i = 0; i   var f = this.getField(this.getNthFieldName(i)); 
      if (f==null || f.type== »button » || f.type== »signature ») continue; 
      outputString+=f.name + « ; » + f.valueAsString + « rn »; 

    this.createDataObject(« output.csv », outputString); 
    this.exportDataObject({ cName: »output.csv », nLaunch: « 0 »}); 
    #63845
    Merlin
    Maître des clés

    Lors de l’export en CSV, ou autre, les données d’un formulaire sont placées dans des colonnes sur une rangée.
    Les données de chaque formulaire, s’il y en a plusieurs, sont placées dans des rangées supplémentaires.

    #63846
    romain05
    Membre

    Bonjour,

    Je reviens vers vous car je voudrais appliquer le code ci-dessus qui exporte très bien les données mais sous forme de deux colonnes du type :

    nom1 | variable1
    nom2 | variable 2

    Comme j’importe ce csv dans access avec du vba, je voudrais que mon code javascript soit exporte le CSV sous cette forme :
    nom 1 | nom 2 | nom3
    var1  | var 2    | Var3

    Dans le code juste au dessus si je remplace « rn » par «  » ça me met tout dans chaque colonne ( ce qui est bien pour les noms), mais je veux que mes variables soient en ligne.

    Avez-vous une solution?

    Par avance, merci

    #63847
    bebarth
    Maître des clés

    bonjour,
    Je n’ai jamais fait ça, mais si ton script précédent fonctionne, celui que tu veux faire doit être du genre :

    Code:
    var outputString = «  »;
    var Noms = «  »;
    var Variables = «  »;
    for (var i = 0; i   var f = this.getField(this.getNthFieldName(i));
      if (f==null || f.type== »button » || f.type== »signature ») continue;
      Noms+=f.name + « ; »;
      Variables+=f.valueAsString;
    }
    outputString=Noms+ »rn »+Variables;
    this.createDataObject(« output.csv », outputString);
    this.exportDataObject({ cName: »output.csv », nLaunch: « 0 »});

    Essaye et dis moi le résultat !
    @+
    :bonjour:

    #63848
    romain05
    Membre


    Merci Bebarth pour votre réponse.

    Ca marche parfaitement pour la première ligne celle des noms. Chaque champs est bien dans une colonne différente.

    Par contre, pour les valeurs d’export variables, celles-ci sont bien exportés, mais restent dans la colonne A.

    Je pense qu’il s’agit de rien à modifier mais après de longues recherches cela dépasse mes compétences  :oh:

    #63849
    bebarth
    Maître des clés

    J’ai oublié le point-vigule…

    Code:

    Variables+=f.valueAsString + « ; »;

    @+
    :bonjour:

    #63850
    romain05
    Membre

    Ca marche !!
    Merci Beaucoup !
    A bientôt

    #63851
    romain05
    Membre

    Bonjour,

    Est-il possible de créer un chemin de destination direct du style : C:CheminNomfichier.csv
    Le but est que cela soit totalement transparent pour l’utilisateur, celui-ci export sont fichier dans un répertoire caché et de l’autre coté, je dirai à Access d’aller récupérer ce fichier exporté dans un chemin caché.

    Par avance, merci.

    #63852
    bebarth
    Maître des clés

    bonjour,
    On ne peut apparemment plus définir le paramètre cDIPath !
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_exportDataObjectbc-31&rhtocid=_6_1_8_23_1_30
    Regarde ce que l’on peu faire car je ne comprend pas « If cDIPath is not passed to this method, a file selection dialog box opens to allow the user to select a save path for the embedded data object. »
    Peut-être faut-il indiquer cDIPath: » » pour avoir la boîte de dialogue (?????)
    @+
    :bonjour:

    #63853
    romain05
    Membre

    Est-ce que avec cette solution proposée ça te semble jouable ?
    Si oui, pourrais-tu m’aider à l’imbriquer dans le code du dessus ?
    Le lien : https://acrobatusers.com/tutorials/importing-and-exporting-pdf-file-attachments-acrobat-javascript
    Merci

    Code:
    var exportMyPDFAttachment = app.trustedFunction( function(cAttName, cFilePath){ app.beginPriv(); var oDoc = this.openDataObject(cAttName); oDoc.saveAs(cPath); oDoc.closeDoc(); app.endPriv(); }); // Call function for a file attachment named “Mine” exportMyPDFAttachment(« Mine », »/c/temp/myfile.pdf »);
    #63854
    bebarth
    Maître des clés

    Comme le titre « An alternate method for exporting an attachment that is a PDF file » l’indique, ça ne fonctionne que si la pièce attachée est un fichier pdf !
    @+
    :bonjour:

    #63855
    romain05
    Membre

    En effet au temps pour mois.
    Bon ben il n’y a plus qu’à espéré que ça redevienne possible un de ces jours.
    Encore merci.

    #63856
    bebarth
    Maître des clés

    bonjour,
    Si Adobe à retiré ce paramètre depuis Acrobat 6.0, je ne vois pas pourquoi ils le remettraient !!!!
    As-tu essayé d’avoir la boite de dialogue d’enregistrement ?
    @+
    :bonjour:

    #63857
    romain05
    Membre

    Oui la boîte de dialogue d’enregistrement marche très bien et en plus me garde le chemin du dernier enregistrement effectué ce qui reste pratique.
    L’automatisation du chemin aurait juste été plus userFriendly  :Smiley02:

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