2017-08-28 3 views
3

Je travaille sur un script qui colle mon presse-papiers dans chaque image sélectionnée. Après avoir cherché autour je n'ai pas compris comment coller quelque chose dans un cadre (ou polygone).Scripts InDesign: passé en images

Je suis coincé quelque chose comme ceci:

function pasteSelection(mySelection) { 
    for (var i = mySelection.length - 1; i > -1; i--) { 
     mySelection[i].contents = app.paste(); 
    } 
} 

Que faut-mySelection[i].contents = app.paste() être?

Répondre

0

Voici quelque chose qui aidera, basé sur another answer I provided not long ago. Pour que cet extrait colle quoi que ce soit, vous DEVEZ AVOIR DU TEXTE SELECTIONNE dans votre document. C'est ainsi que cet extrait sait où coller.

var myDoc = app.activeDocument; 

if(app.documents.length != 0){ 
    if(app.selection.length == 1){ 
     try{   
      var frame1 = app.selection[0]; 
      frame1 = app.paste();//works 
      //app.pasteWithoutFormatting(frame1);;works too 
     } 
     catch(e){ 
      alert ("Exception : " + e, "Exception"); 
     } 
    } 
else{ 
    alert ("Please select text", "Selection"); 
    } 
} 
else{ 
    alert("Something wrong"); 
} 

Mise à jour commentaire suivant: Pour cet extrait, je créé un document indesign dans lequel j'ai créé 2 objets. Un objet est une zone de texte dans laquelle j'ai tapé un tas de texte, et le second élément est simplement un polygone que j'ai dessiné en dessous de la zone de texte. Je n'ai pas défini le type de contenu du polygone, j'ai simplement dessiné le polygone. Afin de trouver efficacement les éléments de page que je veux réellement et dont j'ai besoin, j'ai utilisé Script Labels, bien que l'utilisation d'étiquettes ne soit pas obligatoire. Tant que vous avez un mécanisme pour savoir que vous avez affaire au bon objet.

L'idée derrière cet extrait est vraiment simple:

  1. Select the Source object
  2. Copy the selected object
  3. Select the Destination object
  4. Paste into the selected object

.

var myDoc = app.activeDocument; 
var source; 
var destination; 

for(var i = 0; i < myDoc.pageItems.length; i++) 
{ 
    if(myDoc.pageItems[i].label == "source") 
    { 
     source = myDoc.pageItems[i]; 
     app.selection = myDoc.pageItems[i]; 
     app.copy(); 
     } 
    else if(myDoc.pageItems[i].label == "destination") 
    { 
     destination = myDoc.pageItems[i]; 
     } 

    if(source !== undefined && destination !== undefined) 
    { 
     break; 
     } 
} 
app.selection = destination; 
app.pasteInto(); 
+0

Avec quelle commande puis-je insérer mon presse-papiers directement ** dans ** un seul polygone? Par exemple. Je sélectionne un polygone, lance le script et après j'ai collé un textframe dans ce polygone. – Malte

+0

@Malte, mise à jour –

+0

Merci! Le point était 'app.pasteInto()' que je ne connaissais pas. J'utilisais 'app.paste()' – Malte