Copy link to clipboard
Copied
Bonjour,
J'ai réalisé un formulaire sur indesign et l'ai exporté en pdf interactif. Sur une première partie, j'ai des champs textes à remplir et des cases à cocher. Jusque là tout va bien ! Sur la 2nde partie, j'ai la possibilité d'insérer une image (un plan). J'ai appelé cette image "Plan" (les personnes qui utiliseront le pdf devront télécharger leur propre image). C'est maintenant que ça se complique pour moi :
J'aimerais que cette image puisse être mise soit en horizontale, soit en verticale, en fonction de l'image importée. J'ai pensé à un bouton qui pourrait faire en sorte que lorsque l'on clique dessus, l'image puisse pivoter. Sauf que tous les scripts que j'ai pu trouver et que j'insère dans la partie "actions" ne fonctionne pas...
Est ce que vous auriez une idée ? Ou est ce que sur pdf je peux tout simplement oublier cette fonction ?
Je vous remercie par avance pour l'aide que vous pourrez m'apporter ! 🙂
Copy link to clipboard
Copied
bonjour,
Voici un exemple que j'avais proposé il y a quelques temps. Le script de cet exemple est :
for (var i=0; i<this.numFields; i++) {
var theName=this.getNthFieldName(i);
if (theName!="rotate") {
var f=this.getField(theName);
var rect=f.rect;
var length=rect[2]-rect[0];
var height=rect[1]-rect[3];
var centerX=(rect[0]+rect[2])/2;
var centerY=(rect[1]+rect[3])/2;
rect[0]=centerX-height/2;
rect[1]=centerY+length/2;
rect[2]=rect[0]+height;
rect[3]=rect[1]-length;
f.rect=rect;
var rot=f.rotation;
rot=rot+90;
if (rot>=360) rot=rot-360;
f.rotation=rot;
}
}
Tu peux partager un fichier si tu veux un script personnalisé.
@+
Copy link to clipboard
Copied
Hourra, j'ai trouvé !! Voici le script final :
var fieldNameToRotate = "Plan_af_image";
var field = this.getField(fieldNameToRotate);
if (field !== null) {
var rect = field.rect;
var length = rect[2] - rect[0];
var height = rect[1] - rect[3];
var centerX = (rect[0] + rect[2]) / 2;
var centerY = (rect[1] + rect[3]) / 2;
rect[0] = centerX - height / 2;
rect[1] = centerY + length / 2;
rect[2] = rect[0] + height;
rect[3] = rect[1] - length;
field.rect = rect;
var rot = field.rotation;
rot = rot + 90;
if (rot >= 360) rot = rot - 360;
field.rotation = rot;
}
Merci mille fois pour ton aide @bebarth ! :):):)
Copy link to clipboard
Copied
bonjour,
Voici un exemple que j'avais proposé il y a quelques temps. Le script de cet exemple est :
for (var i=0; i<this.numFields; i++) {
var theName=this.getNthFieldName(i);
if (theName!="rotate") {
var f=this.getField(theName);
var rect=f.rect;
var length=rect[2]-rect[0];
var height=rect[1]-rect[3];
var centerX=(rect[0]+rect[2])/2;
var centerY=(rect[1]+rect[3])/2;
rect[0]=centerX-height/2;
rect[1]=centerY+length/2;
rect[2]=rect[0]+height;
rect[3]=rect[1]-length;
f.rect=rect;
var rot=f.rotation;
rot=rot+90;
if (rot>=360) rot=rot-360;
f.rotation=rot;
}
}
Tu peux partager un fichier si tu veux un script personnalisé.
@+
Copy link to clipboard
Copied
Merci beaucoup @bebarth pour ton retour rapide !
C'est exactement ce que je cherchais ! J'ai juste encore un petit soucis : lorsque je clique sur le bouton, tous les éléments pivotent (image souhaitée, mais également les champs texte en surbrillance ainsi que le bouton "Rotation" lui même !)
Est ce que tu sais ce que je dois rajouter dans le script pour qu'il n'y ait que l'image souhaitée qui puisse pivoter ?
Merci encore pour ton aide 🙂
Copy link to clipboard
Copied
Hourra, j'ai trouvé !! Voici le script final :
var fieldNameToRotate = "Plan_af_image";
var field = this.getField(fieldNameToRotate);
if (field !== null) {
var rect = field.rect;
var length = rect[2] - rect[0];
var height = rect[1] - rect[3];
var centerX = (rect[0] + rect[2]) / 2;
var centerY = (rect[1] + rect[3]) / 2;
rect[0] = centerX - height / 2;
rect[1] = centerY + length / 2;
rect[2] = rect[0] + height;
rect[3] = rect[1] - length;
field.rect = rect;
var rot = field.rotation;
rot = rot + 90;
if (rot >= 360) rot = rot - 360;
field.rotation = rot;
}
Merci mille fois pour ton aide @bebarth ! :):):)