abracadabraPDF › Forums › PDF – Général › Bouton coller photo + dupliquer ce champ photo sur chaque page
- Ce sujet est vide.
- CréateurSujet
- 26 juin 2014 à 13:09 #44898
jtwest
MembreBonjour,
Je cherche à dupliquer un champ bouton contenant une image sur chaque page.
Le contexte est qu’un client peut sur la première page uploader son logo en cliquant sur un bouton. Une fois l’image en place, chaque page doit afficher cette image dans son entête.
En gros, il faudrait soit dupliquer l’image, soit faire une affectation de valeurs. (afin d’éviter que la personne doive uploader son logo à chaque page !)Pour ce qui est de l’upload, je sais faire :
event.target.buttonPosition = position.overlay;
event.target.buttonImportIcon();Pour le reste, je ne sais pas, avez-vous une idée du Javascript à intégrer ?
Et sur quel event faut-il lier le bouton afin qu’il remplisse les autres champs une fois l’image uploadée ?Merci !
AlainMes infos système :
– Adobe Acrobat 9 PRO. (9.5.5 mise à jour)
– PC Windows 7 - CréateurSujet
- AuteurRéponses
- 26 juin 2014 à 21:11 #57356
brumbies
MembreBonsoir,
Le « event.target » fonctionne mais limite l’affectation de la fonction (ici buttonPosition et buttonImportIcon) au seul bouton qui « reçoit » l’évènement.
Donc tu as 2 possibilités pour faire ce que tu veux :
1) Soit tu n’utilises qu’un seul bouton que tu dupliques et place en entête sur les autres pages.
Dans ce cas tu peux utiliser le code suivant à placer dans les Actions => Souris relachée => Exécuter un script Javascript :Code:event.target.buttonPosition = position.overlay;
event.target.buttonImportIcon();
event.target.readonly = true; // permet de mettre ton bouton en « lecture seul »
event.target.fillColor = color.transparent; // permet de mettre la couleur de fond transparentePar contre, pour modifier le logo tu dois fermer et rouvrir ton fichier.
2) Soit tu utilises 2 boutons, l’un sur la première page permettant de choisir le logo, et l’autre que place et duplique sur chaque page au niveau de l’entête.
Dans ce cas, le code est le suivant et est à placer au même endroit :Code:this.getField(« Nom du bouton à entête »).buttonPosition = position.overlay;
this.getField(« Nom du bouton à entête »).buttonImportIcon();
this.getField(« Nom du bouton à entête »).readonly = true; // permet de mettre ton bouton en « lecture seul »
this.getField(« Nom du bouton à entête »).fillColor = color.transparent; // permet de mettre la couleur de fond transparenteEtant entendu que les lignes readonly et fillColor sont inutiles et peuvent être paramétrées à la création du 2nd bouton (ce que je te conseille).
Sinon une dernière solution serait de mettre le 2ème code dans un script d’ouverture de document et dans ce cas inutile de créer le 1er bouton.
En espértant avoir été clair.
:Smiley01:26 juin 2014 à 23:19 #57357
MerlinMaître des clésle contexte est qu’un client peut sur la première page uploader son logo en cliquant sur un bouton. Une fois l’image en place, chaque page doit afficher cette image dans son entête.
En gros, il faudrait soit dupliquer l’image, soit faire une affectation de valeurs. (afin d’éviter que la personne doive uploader son logo à chaque page !)Bonjour,
Avant tout il faut savoir si ton client est censé utiliser Acrobat ou Adobe Reader (pour ce dernier, si oui quelle version ?), parce-que ça va changer beaucoup de choses.
:Smiley01:27 juin 2014 à 12:17 #57358jtwest
MembreBonjour,
Merci pour vos réponses rapides !
Je suis un peu débutant sur Adobe Reader.#Merlin:
Mon client utilisera ce qu’on lui demandera d’utiliser. Donc il prendra un reader courant sur le net, version >=7 de préférence pour la gestion de buttonImportIcon().#brumbies
Merci beaucoup d’avoir pris le temps d’écrire ces deux solutions.
Je préfère la solution n°2 qui va dans la logique de ce que je dois réaliser.En revanche, rien ne se duplique, je n’ai pas réussi à faire fonctionner ton code.
Sur la page 1 (là ou on va chercher l’icone sur le disque dur), j’ai nommé le bouton B1 avec juste 2 lignes de code :Code:event.target.buttonPosition = position.overlay;
event.target.buttonImportIcon();Sur les autres pages, j’ai mis les boutons B2, B3, … à Bn auxquels j’ai mis ton code sur l’action souris relâchée :
Code:this.getField(« B1 »).buttonPosition = position.overlay;
this.getField(« B1 »).buttonImportIcon();
this.getField(« B1 »).readonly = true;
this.getField(« B1 »).fillColor = color.transparent;Je ne vois pas bien comment chaque bouton va recevoir l’image de la première page… et ce qui va déclencher la copie ?!
Une idée de mon erreur ?27 juin 2014 à 12:47 #57359brumbies
MembreBonjour,
pour le script :
Sur ton bouton B1 tu places le code :
this.getField(« B2 »).buttonPosition = position.overlay;
this.getField(« B2 »).buttonImportIcon();
this.getField(« B2 »).readonly = true;
this.getField(« B2 »).fillColor = color.transparentet ensuite tu ne crées pas n boutons sur n pages, tu crées 1 seul bouton B2 que tu dupliques sur l’ensemble de tes pages à entête.
Attention avec cette solution tu visualiseras uniquement le logo sur le bouton B2 et non sur le bouton B1, mais je pense que c’est ce que tu cherches à avoir?
:Smiley01:27 juin 2014 à 12:53 #57360
MerlinMaître des clésMon client utilisera ce qu’on lui demandera d’utiliser. Donc il prendra un reader courant sur le net, version >=7 de préférence pour la gestion de buttonImportIcon().
Non, cette fonction n’est utilisable qu’avec Adobe Reader XI (11), ou versions ultérieures quand il y en aura.
Je préfère la solution n°2 qui va dans la logique de ce que je dois réaliser.
En revanche, rien ne se dupliqueC’est normal, d’où ma première question, et le lien.
brumbies a plein de bonnes idées mais dupliquer un champ de formulaire c’est de la « création », donc ce n’est possible qu’avec Acrobat (toutes versions).
Ca ne peut pas fonctionner avec Adobe Reader.Je n’ai pas de solution toute faite, mais c’est une bonne question.
Je vais y réfléchir…
:geek:27 juin 2014 à 13:29 #57361jtwest
MembreJ’ai réussi grâce à brumbies à ce que le code fonctionne sur Adobe Acrobat.
Mais comme tu le dis Merlin, ca ne fonctionne pas avec Adobe Reader…. ca n’a donc aucune utilité si mon client ne peux pas gérer cela ! Car il doit pouvoir uploarder son logo, enregistrer le PDF et l’envoyer à ses propres clients.J’ai liveCycle ES (qu ej’ai acheté avec le pack CS4), mais je ne sais pas l’utiliser.
Si je crée mes formulaires PDF via cet outil, quelle différence pour l’utilisateur final qui utilise Adobe Reader ?
Est-ce que ma gestion de logos sur les boutons marchera ?
Vous connaissez les avantages et inconvénients de liveCycle ?27 juin 2014 à 13:41 #57362jtwest
MembreJe viens d’installer Adobe Reader 11, il ne lis même plus les images, mais uniquement les PDF. Faut donc créer une image dans un PDF pour l’intégrer dans mon PDF.
Usine à gaz…
Merci en tout cas !28 juin 2014 à 12:17 #57363
MerlinMaître des clésJ’ai liveCycle ES (qu ej’ai acheté avec le pack CS4), mais je ne sais pas l’utiliser.
Si je crée mes formulaires PDF via cet outil, quelle différence pour l’utilisateur final qui utilise Adobe Reader ?
Est-ce que ma gestion de logos sur les boutons marchera ?Ca ne fera aucune difference dans ton cas.
Vous connaissez les avantages et inconvénients de liveCycle ?
Oui : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/acroforms-ou-xfa/
28 juin 2014 à 12:24 #57364
MerlinMaître des clésJe viens d’installer Adobe Reader 11, il ne lis même plus les images, mais uniquement les PDF.
Ca c’est normal, Adobe Reader est un lecteur de fichiers PDF, pas un lecteur d’images.
Il en a toujours été ainsi, aucune des versions de Adobe Reader n’a jamais lu aucun format d’image.Faut donc créer une image dans un PDF pour l’intégrer dans mon PDF.
Usine à gaz…C’est la seule vraie différence entre un formulaire AcroForm et un formulaire XFA, dans Adobe Reader ces derniers permettent d’importer tous les formats d’images courants (JPG, PNG…), alors que ce n’est pas possible avec les AcroForms qui ne permettent que l’importation au format PDF.
Ne me demande pas pourquoi, même l’équipe de développement ne sait pas répondre.
:oh:29 juin 2014 à 13:54 #57365jtwest
MembreMerci pour toutes ces précisions Merlin, c’est beaucoup plus clair !
Ca fait plaisir d’avoir du monde qui prends le temps de répondre précisément à des questions
29 juin 2014 à 14:35 #57366
MerlinMaître des clésMerci !
J’oubliais : les formulaires XFA ne sont pas utilisables sur mobiles.
Il n’y a que PDF Expert (application iOS) qui reconnait les formulaires XFA statiques, mais pas les XFA dynamiques. Ce qui de mon point de vue enlève tout intérêt à la chose.
:idee: - AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
