Skip to main content
barbaraa61226659
Inspiring
November 6, 2023
Answered

Rotation image pdf interactif

  • November 6, 2023
  • 1 reply
  • 613 views

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 ! 🙂

This topic has been closed for replies.
Correct answer barbaraa61226659

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 ! :):):)

1 reply

bebarth
Community Expert
Community Expert
November 6, 2023

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é.

@+

barbaraa61226659
Inspiring
November 6, 2023

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 🙂

barbaraa61226659
barbaraa61226659AuthorCorrect answer
Inspiring
November 6, 2023

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 ! :):):)