abracadabraPDF › Forums › PDF – Général › Ajout de champs à l’aide d’un bouton. – RÉSOLU
- Ce sujet est vide.
-
CréateurSujet
-
10 septembre 2012 à 16:08 #44264jsamicaMembre
Bonjour à tous,
Est-il possible par un utilisateur d’un Reader qu’il ait la possibilité, d’ajouter par le biais d’un bouton cliquable, un ou n champs prédéfinis (taille…) dans une formulaire ?
Le cas concret serait l’ajout de ligne dans un bon de commande, mais à priori il faut le créer sur designer ? :oh:
Merci pour votre aide.
:Smiley03: -
CréateurSujet
-
AuteurRéponses
-
10 septembre 2012 à 16:51 #53507MerlinMaître des clés
Oui, c’est ce qu’on appelle un formulaire dynamique, et ça c’est effectivement du boulot pour Designer (formulaires XFA) plutôt que pour Acrobat (formulaires AcroForm).
La différence principale entre les deux technologies c’est qu’un PDF “normal” (AcroForm) à une mise en page et des dimensions de pages fixes, contrairement au XFA.Exemple (ce n’est pas un bon de commande mais le principe est le même) : http://tedpadova.com/_PDFs/passwords.pdf
:Smiley01:
10 septembre 2012 à 20:53 #53508maxwyssMembreCa pourrait être un petit peu plus simple à effectuer dans LiveCycle Designer, mais dans certaines limites, il se fait aussi bien avec Acroforms (the format de formulaire original PDF). Il faut un petit peu de programmation en Acrobat JavaScript. Pour cela il est indispensable de se familiariser avec la documentation de Acrobat JavaScript (qui fait partie du Acrobat SDK, à telecharger du site Adobe).
HTH
Max Wyss.
11 septembre 2012 à 09:56 #53509jsamicaMembreBonjour et Merci pour vos réponses je vais donc me pencher la dessus
:Smiley03:14 septembre 2012 à 08:34 #53510jsamicaMembreBonjour à tous,
Donc je reviens vers vous pour vous faire partager mes recherches sur ce sujet.
Au départ comme conseillé, sur la doc acrobat javascript, qui reste difficile à exploiter je trouve !
J’ai trouvé des réponses sur la doc très bien réalisée des 101Tips de Ted Padova.Merci Merlin pour l’exemple c’est exactement ce principe.
Effectivement il n’est à priori pas possible même en js un champs à l’aide d’un bouton utilisable dans adobe reader. Il faut passer par Live Cycle Designer. (p14 101Tips_B.pdf).
Je vais donc tester peut etre dans Designer… que je trouve moins conviviale au premier abord que son “frère”.
:Smiley03:
14 septembre 2012 à 18:08 #53511MerlinMaître des clésAu départ comme conseillé, sur la doc acrobat javascript, qui reste difficile à exploiter je trouve !
100% de ton avis !
:siffle: :mur:Pour le reste, lis bien entre les lignes : je te propose d’attendre jusqu’au 1er octobre, on (je ne suis pas le seul) n’a pas le droit de rien dire avant cette date…
:joker: :Smiley00:17 septembre 2012 à 09:42 #53512jsamicaMembreAH ?????? qu’est ce que ça signifie ? une nouvelle version d’acrobat ?
Fallait pas me dire ça… :Euuuh::doute: :oh:17 septembre 2012 à 11:50 #53513jsamicaMembreBon, pour vous donner des news le code suivant du doc 101 tips, fonctionne trés bien dans acrobat:
Code:var f = this.addField(“newField”, “text”,
page = this.pageNum,[100,100,200,200])
f.textSize = 9;
f.textfont = font.Helvtica;
f.textColor = color.white;
f.fillColor = new Array(“RGB”, .9, .9, .9);
f.alignment = “left”;
f.multiline = true;
f.readonly = false;Mais bon comme j’ai besoin du form pour reader, je me pense sur une solution de contournement.
Est que le code suivant peut fonctionner en appuyant sur un bouton si c’est le cas, quel est le script à la place de “isBoxChecked” ?Code:if (this.getField(“choice”).isBoxChecked(0))
{this.getField(“champs”).display = display.visible;}
else
{this.getField(“champs”).display = display.hidden;}Merci
:Smiley03:17 septembre 2012 à 12:20 #53514jsamicaMembreBon ben je réponds à ma question ! :siffle:
A priori c’est çaCode:if (this.getField(“bouton”).isButton)
{this.getField(“test”).display = display.hidden;}
else
{this.getField(“test”).display = display.visible;}ça marche, par contre je comprends pas pourquoi quand je reclic dessus le champs ne disparait pas !
17 septembre 2012 à 14:21 #53515jsamicaMembreBon alle encore plus simple,
Sur un bouton le code suivant, pour rendre la ligne visibleCode:this.getField(“ligne2”).display = display.visible;Sur un autre bouton pour la cacher
Code:this.getField(“ligne2”).display = display.hidden;C’est une solution de contournement qui me convient
:Smiley03:17 septembre 2012 à 17:43 #53516MerlinMaître des clésAH ?????? qu’est ce que ça signifie ? une nouvelle version d’acrobat ?
Je n’ai pas dit ça (d’ailleurs je n’ai rien dit, et de toute façon ce n’est pas Acrobat qui pose problème)…
:Smiley00:PS : on a dit : “entre les lignes”.
:joker:17 septembre 2012 à 22:00 #53517MerlinMaître des clésBon alle encore plus simple,
Je ne suis pas certain de bien te suivre sur toute la ligne…
Tapa un PDF d’exemple qui vaudrait mieux que de longs discours ?
:Euuuh:18 septembre 2012 à 08:26 #53518jsamicaMembreSalut Merlin,
Faudra être plus expressif après le 1er alors ! :geek:Voici un exemple, l’idée de départ était d’avoir qu’un seul bouton par colonne (et non pas par la ligne comme dans l’exemple) qui ajoute autant de champs que tu veux.
Dans l’exemple c’est limité aux nombres de lignes prédéfinis
Mais pour mon besoin ça me convient finalement…
:Smiley03:
[attachment deleted by admin]
18 septembre 2012 à 17:54 #53519MerlinMaître des clésFaudra être plus expressif après le 1er alors !
Compte sur moi, je prépare ça activement.
:joker:18 septembre 2012 à 17:55 #53520MerlinMaître des clésMais pour mon besoin ça me convient finalement…
Bien, mais alors, quelle est la question ?
:Smiley03:19 septembre 2012 à 14:45 #53521jsamicaMembreJe compte bien sur toi !!
Ben du coup pas de question, j’ai répondu à ma question en fournissant aussi l’exemple.
Si ça peut servir à d’autre, c’est le but du forum je pense:Smiley03:
19 septembre 2012 à 14:51 #53522LionelMembre:PouceHaut: :soleil: :PouceHaut:
19 septembre 2012 à 19:21 #53523MerlinMaître des clésMerci !
:bonjour:25 septembre 2012 à 13:33 #53524jsamicaMembreSalut a tous,
Juste une petite question pour finaliser cette demande.
Est possible de rajouter du code dans ce principe afin à ce qu’il n’y ai qu’un bouton “+” ?
Je m’explique, actuellement dans le doc exemple fourni dans ce post (voir demande précédente) il y a un bouton “+” par ligne.
L’idée est d’avoir une incrémentation des boutons “+”
Si j’appuie sur le premier, le deuxième s’affiche, si j’appuie sur le deuxième, le troisième s’affiche…J’espère avoir été clair
Merci
:Smiley03:25 septembre 2012 à 14:04 #53525MerlinMaître des clésOn peut soit utiliser l’action Afficher/masquer un champ, soit du JavaScript :
event.target.display = display.hidden;
this.getField(“bouton-suivant“).display = display.visible;etc.
:idee:25 septembre 2012 à 14:50 #53526jsamicaMembreeffectivement tout bête avec afficher/masquer
Merci
1 octobre 2012 à 01:14 #53527MerlinMaître des clésje te propose d’attendre jusqu’au 1er octobre, on (je ne suis pas le seul) n’a pas le droit de rien dire avant cette date…
Adobe Reader XI (11) permet désormais d’utiliser la fonction JavaScript “spawnPageFromTemplate” jusqu’ici réservée à Acrobat.
Ce qui signifie en clair que l’on peut avec un formulaire AcroForm générer des pages dynamiquement à partir d’un modèle, comme dans l’exemple ci-joint.
Ca ne fonctionne que avec Adobe Reader 11, et pas avec les versions antérieures.:idee: :Smiley15:
[attachment deleted by admin]
4 octobre 2012 à 08:41 #53528MerlinMaître des clésBon alle encore plus simple,
Sur un bouton le code suivant, pour rendre la ligne visibleCode:this.getField(“ligne2”).display = display.visible;Sur un autre bouton pour la cacher
Code:this.getField(“ligne2”).display = display.hidden;C’est une solution de contournement qui me convient
:Smiley03:Je viens de percuter en relisant ce sujet, on peut simplifier et n’utiliser qu’une seule et même ligne de code dans les deux cas pour ne faire qu’un seul bouton-bascule :
this.getField(“ligne2”).display = !display;
:Smiley15:
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.