2017-05-31 1 views
0

J'ai un script qui trouve des noms d'image et les remplace par son image.Script InDesign, redimensionner les images lors de l'importation

Voici à quoi pourrait ressembler le texte de mon fichier InDesign.

@ blue_dress_xl.JPG @

Robe Bleu XL

Lorem ipsum ...

Le texte est en 3 colonnes, la largeur de chaque colonne est 40,667 mm. Lorsque j'utilise le script pour remplacer @ blue_dress_xl.JPG @ avec l'image, les images sont à 100%.

Je ne suis pas très forte dans JS, et j'ai essayé différentes choses, mais ça ne marche pas vraiment.

Y at-il un moyen de définir la largeur de l'image à "40,667 mm" quand il est importé?

main(); 

function main() { 
var name, f, file, text, 
arr = []; 

if(app.documents.length != 0) { 
    var doc = app.activeDocument; 
    var folder = Folder.selectDialog("Choose a folder with images"); 

    if (folder != null) { 
     app.findObjectPreferences = app.changeGrepPreferences = NothingEnum.NOTHING; 
     app.findGrepPreferences.findWhat = "@[email protected]"; 
     f = doc.findGrep(true); 

     for (i = 0; i < f.length; i++) { 
      name = f[i].contents.replace(/@/g, ""); 
      file = new File(folder.fsName + "/" + name); 

      if (file.exists) { 
       f[i].remove(); 
       f[i].insertionPoints[0].place(file); 
      } 
      else { 
       arr.push("File doesn't exist '" + name + "'"); 
      } 
     } 

     app.findObjectPreferences = app.changeGrepPreferences = NothingEnum.NOTHING; 

     arr.push("------------------------------------------"); 
     text = arr.join("\r"); 
     writeToFile(text); 
    } 
} 
else{ 
    alert("Please open a document and try again."); 
} 
} 

function writeToFile(text) { 
var file = new File("~/Desktop/Place inline images.txt"); 
if (file.exists) { 
    file.open("e"); 
    file.seek(0, 2); 
} 
else { 
    file.open("w"); 
} 
file.write(text + "\r"); 
file.close(); 
} 

Répondre

0

main(); 
 

 
function main() { 
 
var name, f, file, text, 
 
arr = []; 
 

 
if(app.documents.length != 0) { 
 
    var doc = app.activeDocument; 
 
    var folder = Folder.selectDialog("Choose a folder with images"); 
 

 
    if (folder != null) { 
 
     app.findObjectPreferences = app.changeGrepPreferences = NothingEnum.NOTHING; 
 
     app.findGrepPreferences.findWhat = "@[email protected]"; 
 
     f = doc.findGrep(true); 
 

 
     for (i = 0; i < f.length; i++) { 
 
      name = f[i].contents.replace(/@/g, ""); 
 
      file = new File(folder.fsName + "/" + name); 
 

 
      if (file.exists) { 
 
       f[i].remove(); 
 
       var rect = f[i].insertionPoints[0].rectangles.add({geometricBounds:[0,0, 60, 40.667 ]}); 
 
\t \t \t \t rect.place (file); 
 
\t \t \t \t rect.fit (FitOptions.CONTENT_TO_FRAME); 
 
      } 
 
      else { 
 
       arr.push("File doesn't exist '" + name + "'"); 
 
      } 
 
     } 
 

 
     app.findObjectPreferences = app.changeGrepPreferences = NothingEnum.NOTHING; 
 

 
     arr.push("------------------------------------------"); 
 
     text = arr.join("\r"); 
 
     writeToFile(text); 
 
    } 
 
} 
 
else{ 
 
    alert("Please open a document and try again."); 
 
} 
 
} 
 

 
function writeToFile(text) { 
 
var file = new File("~/Desktop/Place inline images.txt"); 
 
if (file.exists) { 
 
    file.open("e"); 
 
    file.seek(0, 2); 
 
} 
 
else { 
 
    file.open("w"); 
 
} 
 
file.write(text + "\r"); 
 
file.close(); 
 
}

+0

Merci pour l'entrée, il est livré avec ce message d'erreur tho http://i.imgur.com/46RAPQB.png – LateChicken

+0

Je suis désolé, une question typo . Reportez-vous à la modification de rect.place (fichier) et réexécutez le script. – Loic

+0

Désolé de prendre si longtemps pour répondre, été très occupé. Il est proche de travailler, mais il ne correspond pas à l'image proportionnellement. J'ai donc essayé d'utiliser \t \t \t \t rect.fit (FitOptions.FILL_PROPORTIONALLY); Ce qui se rapproche de ce que je veux, mais si l'image est trop large, il suffit de la couper de chaque côté. Existe-t-il un moyen de dire que l'image doit avoir une largeur max/min de 40 667 mm, donc c'est seulement la hauteur qui change après quelle taille est l'image? – LateChicken