Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Rotation image pdf interactif

Community Beginner ,
Nov 06, 2023 Nov 06, 2023

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

TOPICS
Create PDFs , Edit and convert PDFs , General troubleshooting , JavaScript , PDF forms
438
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
2 ACCEPTED SOLUTIONS
Community Expert ,
Nov 06, 2023 Nov 06, 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é.

@+

View solution in original post

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Nov 06, 2023 Nov 06, 2023
LATEST

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

View solution in original post

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 06, 2023 Nov 06, 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é.

@+

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Nov 06, 2023 Nov 06, 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 🙂

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Nov 06, 2023 Nov 06, 2023
LATEST

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

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines