IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Script import multiples images dans InDesign
Options
Beren
posté 17 Nov 2014, 19:09
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 017
Inscrit : 31 Jan 2006
Lieu : Paris
Membre no 54 697



Bonjour,

Je cherche à créer un modèle de page pour importer automatiquement toutes les images d'un dossier dans une page InDesign. Il existe de nombreux scripts qui permettent de générer un catalogue à partir d'un dossier, mais il génère eux-mêmes les blocs. Dans mon cas, j'ai besoin de dire que la première image du dossier va dans tel bloc, la deuxième dans tel autre bloc, etc. J'aurais bien sûr préalablement créé un gabarit avec mes divers blocs (image1, image 2, etc.)

En utilisant la méthode des fusions de données, j'arrive à quelque chose de pas mal — voir cette page http://indesignsecrets.com/creating-a-cont...in-indesign.php

Le principe est de générer un fichier CSV avec toutes les images d'un dossier (avec un colonne nom et une colonne avec le chemin de chaque image). InDesign peut importer les images correspondantes, mais il fait un catalogue d'image en créant lui-même les blocs.

Pour créer le CSV, ils utilisent ce script :

CODE
Array.prototype.inArray = function(obj){
var arrMax = this.length-1;
for(var i=arrMax; i>=0; i--){
if(this[i]===obj){
return true;
}
}
return false;
}

var csvParser = (function(){
var csvFile;
return{
create:function(fo){
csvFile=File(fo+"/"+fo.name+".csv");
},
write:function(csvContent){
csvFile.open('w');
csvFile.encoding="UTF-8";
csvFile.write(csvContent);
csvFile.close();
},
execute:function(){
csvFile.execute();
},
getCSV:function(){
return csvFile;
}
}
})();

function imagesToCSVthenChoose(){
var doc,
fo,
fis,
fiMax,
fi,
fiName,
fiPath,
imgFormats=["eps","jpg","tif","psd","pdf","png","ai","bmp","jpeg"],
imgFormatMax = imgFormats.length-1,
imgOk = [],
csvContent = [],
ext,
csvLine=[],
csvSep=",";

if(app.documents.length==0){
alert("No documents open !");
return
}

doc=app.activeDocument;
fo = Folder.selectDialog("Please choose a folder with images");
if(!fo) return

fis = fo.getFiles();
fiMax=fis.length;

for(var i=0; i<fiMax; i++){

fi=fis[i];
ext = fi.name.match(/\.([a-z]+)$/i);
if(ext==null) continue;
ext = ext[1].toLowerCase();
if(!imgFormats.inArray(ext)) continue;
fiName = decodeURI(fi.name);
fiPath=decodeURI(fi.fsName);
csvContent.push(fiName+csvSep+fiPath);
}

csvContent = "Name"+csvSep+"@images\r"+csvContent.join("\r");
csvParser.create(fo);
csvParser.write(csvContent);

/*
doc.dataMergeProperties.selectDataSource(csvParser.getCSV());
var myMenuAction = app.menuActions.item("$ID/DataMergePanelName");
myMenuAction.invoke();
*/
}


imagesToCSVthenChoose();

C'est lui qui créé la liste CSV. Je n'y connais rien en script, alors je n'arrive pas à le modifier pour que le CSV généré ne soit pas :
CODE
name,@images

mais plutôt :
CODE
nameimage1,@image1,nameimage2,@image2,nameimage3,@image3,etc.

A partir d'un tel CSV, grâce à la fonction Fusion de données, je saurais importer l'image 1 dans le bloc 1 de mon gabarit, l'image 2 dans le bloc 2, etc.

Quelqu'un pourrait me donner ce petit coup de main ?


Merci d'avance,

Beren
PS : si la méthode ne vous semble pas appropriée, faut pas hésiter à me le dire si vous en connaissez une tout autre.

Ce message a été modifié par Beren - 17 Nov 2014, 19:11.
Go to the top of the page
 
+Quote Post
magicPDF
posté 21 Nov 2014, 15:36
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 045
Inscrit : 22 Apr 2008
Lieu : 43.93 N / 4.84 E
Membre no 112 856



Bonjour,

Pour modifier la structure du CSV on peut utiliser le rechercher-remplacer de InDesign, ou le rechercher-remplacer de son éditeur de texte préféré.
Ce script (gratuit) qui étend la fonction de fusion de données devrait certainement t'intéresser : http://indesignsecrets.com/data-merge-into...-in-a-story.php

cool.gif

Ce message a été modifié par magicPDF - 21 Nov 2014, 15:40.


--------------------
Acrobate du PDF, InDesigner, Photoshopographe et WordPresseur
abracadabraPDF.net
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 26th April 2024 - 05:57