abracadabraPDF › Forums › PDF – Général › Exporter données formulaire PDF vers base de données ACCESS
- Ce sujet est vide.
-
CréateurSujet
-
25 avril 2018 à 07:12 #45848romain05Participant
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,
-
CréateurSujet
-
AuteurRéponses
-
25 avril 2018 à 07:36 #63833MerlinMaître des clés
Bonjour.
Pour moi “dans l’autre sens” ça veut dire “Access vers PDF”. C’est bien ça ?
25 avril 2018 à 10:02 #63834romain05ParticipantBonjour 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,
25 avril 2018 à 11:24 #63835MerlinMaître des clésODBC 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:
25 avril 2018 à 12:17 #63836romain05ParticipantMerci 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.25 avril 2018 à 12:36 #63837romain05ParticipantJ’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 ?25 avril 2018 à 13:14 #63838MerlinMaître des clésTrop 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.25 avril 2018 à 13:24 #63839romain05ParticipantC’est Excellent
Dernière petite question, est-il possible d’automatiser la manipulation avec un bouton ?25 avril 2018 à 22:33 #63840MerlinMaître des clésOn 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.
26 avril 2018 à 18:24 #63841romain05ParticipantJe 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 < this.numFields; 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:
26 avril 2018 à 18:47 #63842romain05ParticipantPour 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.
26 avril 2018 à 19:04 #63843romain05ParticipantAvec 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 < this.numFields; 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.
26 avril 2018 à 19:10 #63844romain05ParticipantEt voici le code qui marche à la perfection :extra:
Code:var outputString = “”;
for (var i = 0; i < this.numFields; 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”});27 avril 2018 à 07:31 #63845MerlinMaître des clésLors 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.22 août 2018 à 12:28 #63846romain05ParticipantBonjour,
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 | Var3Dans 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
22 août 2018 à 20:05 #63847bebarthMaître des clésbonjour,
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 < this.numFields; 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:22 août 2018 à 22:07 #63848romain05Participant
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:
22 août 2018 à 22:31 #63849bebarthMaître des clésJ’ai oublié le point-vigule…
Code:…
Variables+=f.valueAsString + “;”;
…@+
:bonjour:22 août 2018 à 22:34 #63850romain05ParticipantCa marche !!
Merci Beaucoup !
A bientôt27 août 2018 à 13:57 #63851romain05ParticipantBonjour,
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.
27 août 2018 à 14:25 #63852bebarthMaître des clésbonjour,
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:27 août 2018 à 15:01 #63853romain05ParticipantEst-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
MerciCode: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”);27 août 2018 à 17:33 #63854bebarthMaître des clésComme 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:28 août 2018 à 09:10 #63855romain05ParticipantEn 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.28 août 2018 à 09:21 #63856bebarthMaître des clésbonjour,
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:28 août 2018 à 09:26 #63857romain05ParticipantOui 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:29 août 2018 à 08:01 #63858MerlinMaître des clésSi Adobe à retiré ce paramètre depuis Acrobat 6.0, je ne vois pas pourquoi ils le remettraient !!!!
C’est très peu probable en effet : sécurité oblige.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.