Inscrivez-vous

abracadabraPDF Forum

Le seul forum francophone entièrement dédié au format PDF

DeyDey

03 octobre 2013 : 10:44
Magicien Messages: 87
Bonjour à tous,

Après des jours de recherches, en vain, je n'ai pas la solution de mon problème qui est le suivant :

J'ai créé un formulaire PDF sur Adobe Acrobat Pro XI et j'aimerai pouvoir récupérer toutes les infos d'une base de données qui correspond aux champs.

Par exemple, J'ai une liste déroulante dans mon formulaire (Nom), avec tous les noms référencés dans ma BDD; j'aimerai qu'une fois le nom choisi, les autres champs se remplisse automatiquement avec les champs qui correspondent dans la BDD.

J'espère que vous avez compris ma question.

Merci d'avance :) !
« Modifié: 15 octobre 2013 : 16:04 par LionelMacBruSoft »

  • Grand magicien
  • Messages: 7 202
Bonjour et bienvenue,

C'est possible mais il faut soit un très bon niveau en JavaScript, soit faire faire.
 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Outch,
Merci d'abord de ta réponse,

Ce n'est pas possible avec un autre logiciel ? Ou peut être que je peux renseigner des données (par exemple Prénom, Tel, Adresse) directement dans mon formulaire et quand je choisi le Nom, les champs se remplissent automatiquement ?

Et si je change de méthode:
Je fais une interface Windows form qui récupère mes données dans la BDD, je peux faire en sorte que quand je valide, les données des champs se place au bon endroit de mon pdf ?
« Modifié: 03 octobre 2013 : 15:22 par DeyDey »

  • Grand magicien
  • Messages: 7 202
S'agit-il d'un formulaire qui doit être aussi complété par un humain (en plus des données importées), ou bien est-ce seulement du remplissage automatique ?
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
En fait c'est pour remplir un bordereau, en choisissant le nom de la personne, les autres champs doivent se mètrent automatiquement mais avec la possibilité de modifier certaines valeurs si elles ne conviennent pas.

  • Grand magicien
  • Messages: 571
Bonjour à tous,
Sur le thème des données à afficher dans un formulaire voici un petit truc que j'utilise souvent et qui consiste à embarquer les données du formulaire sous forme de pièces jointes. Dans mon exemple, j'ai autant de fichiers texte que de fiches, on peut en ajouter autant qu'on veut. Mon formulaire comporte 3 champs à remplir (champs "Champ.0","Champ.1","Champ.2"), on peut là aussi en ajouter autant qu'on veut (paramètre NbreChamps à modifier dans le script importDatas().
Le premier script importDatas liste les pièces jointes, remplit la liste déroulante et et collecte les données pour les stocker dans une table.
Le second script remplit la fiche à partir de l'item sélectionné.
Voir maquette.
Nombreuses variantes possibles:
pièces jointes XML avec noms des champs.
pièce jointe unique.
données externes.
remplissage du menu déroulant à l'ouverture.
etc...


Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Grand magicien
  • Messages: 7 202
Génial !
 :bravo:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Merci de ta réponse, j'ai enfin l'impression d'avancé :D.

Je pense que cette méthode conviendrait, je vais essayé de gratter un peu en Js même si ce n'est pas forcement ma sauce ..
Peux-tu me détaillé un peu plus la méthode à utiliser pour faire cela, je ne suis pas sur d'avoir bien tout compris.

Aussi, comment accédé aux script ? Je vois uniquement le nom dans les options ..
« Modifié: 04 octobre 2013 : 11:51 par DeyDey »

  • Grand magicien
  • Messages: 7 202
Sinon j'ai ça (ci-joint).

C'est le même principe mais ça fonctionne avec un seul fichier incorporé, c'est un fichier CSV séparé par des tabulations.
 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Ca peut être une bonne méthode aussi, il serait possible de modifier des données sur le fichier CSV sans passé par Acrobat (Sur un PC autre que le créateur) ?
Quelle est la config du fichier CSV ?

Merci

  • Grand magicien
  • Messages: 571
Pour traiter les fichiers .csv, il faut considérer le ";" comme caractère séparateur (voir exemple ci-joint script importDatas() ). On peut là aussi modifier ces fichiers directement sous Acrobat PRO.
Ouvrir le fichier csv pour voir sa structure ...
Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Grand magicien
  • Messages: 7 202
Acrobat ne peut pas modifier un fichier TXT ou CSV, il faut le préparer par ailleurs.
Pour l'export en CSV je préfère LibreOffice à Excel car les options d'exportation sont plus complètes.
De mémoire, il vaut mieux utiliser l'encodage UTF-8 qui assure un affichage cohérent des caractères accentués indépendamment des plateformes. C'est tout.
 :Smiley01:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 571
Bonjour Merlin,
Fais un essai sur ce formulaire...
Si tu ouvres une pièce  jointe dans Acrobat (par exemple Dupont.csv) tu constaters que tu peux la modifier sous Excel, et elle sera mise à jour !
Oui, il faut faire attention à l'encodage pour les accents.
Dans mon exemple, j'ai mélangé volontairement des csv et des txt.
Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 87
A vrai dire je suis un peu perdu..
Je ne sais pas trop comment procéder pour obtenir un tel résultat.

Est ce possible de tout mettre dans le même fichier CSV?
Et comment se fait le lien avec les pièces jointes ?
« Modifié: 04 octobre 2013 : 15:27 par DeyDey »

  • Grand magicien
  • Messages: 7 202
Fais un essai sur ce formulaire...
Si tu ouvres une pièce  jointe dans Acrobat (par exemple Dupont.csv) tu constaters que tu peux la modifier sous Excel, et elle sera mise à jour !

Oui, bien sur. Je pensais à la partie création du CSV.
 :Smiley03:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 7 202
Est ce possible de tout mettre dans le même fichier CSV?
Et comment se fait le lien avec les pièces jointes ?

Dans mon exemple la correspondance entre les noms de champs et les colonnes est faite par JavaScript à l'ouverture du document.
Dans l'exemple il y en a 3 mais on peut augmenter le nombre des colonnes et des champs correspondants.
Peu importe le nom du fichier de donnés et son suffixe (TXT ou CSV), par-contre le script employé requiert qu'il n'y ait pas d'autre pièces jointes dans le PDF.

Par-contre je viens de m'apercevoir que j'avais posté un fichier verrouillé, ci-joint un autre.
« Modifié: 07 octobre 2013 : 08:42 par LionelMacBruSoft »
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Salut !
Je ne comprends toujours pas bien, où ce trouve les script ?
Et dans ton exemple, les champs ne sont pas modifiables manuellement.

Merci de vous penchez sur ma question, ça m'aide beaucoup :) !

  • Grand magicien
  • Messages: 7 202
Et dans ton exemple, les champs ne sont pas modifiables manuellement.

Je cite mon dernier message (ci-dessus) : "Par-contre je viens de m'apercevoir que j'avais posté un fichier verrouillé, ci-joint un autre."


Je ne comprends toujours pas bien, où ce trouvent les scripts ?

Capture jointe.
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Merci, autant pour moi :)

Je ne comprends pas, dans l'exemple d'alex, le script "remplissageFiche" ?
Le bouton 'importer" efface les champs, peut être que c'est un pb de mon coté ?

  • Grand magicien
  • Messages: 7 202
Ouvre la Console (ctrl/cmd + J) avant de cliquer sur "Importer" : ça réinitialise la liste des pièces jointes et ça réinitilise les champs.
C'est la liste déroulante qui doit remplir les champs.

C'est une maquette, dans un "vrai" document il ne devrait pas y avoir le bouton "Importer" et l'initialisation se ferait automatiquement à l'ouverture du document.
 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Je comprends mieux l'intérêt du bouton, merci :)

Par contre j'essaye de gratter le script et je n'arrive pas à comprendre où il fait appel aux bon fichiers et quel champ correspond à tel cellule.

  • Grand magicien
  • Messages: 7 202
C'est le script "Remplissage fiche" qui fait tout le boulot, et qui est appelé par la liste déroulante.
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Je dois être vraiment mauvais en JS..
Le truc c'est que j'ai beaucoup de champs à remplir avec plusieurs listes déroulantes, et je n'arrives pas à comprendre la script..

Il faut que je puisse récupérer plusieurs données venant du même fichier .csv.
Ou est-ce que l'on défini le nom des champs dans les code ?

(c'est un peu compliqué à expliquer, et je commence à me dire que c'est peut-être pas de mon niveau..)

  • Magicien
  • Messages: 87
J'ai joint mon document pour que vous puissiez vous faire une idée.

  • Magicien
  • Messages: 87
UP Je suis vraiment coincé, je n'avance plus, je désespère  ! :mur:

  • Magicien
  • Messages: 87

  • Grand magicien
  • Messages: 7 202
Salut,

Je comprend ton impatience mais cette semaine ce n'est pas possible pour moi. Pas le temps.
…A suivre…
 :Smiley01:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Salut,

Oui je tourne en rond et la tension me monte à la tête :Euuuh:

Peut être quelqu'un d'autre aurait la solution ? :Ooops:


  • Magicien
  • Messages: 87
(Je suis toujours bloqué, si jamais ..)  :mur:

Juste une petite question Merlin, est ce qu'il y aurait un moyen pour avoir toutes les données dans le même fichier .csv ? plutôt que d'en créer un par nom ?
« Modifié: 10 octobre 2013 : 09:27 par DeyDey »

  • Magicien
  • Messages: 87
Salut,

En fait mon souci actuel est de lister une colonne (Nom) au lieu de lister les pièces jointes, puisque mon but final est de tout mettre dans le même fichier .csv

Si quelqu'un à la solution du code Js, je suis preneur puisque ça fait plusieurs jours que je galère à chercher ..

(Désolé du "flood" :S)

Merci d'avance :)!

  • Magicien
  • Messages: 52
Bonjour le forum, DeyDey, Merlin, Alex

Je viens d'essayer l'exemple fourni par Merlin,(le non protégé) cela fonctionne aussi avec un .csv
Seule contrainte, respecter l'encodage UTF8 et d'utiliser pour cela libreoffice comme il l'indique.

jf
« Modifié: 11 octobre 2013 : 13:37 par LionelMacBruSoft »

  • Magicien
  • Messages: 87
Salut,
merci de ta réponse.

Oui cela fonctionne mais j'aimerai pouvoir lister les noms d'une colonne d'un seul et même fichier .csv au lieu d'avoir une pièces jointe par nom.

  • Magicien
  • Messages: 52
je n'ai pas trop le temps, je comprends pas bien, j'ai réussi à créer un csv ou j'ai 3 colonnes, et une centaine de ligne, qui respecte les contraintes listées. et lorseque je remplace le fichier txt de merlin prend en compte mes infos :doute:
essaie de joindre un petit bout de fiche csv correctement formaté.
jf

  • Grand magicien
  • Messages: 7 202
DeyDey, je crois que tu te mélanges les pinceaux.
L'exemple d'Alex utilise un fichier txt par entrée/rangée, le mien utilise un seul fichier CSV pour toutes les entrées.

 :idee:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Salut,
Oui je ne comprends pas bien x).

Dans l'exemple d'Alex, il y a bien un fichier par nom, je voudrais tout réunir dans le même fichier mais quelle sont les modifications à apporter au script pour lister une colonne d'un fichier .csv plutôt que de lister tous les fichier (pièces jointes) ?

Et je ne comprend pas le script de ton exemple Merlin ..

(J'espère être compris  :priere: )
« Modifié: 14 octobre 2013 : 08:34 par DeyDey »

  • Magicien
  • Messages: 87
Je joint le fichier .pdf (avec le .csv en pièce jointe) et une capture d'écran des champs qui devraient être remplis.

  • Grand magicien
  • Messages: 7 202
Ben… Euh…
Ton CSV ne contient qu'une seule ligne incomplète…
 :Euuuh:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Je l'ai changé pourtant..

Je joint une capture de ce qu'il pourrait contenir.

  • Grand magicien
  • Messages: 7 202
Moi je ne vois que ça, et apparemment ce n'est pas encodé en UTF-8…
 :doute:
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Oui ça n'a pas enregistrer.
Comment encoder en UTF-8 ?
Le truc serait d'adapter ton exemple Merlin à mon problème, ce que je ne parviens pas à faire.  :mur:

Je n'arrive pas à faire en sorte que ma liste déroulante, me liste tous les noms d'un même fichier et me remplisse les champs "Adresse", "Tél", "Fax", "Mail", etc automatiquement.

Je pense qu'il me faudrait juste une fonction Javascript qui, au lieu de me lister les pièces jointes, me liste une colonne d'une pièce jointe imposée.

Ca fait plus de deux semaines que je suis dessus et mon maître de stage commence à s'impatienter. (Moi je pette un câble :/ ).
Heelp :(
« Modifié: 15 octobre 2013 : 11:58 par LionelMacBruSoft »

  • Magicien
  • Messages: 87
Il faut vraiment que j'avance la ..  :Smiley11:

  • Grand magicien
  • Messages: 7 202
Oui ça n'a pas enregistrer.

Et bien recommence et poste cette fichue liste…
 :oh:


Comment encoder en UTF-8 ?

Relis mes messages précédents, mais ce n'est pas le plus important pour le moment.
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Voila ca devrait être bon mais il n'y à rien d'exceptionnel, juste la liste que j'ai posté en screenshot, pour l'exemple.

  • Grand magicien
  • Messages: 7 202
Pas besoin que ce soit exceptionnel, juste utilisable.
Parce-que je veux bien prendre sur mon temps pour aider, mais pas pour saisir des listes d'exemples.
 :geek:

Ci-joint.
 :bonjour:
Acrobate du PDF, InDesigner et Photoshopographe

  • Grand magicien
  • Messages: 571
Bonjour à tous,
Je vous poste sur ce formulaire un exemple avec un seul fichier de données dans les heures qui viennent...

Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 87
Merci de me consacrer de ton temps Merlin :) !

Ce que tu m'a donné me conviens, c'est ce que je cherchais, merci!  :extra:

Petite question cependant, les champs de la liste déroulante, tu l'es as entré à la main ou ils se mettent automatiquement dans la liste ? Parce que si l'administrateur souhaite ajouter une nouvelle personne dans le .csv, est ce que l'ajout sera automatique dans le formulaire ? :)

Alex: Je suis toujours preneur de ta solution :D !

  • Grand magicien
  • Messages: 7 202
les champs de la liste déroulante, tu les as entrés à la main
Non

ils se mettent automatiquement dans la liste ?
Oui

Parce que si l'administrateur souhaite ajouter une nouvelle personne dans le .csv, est ce que l'ajout sera automatique dans le formulaire ?
Oui
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
D'accord, merci.

Je viens de voir, le format du .csv, tout est regroupé dans la colonne A, est ce normal ?
Ce n'est pas très clair pour l'administrateur je trouve.

  • Grand magicien
  • Messages: 571
Voici l'exemple promis.
Le fichier de données est unique. Pour voir sa structure, utilisez un simple éditeur de texte. Vous remarquerez que toutes les valeurs se suivent séparées par des point-virgules.
Lors de l'ouverture du document, un script (importDatas()) lit la première colonne et renseigne le menu déroulant.
Lors de l'action sur le menu déroulant le script remplissageFiche() lit les autres valeurs et remplit les champs Champ.1 et suivants (jusqu'à Champ.7 dans mon exemple)

On peut aussi faire ça  avec un fichier de données xml, ou du fdf.

Voyez si ça vous suffit.

Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 87
Oooooh ca me plait beaucoup ça :D !!
Merci  :extra:

(Normal qu'une fois le "Nom" sélectionné dans la liste, le reste s'affiche mais la liste est vide ?

Ci-joint une capture.

  • Grand magicien
  • Messages: 571
Je vais voir ça mais pas ce soir , désolé. J'ai une idée.
Alex Noesser
Un zeste de JavaScript dans votre PDF

  • Magicien
  • Messages: 87
Salut, d'accord merci, je vais commencer à remplir mon formulaire.

Est-il juste possible de séparer mes différents "blocs" (ex: "1.Emetteur du bordereau, 2.Installation de destination..), en plusieurs Feuilles Excel ?
Faire une feuille par bloc pour que l'administrateur puisse gérer le .csv plus facilement ?  :Smiley00:
Puisque le but serait de faire ce système sur tous les champs.


(Euuuh.. What ?! Je viens de voir ça x), fichier joint).
« Modifié: 16 octobre 2013 : 08:31 par DeyDey »

  • Magicien
  • Messages: 87
Ok, je viens de voir que les fichiers .csv ne prennent pas en charge plusieurs feuilles --' ..

Je peux utiliser un autre format ou je me pend tout de suite ? :oh:

Sinon je fais tout propre sur une seule feuille mais vu que je ne sais pas comment se configure l'appel des cellules en Js je ne peux rien faire :'(..
« Modifié: 16 octobre 2013 : 11:41 par DeyDey »

  • Grand magicien
  • Messages: 7 202
Sinon je fais tout propre sur une seule feuille mais vu que je ne sais pas comment se configure l'appel des cellules en Js je ne peux rien faire

Je l'ai déjà dit dans un message précédent : l'en-tête de colonnes doit correspondre au nom du champ hôte.
Ouvre les exemples fournis pour t'en convaincre.

 :bonjour:
« Modifié: 16 octobre 2013 : 14:05 par Merlin »
Acrobate du PDF, InDesigner et Photoshopographe

  • Magicien
  • Messages: 87
Je ne comprends toujours pas  :Euuuh: