PDF Modifiable et/ou éditable

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté par le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

PDF Modifiable et/ou éditable

Message par GRSG »

Bonjour,
j'ai trouvé la possibilité (ci-joint un exemple) de générer un PDF modifiable. Je voulais savoir s'il était possible (via une commande bouton par exemple insérer dans le fichier) de récupérer la saisie uniquement de l'utilisateur (par exemple créer le fichier .fdf correspondant sans passer par adode acroboat).
Merci pour vos éventuelles réponses (ma demande n'est peut être pas très claire).
Gabriel

Code : Tout sélectionner

\documentclass{minimal}
\usepackage{hyperref}
 
\begin{document}
  \begin{Form}
    \TextField[name=name,width=10em]{Name:}
    \TextField[name=surname,width=10em]{Surname:}
 
    \medskip
    Hello there, I am \TextField[name=name]{} \TextField[name=surname]{}, glad to meet you!
  \end{Form}
\end{document}
pg
Modérateur
Modérateur
Messages : 2601
Inscription : vendredi 15 juin 2007, 00:31

Re: PDF Modifiable et/ou éditable

Message par pg »

Voir http://tex.stackexchange.com/questions/ ... able-forms

Acrobat Reader XI permet apparemment de le faire et sinon on peut se faire envoyer par e-mail le fichier fdf :

Code : Tout sélectionner

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\begin{Form}[action=mailto:adresse@machin.truc?subject={The submitted form},method=post]
    \noindent\TextField[name=name]{Name:}\\[1mm]
    \ChoiceMenu[radio,name=gender]{Gender:}{male=male,female=fem}\\[1mm]
    \TextField[name=email,width=5cm]{E-mail:}\\[5mm]
    \Reset{Reset} \quad \Submit{Submit} \quad  \Acrobatmenu{Print}{Print}
\end{Form}
\end{document}
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

Re: PDF Modifiable et/ou éditable

Message par GRSG »

Bonjour,
merci pour la réponse.
Effectivement, adobe 11 permet d'envoyer un fichier (mais il envoie apparemment uniquement le pdf et non le fdf). Ceci dit l'envoie d'un mail directement à partir d'adobe reader n'est pas simple (du moins je n'y suis pas arrivé...)
Encore merci.
Gabriel
pg
Modérateur
Modérateur
Messages : 2601
Inscription : vendredi 15 juin 2007, 00:31

Re: PDF Modifiable et/ou éditable

Message par pg »

Quand je rempli juste le PDF et que je clique sur submit, c'est bien un FDF qui est envoyé par mail et on peut même l'enregistrer sans rien envoyer si on veut.
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

Re: PDF Modifiable et/ou éditable

Message par GRSG »

Avec le bouton submit, apparemment il n'envoie que le fdf mais je n'y suis pas arrivé, Adobe me mettant des boites de dialogues intermédiaires IMAP STTP, et compagnie et/ou sinon l'envoie par défaut se fait par outlook express que je n'ai pas du tout configuré et je ne m'en sors pas.

Sinon, via Adobe 11, on peut envoyer le fichier (où j'ai le même problème) mais je pense qu'il envoie que le pdf.

Gabriel
pg
Modérateur
Modérateur
Messages : 2601
Inscription : vendredi 15 juin 2007, 00:31

Re: PDF Modifiable et/ou éditable

Message par pg »

GRSG a écrit :l'envoie par défaut se fait par outlook express que je n'ai pas du tout configuré et je ne m'en sors pas.
Je n'ai jamais utilisé outlook express, mais configurer une boîte mail existante avec thunderbird n'est pas compliqué du tout. Au cas où, la doc utile est ici :
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

Re: PDF Modifiable et/ou éditable

Message par GRSG »

Bonjour,
je reprends ce <<vieux>> topic.
J'ai (re)commencé la création d'un formulaire pdf modifiable.
Le bouton Submit permet l'envoi au format fdf mais j'aimerais créer ce fichier sans avoir à l'envoyer par email.
Il faudrait que ce soit possible pour Adobe Reader, Foxit,...
Je connais la commande avec pdftk qui permet cette opération mais je n'arrive pas à le mettre en Javascript (que je ne connais absolument pas)
La commande pdftk est la suivante : pdftk nomfichier.pdf generate_fdf output nomfichier.fdf

Par ailleurs, est-il possible de modifier l'apparence du bouton (faire un rouge plein par exemple).
Je vous transmets mon code

Code : Tout sélectionner

\documentclass[12pt, a4paper]{article}
\usepackage{hyperref}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage{cellspace}
\usepackage{color}

\begin{document}
\section{Etat Civil}
\begin{Form}
\begin{tabular}{r@{\ }l}
\raisebox{-0.5em}{Nom :} &\TextField[name=nom,width=13cm,charsize=11pt]{}\\[0.75em]
&\\
\raisebox{-0.5em}{Prénom :} &\TextField[name=prenom,width=13cm,charsize=11pt]{}\\[0.75em]
&\\
\raisebox{-0.5em}{E-Mail :} &\TextField[name=email,width=13cm,charsize=11pt]{}\\[0.75em]
&\\
\raisebox{-0.5em}{Sexe :} & \ChoiceMenu[combo,name=sex,width=8ex,charsize=11pt,default=F\'eminin]{}{F\'eminin, Masculin}\\[0.75em]
&\\
\end{tabular}
\end{Form}
\shorthandoff{;}

\section{Signature et Envoi}
Essai de href. 
\begin{center}
\href{mailto:gabriel.desaintgeorge@gmail.com}{Envoyer par mail}
\end{center}
Le lien ouvre internet mais n'ouvre pas la boite mail

\begin{Form}[action=mailto:gabriel.desaintgeorge@gmail.com?subject={The submitted form},method=post]

\CheckBox[name=certificatcase]{}
\begin{minipage}{0.90\textwidth}
Je certifie exacte les informations consignées dans ce formulaire. Je reconnais que patati et patata
\end{minipage}



\begin{center}
\TextField[name=date,width=4cm,charsize=11pt]{Date :}\\[6pt]
 \PushButton[name=certificat,
              onclick={
                this.getField("datetxt").value=this.getField("date").value;
                this.getField("prenomtxt").value=this.getField("prenom").value;
                this.getField("nomtxt").value=this.getField("nom").value;
                      }
              ]{Signature}\\[6pt]

{\small Dossier modifié et complété le, \TextField[name=datetxt,readonly=true,width=2cm,charsize=8pt,borderwidth=0pt,]{} par \TextField[name=prenomtxt,readonly=true,width=3cm,charsize=8pt]{} \TextField[name=nomtxt,readonly=true,width=3cm,charsize=8pt]{}}
\end{center}

\Reset{Reset} \quad \Submit{Envoi} \quad  \Acrobatmenu{Print}{Print}
\end{Form}
\end{document}
Bonne fin de journée.
Gabriel
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 441
Inscription : dimanche 11 février 2007, 11:45

Re: PDF Modifiable et/ou éditable

Message par touhami »

Bon jour.
D'après hyperref documentation
You must put your fields inside a Form environment (only one per file).
Pourquoi utilisez vous deux formes ?
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

Re: PDF Modifiable et/ou éditable

Message par GRSG »

J'ai vu ça après; mais ce n'est pas mon problème pour l'instant. J'en avais fait deux car je pense faire plusieurs sections. Mais je peux sans doute mettre des sections à l'intérieur de l'environnement form...
Gabriel
GRSG
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 299
Inscription : mercredi 08 octobre 2008, 09:45

Re: PDF Modifiable et/ou éditable

Message par GRSG »

Bonjour,
j'ai réussi à modifier l'apparence des boutons (en utilisant colorbox) et à faire des codes de tests (en javascript) sur certaines commandes. Par contre, je ne suis pas arrivé à générer par un bouton le fdf pour l'instant (avec une sauvegarde directe sur le disque dur (sans envoyer par mail)).
Autre (petit) souci: je n'arrive pas à enlever la numérotation de pages centrée... \cfoot est apparemment inopérante (peut être l'environnement form?)
Ci-dessous le code auquel je suis arrivé.
Bonne journée.
Gabriel

Code : Tout sélectionner

\documentclass[12pt, a4paper]{article}
\usepackage{hyperref}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage{color}
\usepackage{fancybox}
\usepackage{tcolorbox}
\usepackage[width=17cm, left=2cm, height=21cm, top=2cm, bottom=2cm]{geometry}
\usepackage{fancyhdr}
\cfoot{}
\parindent=0cm
\parskip=1ex plus 0.5ex minus 0.25 ex
\begin{document}
\shorthandoff{;}
\begin{Form}
\section{Identité}
\begin{tabular}{r@{\ }l@{\quad}r@{\ }l}
\raisebox{-0.5em}{Nom :} &\TextField[name=nom,width=8.5cm,charsize=11pt]{}&
\raisebox{-0.5em}{Prénom :} &\TextField[name=prenom,width=5.5cm,charsize=11pt]{}\\[0.75em]
\end{tabular}\\[1ex]
\begin{tabular}{r@{\ }l@{\quad}r@{\ }l@{\quad}r@{\ }l}
\raisebox{-0.5em}{Sexe :} & \ChoiceMenu[combo,name=sex,width=8ex,charsize=11pt]{}{Féminin, Masculin}
&\raisebox{-0.5em}{Né(e) le :} &\TextField[name=naissance,width=13ex,charsize=11pt]{}
&\raisebox{-0.5em}{Nationalité :} &\TextField[name=nationalite,width=6.4cm,charsize=11pt]{}\\[0.75em]
\end{tabular}
\newpage
\section{Certificat et Envoi}
\subsection{Certification des données exactes}
\CheckBox[name=certificatcase]{}
\begin{minipage}{0.90\textwidth}
Je certifie exacte les informations consignées dans ce formulaire. Je reconnais que patati et patata
\end{minipage}
\subsection{Vérification}
Cliquer sur le bouton <<Vérification>> ci-dessous pour vérifier que vous avez bien complété tous les champs du formulaire.
\begin{center}
\PushButton[name=certificat,bordercolor={1 1 1},
onclick=
{
var ft=this.getField("signaturetxt"); ft.value="";
var f=this.getField("verificationtxt");
var ltext=new Array;
var lcase=new Array;
var btest=true;
ltext[0]='nom';ltext[1]='prenom';ltext[2]='sex';ltext[3]='naissance';ltext[4]='nationalite';
for (var i = 0; i <=4;i++) 
{
if (this.getField(ltext[i]).value=='')
{
btest=false;this.getField(ltext[i]).setFocus();break;
}
}
lcase[0]='certificatcase';
for (var i = 0; i <=0;i++) 
{
if (this.getField(lcase[i]).isBoxChecked(0)==false)
{
btest=false;this.getField(lcase[i]).setFocus();break;
}
}
if (btest==true)
{
f.value="Votre formulaire est complet. Vous pouvez passer à la signature.";
f.textFont ='Verdana';
f.textColor = color.blue;
}
else
{
f.value="Formulaire incomplet. Recliquer sur le bouton Vérification";
f.textFont ='Verdana';
f.textColor = color.red;
}
}
]{\colorbox{blue}{\textcolor{white}{\LARGE\bfseries Vérification}}}\\[2pt]
\TextField[name=verificationtxt,readonly=true,width=16cm,height=16pt,charsize=13pt,bordercolor={1 1 1},]{}
\end{center}
\subsection{Signature}
\begin{center}
\PushButton[name=signature,bordercolor={1 1 1},
            onclick=
{
var fv=this.getField("verificationtxt");
var ft=this.getField("signaturetxt");var ftt=this.getField("signaturetxtt");
ft.textFont='Verdana';ftt.textFont='Verdana';
var d = new Date();
var m=d.getMonth();
if (m=="0"){mois="Janvier"};
if (m=="1"){mois="Février"};
if (m=="2"){mois="Mai"};
if (m=="3"){mois="Avril"};
if (m=="4"){mois="Mai"};
if (m=="5"){mois="Juin"};
if (m=="6"){mois="Juillet"};
if (m=="7"){mois="Août"};
if (m=="8"){mois="Septembre"};
if (m=="9"){mois="Octobre"};
if (m=="10"){mois="Novembre"};
if (m=="11"){mois="Décembre"};
var btest=true;
if (fv.value=="Votre formulaire est complet. Vous pouvez passer à la signature.")
{
ft.textColor = color.black;
ft.value="Dossier d'inscription signé le "+d.getDate()+" "+mois+" "+d.getFullYear()+" à "+d.getHours()+" heures "+d.getMinutes()+" minutes";
ftt.value="Par "+this.getField("nom").value+" "+this.getField("prenom").value;
for (var i = 0; i < this.numFields; i++) 
{
var f = this.getNthFieldName(i);
this.getField(f).readonly = true;
}
}
else
{
ft.value="CLIQUER SUR VERIFICATION AVANT SIGNATURE";
ft.textColor = color.red;
}
}
]{\colorbox{blue}{\textcolor{white}{\LARGE\bfseries Signature}}}\\[2pt]
\TextField[name=signaturetxt,readonly=true,width=16cm,height=16pt,charsize=13pt,bordercolor={1 1 1}]{}
\TextField[name=signaturetxtt,readonly=true,width=16cm,height=16pt,charsize=13pt,bordercolor={1 1 1}]{}
\end{center}
\end{Form}
\end{document}