J'ai réalisé un formulaire PDF à l'aide de hyperref. Dans ce formulaire j'aimerais créer une zone où l’utilisateur final puisse insérer une image qu'il charge lui-même dans le PDF (un logo par exemple pour personnaliser le document). Quels sont les moyens d'y parvenir ? Il n'y a aucun champ adapté dans hyperref, le champ TextField ne permet pas cela.

Posée 04 Avr '22, 18:05

GildasP's gravatar image

GildasP
197110
Taux d'acceptation : 50%

Modifiée 04 Avr '22, 22:11

denis's gravatar image

denis ♦♦
7.3k1510

2

Bienvenue sur texnique.fr !

(04 Avr '22, 22:10) denis ♦♦ denis's gravatar image

Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).

(04 Avr '22, 22:10) denis ♦♦ denis's gravatar image
2

De manière générale, je doute qu'il soit possible de modifier ainsi des PDF. Pour ce qui est de ceux générés par (La)TeX, la « LaTeX Team » est en train de réviser complètement cet aspect-là (notamment en ce qui concerne les formulaires) et, pour en savoir davantage, je vous invite à lire le compte rendu des conférences de la journée GUTenberg dans la Lettre 44 éditée par GUTenberg, le Groupe francophone des Utilisateurs de TeX, LaTeX et logiciels compagnons.

(04 Avr '22, 22:22) denis ♦♦ denis's gravatar image

Si je comprends bien il va donc y avoir pas mal d'amélioration liées aux fichiers pdf mais d'après ce que j'ai vu de l3pdffield, je n'ai pas l'impression qu'il soit prévu l'ajout d'un nouveau type de champ. C'est dommage car ce type de champ (Champ image) existe du côté de Adobe mais j'aurais bien aimé me passer de ce dernier!

(05 Avr '22, 12:00) GildasP GildasP's gravatar image
3

@GildasP Vous pouvez tout à fait demander une telle fonctionnalité en ouvrant une « issue » sur le site de développement de ce projet.

(05 Avr '22, 15:03) denis ♦♦ denis's gravatar image
2

J'ai jeté un coup d'œil rapide à ce qu'adobe fait là. Il s'agit essentiellement d'un bouton avec un court javascript (<< /JS (event.target.buttonImportIcon\(\);) /S /JavaScript >>). Il n'y a aucune raison pour qu'on ne puisse pas le faire avec l3pdffield-pushbutton et l3pdffield-action, il suffit de travailler un peu sur les détails.

(05 Avr '22, 19:50) Ulrike Fischer Ulrike%20Fischer's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus

Comme j'ai dit dans un commentaire, c'est simplement un button avec un javascript event.target.buttonImportIcon. Ceci fonctionne pour moi (le MK/TP=1 est important)

\RequirePackage{pdfmanagement-testphase} % not needed with latex-dev
\DocumentMetadata{uncompress}
\documentclass{article}
\usepackage{l3pdffield-testphase}
\begin{document}
\ExplSyntaxOn
  \group_begin:
  \tl_set:Nn\l_tmpa_tl{event.target.buttonImportIcon();}
  \pdf_object_unnamed_write:nx{stream}{{}{\exp_not:o{\l_tmpa_tl}}}
  \pdfannot_dict_put:nnx{widget}{A}{<</S/JavaScript /JS~\pdf_object_ref_last:>>}
  \pdffield_pushbutton:n{name=bild,width=10cm,height=8cm,MK/TP=1}
  \group_end:
 \ExplSyntaxOff
\end{document}

alt text

alt text

alt text

Lien permanent

Publiée 15 Avr '22, 17:29

Ulrike%20Fischer's gravatar image

Ulrike Fischer
6193
Taux d'acceptation : 58%

👍 für das Pizza-Zeichen :)

(15 Avr '22, 17:33) samcarter samcarter's gravatar image

C'est parfait, merci beaucoup pour cette solution !

Plus qu'à adapter mon formulaire avec l3pdffield-testphase.

(15 Avr '22, 23:09) GildasP GildasP's gravatar image

J'ai essayé d’adapter la syntaxe proposée par Ulrike ci-dessus pour utiliser \Pushbutton de hyperref mais je n'arrive à rien.

Quelqu'un aurait une idée des éléments à modifier?

(19 Avr '22, 18:19) GildasP GildasP's gravatar image

hyperref n'a pas d'option pour le MK/TP, donc il te faudra redefinir les definition internes.

(19 Avr '22, 19:08) Ulrike Fischer Ulrike%20Fischer's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.