Forums Développement Multimédia

Aller au contenu

- - - - -

Enregistrer les calques en jpg

PAO Illustrator

43 réponses à ce sujet

#1 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 27 October 2006 - 08:50 AM

Bonjour,

Après une longue et infructueuse recherche sur le web, je me décide enfin à poster un message.
J'ai un fichier Illustrator CS2 (PC) contenant 52 calques (52 packagings, en fait).

Je cherche un moyen d'enregistrer les calques en jpeg (en 300 dpi avec conversion du CMJN en RVB et le nom du calque comme nom de fichier), à la manière d'ImageReady.

Un script parait être la solution, mais je n'ai pas les compétences suffisantes en programmation.
Je n'ai pas trouvé de plugin ou technique permettant de le faire non plus.
Quelqu'un a t'il une solution?

#2 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 27 October 2006 - 08:50 AM

Bonjour,

Après une longue et infructueuse recherche sur le web, je me décide enfin à poster un message.
J'ai un fichier Illustrator CS2 (PC) contenant 52 calques (52 packagings, en fait).

Je cherche un moyen d'enregistrer les calques en jpeg (en 300 dpi avec conversion du CMJN en RVB et le nom du calque comme nom de fichier), à la manière d'ImageReady.

Un script parait être la solution, mais je n'ai pas les compétences suffisantes en programmation.
Je n'ai pas trouvé de plugin ou technique permettant de le faire non plus.
Quelqu'un a t'il une solution?

#3 art176

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 159 messages

Posté 27 October 2006 - 09:22 AM

c'est possible! des photoshop cs, on avait plus besoins d'un script super complexe!
d'abord ton fichier a 300, et tu applique fichier-->script-->comp calques en fichiers
tu obtiens dans un autre dossier tes images en jpg
a ce dossier tu applique un script (ou droplet) auquel tu demande de reduire image psd en jpg (rvb ou cmjn)

je suis sur qu'il y aurai une manier en 1 seul script, je fouille et si je trouve je transmet! :?

ca aide?

--A

#4 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 27 October 2006 - 09:53 AM

Merci, mais je connais déjà cette méthode.
Le problème c'est qu' Illustrator aplatit pas mal de calques entre eux (il y a de nombreuses transparences complexes) lors de l'exportation en psd rendant le fichier inexploitable. De plus la manip est double et longue (exportation en psd, puis traitement par lot).
C'est pourquoi je cherche une solution sous Illustrator.

#5 art176

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 159 messages

Posté 27 October 2006 - 10:48 AM

celtik!
la fonction d'illustrator n'est pas de faire la retouche photo, et jpeg est un format image, donc c'est bien un plus qu'illustrator nous donne la!
donc oui l'exportation en psd doit etre la solution! et c'est 2 manip (d'ou le droplet!)
juste une question sais tu que tu peux mettre plusieurs calques dans un calque (hic!) sous illustrator?

sinon on va attendre peut etre qu'un pro du scriptage illustrator nous passe la soluce

#6 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 27 October 2006 - 11:20 AM

Merci pour ton aide art176, malheureusement, l'export en psd fusionne certains calques entre eux à l'export (c'est sans doute dû à des problèmes d'aplatissement des transparences) quand il ne trouve pas le fichier trop lourd ou trop complexe (avec 1,5Go de RAM).

Citation

juste une question sais tu que tu peux mettre plusieurs calques dans un calque (hic!) sous illustrator?
je ne comprends pas bien où tu veux en venir là, chaque calque représente un unique packaging indépendant.
Comme tu le dis, un pro du scriptage aurait surement une solution...

#7 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 19 November 2006 - 15:32 PM

Personne n'aurait une solution ou au moins une piste?

#8 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 11 December 2006 - 17:56 PM

si tu es sur MAC OSX je peux t'écrire un Applescript (désolé je ne maitrise pas le JS) qui enregistre tes calques en jpeg (en 300 dpi avec conversion du CMJN en RVB et le nom du calque comme nom de fichier)

#9 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 11 December 2006 - 18:37 PM

Merci beaucoup jean philippe,
Je coche, bien entendu, "Ecrire les calques" dans les Options d'exportation, cependant, l'export en psd applatit malgré tout certains calques entre eux.

Merci beaucoup pour ta proposition de script en AppleScript.
Je suis sur PC (je compte passer à Mac l'année prochaine) mais je pensais qu'Illustrator était capable de faire tourner de l'AppleScript sous un environnement Windows (en l'écrivant, je trouve ça étonnant quand même).
En tout cas, si tu t'ennuie et que la conception d'un tel script ne te prends pas trop de temps, je serrais ravi de l'essayer et de tester un éventuel fonctionnement de l'AppleScript sous illustrator PC...
Au pire, le besoin est tellement important pour moi, que je pourrais peut être me risquer en une "traduction" en JS (si les instructions sont assez proches et que j'ai un peu de chance...).

#10 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 11 December 2006 - 20:45 PM

ok je te code ça en Applescript alors :)

#11 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 11 December 2006 - 20:59 PM

Super, merci beaucoup! :)

#12 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 12 December 2006 - 08:04 AM

voici un code applescript te permettant d'exporter chaque calques en jpeg
le soucis c'est que je ne trouve pas comment ffaire l'export en 300dpi donc j'ai augmenté le scale à 417%
(c'est une regle de 3 : 72dpi >100% , 300dpi : 417%)
Ce script fonctionne chez moi sur Illustrator CS2
Le voici :

Citation

set whereTo to path to desktop as string
tell application "Adobe Illustrator"
set fileName to ".jpg"

set t to current document

set c to count every layer of t
repeat with y from 1 to c
set lName to name of layer y of t
set thePath to whereTo & lName & fileName
my layerVis(thePath, lName)

end repeat
end tell

on layerVis(thePath, lName)
tell application "Adobe Illustrator"
set x to current document
set visible of every layer of x whose name is not lName to false
set visible of layer lName of x to true


export x to file (thePath) as JPEG with options {class:JPEG export options, quality:100, optimization:true, saving as HTML:false, horizontal scaling:417, vertical scaling:417} ¬





end tell
end layerVis
tell application "Adobe Illustrator"
close document 1 without saving
end tell

Je joins aussi le fichier script à glisser dans le dossier Paramètres définis > Script de Illsutrator , puis redémarrer Illustrator.
Pour y avoir accés : menu Fichier > Script

#13 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 12 December 2006 - 12:53 PM

Merci!
J'ai bien récupéré le fichier (le lien porte vers "index.php" à renommer en ".zip"), je le test aujourd'hui et te fais un bilan après.

Heu... rectification: l'erreur de lien venait de chez moi...

#14 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 14 December 2006 - 11:26 AM

:) Aaaaah, déception!
Comme tu le pensais, l'AppleScript n'est pas pris en charge sous PC, le script n'est pas listé parmis les extensions acceptées (.js, .jsx, .vbs, .exe).
Dès que j'ai un peu de temps, je tente une traduction en js, mais je suis loin d'être sûr d'y arriver.
Merci quand même Jean Philippe, au moins je pourrais l'utiliser plus tard sous Mac!

#15 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 14 December 2006 - 12:20 PM

dans ce cas, peut être que mon script servira à d'autres :)

#16 lapinsuper

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 05 December 2007 - 14:15 PM

Bonjour,
merci beaucoup pour ce script bien utile. Est-il possible de faire la même opération en gardant le calque 1 toujours visible. Disons que sur le calque 1 on ai un fond et sur les autres calques divers objets. Je souhaiterais avoir une exportation en jpeg de chaque objet avec le fond du calque 1. Merci.

#17 ifabini

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 12 June 2008 - 08:16 AM

Voir le messagejeanphilippe, le Dec 12 2006, 07:04 AM, dit :

voici un code applescript te permettant d'exporter chaque calques en jpeg
le soucis c'est que je ne trouve pas comment ffaire l'export en 300dpi donc j'ai augmenté le scale à 417%
(c'est une regle de 3 : 72dpi >100% , 300dpi : 417%)
Ce script fonctionne chez moi sur Illustrator CS2
Le voici :
Je joins aussi le fichier script à glisser dans le dossier Paramètres définis > Script de Illsutrator , puis redémarrer Illustrator.
Pour y avoir accés : menu Fichier > Script


bonjour, où peut-on récupérer la PJ reprenant le fichier script dont vous parlez ?
Il me serait bien utile....
merci ; )
isa

#18 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 12 June 2008 - 19:21 PM

salut
il te suffit de copier coller ce code dans l'éditeur de script et de l'enregistrer :
set whereTo to path to desktop as string
tell application "Adobe Illustrator"
set fileName to ".jpg"

set t to current document

set c to count every layer of t
repeat with y from 1 to c
set lName to name of layer y of t
set thePath to whereTo & lName & fileName
my layerVis(thePath, lName)

end repeat
end tell

on layerVis(thePath, lName)
tell application "Adobe Illustrator"
set x to current document
set visible of every layer of x whose name is not lName to false
set visible of layer lName of x to true


export x to file (thePath) as JPEG with options {class:JPEG export options, quality:100, optimization:true, saving as HTML:false, horizontal scaling:417, vertical scaling:417} ¬





end tell
end layerVis
tell application "Adobe Illustrator"
close document 1 without saving
end tell


#19 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 29 July 2008 - 12:39 PM

Bonjour jeanphilippe,

Je suis enfin passé sous Mac (ça change la vie, d'ailleurs) et sous CS3.3
J'ai de nouveau 50 calques à exporter en jpeg 300dpi.
Je suis allé chercher ton script (que j'avais gardé très précieusement) mais il s'avère qu'il y a une incompatibilité (j'obtiens "Impossible de charger les scripts car le document est incompatible" au chargement). As tu une explication ou une solution s'il te plaît?

#20 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 29 July 2008 - 13:21 PM

salut
non cela fonctionne aussi avec CS3
il suffit de glisser le fichier contenant le script dans parametres predefinis > scripts de Illustrator CS3
puis tu choisis dans : menu > Fichier > Script

#21 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 13 August 2008 - 15:04 PM

Génial!
Je suis revenu voir (un peu tard certes) et quelle surprise: je peux enfin tester ton script.
Il fonctionne à merveille (à part que je ne comprends pas pourquoi mes JPG en 200dpi pèsent le triple des tiens alors que tu as a priori demandé une compression minimum).
Merci infiniment, même si je dois passer par un script photoshop pour passer de 72 à 300dpi, tu vas me faire gagner un temps incroyable!

#22 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 13 August 2008 - 15:10 PM

Question bonus:
Puis-je supprimer les instructions

tell application "Adobe Illustrator"
close document 1 without saving

Afin de garder mon fichier ouvert?

#23 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 13 August 2008 - 15:20 PM

Questions bonus N°2 (le site m'interdit d'éditer mon précédent message):

J'ai un écran pour le Print (LaCie 526) calibré.
Après avoir lancé le script, la saturation des couleurs a diminuée à l'écran.
Même lorsque je recharge le profil de mon moniteur, les couleurs paraissent toujours légèrement désaturées.
Une explication?

#24 lazarus_aaa

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 24 August 2008 - 18:49 PM

probablement du à la conversion CMYK - RGB.
Quand on prend du RGB vers CMYK on désature toujours un peu les couleurs (surtout le orange)
Mais si l'on passe du CMYK au RGB il ne se passe pratiquement rien car la plage de couleur en CMYK est beaucoup plus petite qu'en RGB.

Voici un exemple des plages de couleur.

Fichier(s) joint(s)



#25 celtik111

    Ceinture Jaune

  • Members
  • PipPip
  • 15 messages

Posté 03 September 2008 - 15:54 PM

Merci pour ta réponse Laz,
je suis conscient que la plage de couleur est différente dans un mode ou dans l'autre, cependant, mon (nouveau) problème concerne le rendu des couleurs au sein même d'Illustrator, en CMJN. Même en ré-étalonnant mon moniteur, je n'obtiens plus le même rendu des couleurs dans mon fichier qu'avant l'application du script, comme si le profil avait été modifié...

#26 elle-ere

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 368 messages

Posté 26 September 2008 - 15:10 PM

Bonjour à tous
scrip pour Windows
javaScript, si vous pouvez faire plus élégant ? j'aimarais bien...
    // **********************************************************
    // Cet exemple exporte chaque calque du document actif
    // en tant que fichier JPEG avec des options spécifiques.
    // dans le répertoire de ce document.
    // **********************************************************

    if ( app.documents.length > 0 ) {
    var chemin = "./";
    var type = ExportType.JPEG;
    var exportOptions = new ExportOptionsJPEG();
    exportOptions.antiAliasing = true;
    exportOptions.artBoardClipping = false; //true dim. plan de travail
    exportOptions.optimization = true;
    exportOptions.qualitySetting = 100;

    var targetDocument = app.activeDocument;
    var layerCount = targetDocument.layers.length;

    for ( j = layerCount - 1; j >= 0; j-- ) {
    for ( k = layerCount - 1; k >= 0; k-- ) {
    targetDocument.layers[k].visible = false;
    }
    targetLayer = targetDocument.layers[j];
    // targetDocument.layers[j].visible = true;
    targetLayer.visible = true;
    var layerName = new File( chemin+targetLayer.name );
    targetDocument.exportFile( layerName, type, exportOptions );
    }
    }


#27 max.baile

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 05 May 2009 - 13:04 PM

bonjour jeanphilippe,

je voudrais savoir s'il était possible d'enregistrer les calques illustrator directement en format illustrator .ai j'ai essayé quelques modifs qui reste infructueuse si tu pouvais me venir en aide...

Cordialement

max

#28 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 05 May 2009 - 18:51 PM

salut
tu peux remplacer la ligne export par save as (voir pour les options)

#29 Loic Aigon

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1662 messages

Posté 05 May 2009 - 23:58 PM

Voir le messagejeanphilippe, le May 5 2009, 05:51 PM, dit :

salut
tu peux remplacer la ligne export par save as (voir pour les options)
Salut jean-Phi,
Le mieux serait de pouvoir sauvegarder que les infos utiles. Les calques même masqués font toujours partie du fichier et donc l'alourdissent inutilement dans ce cas.
Mais du coup çà voudrait dire quelque chose de plus complexe, encore que.
Loic

#30 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 06 May 2009 - 04:56 AM

Voir le messageLoic_Aigon, le May 5 2009, 10:58 PM, dit :

Salut jean-Phi,
Le mieux serait de pouvoir sauvegarder que les infos utiles. Les calques même masqués font toujours partie du fichier et donc l'alourdissent inutilement dans ce cas.
Mais du coup çà voudrait dire quelque chose de plus complexe, encore que.
Loic
oui effectivement Loic
Voici donc un script qui fonctionne (testé sur AI CS4):

var doc = app.activeDocument;
var start = true;
var ver = 11;
saveOptions = new IllustratorSaveOptions();
switch (ver){
case 3: saveOptions.compatibility = Compatibility.ILLUSTRATOR3;
case 8: saveOptions.compatibility = Compatibility.ILLUSTRATOR8;
case 9: saveOptions.compatibility = Compatibility.ILLUSTRATOR9;
case 10: saveOptions.compatibility = Compatibility.ILLUSTRATOR10;
case 11: saveOptions.compatibility = Compatibility.ILLUSTRATOR11;
case 12: saveOptions.compatibility = Compatibility.ILLUSTRATOR12;
}
saveOptions.overprint = PDFOverprint.PRESERVEPDFOVERPRINT;
if (ver <= 9) {
saveOptions.flattenOutput = OutputFlattening.PRESERVEAPPEARANCE;
}
if (ver >= 7) {
saveOptions.embedLinkedFiles = false;
}
if (ver >= 9){
saveOptions.fontSubsetThreshold = 100;
saveOptions.embedICCProfile = false;
}
if (ver >= 10) {
saveOptions.compressed = true;
saveOptions.pdfCompatible = true;
}
var preffix = "";
var suffix = ".ai";
var noname = "0";
if (documents.length > 0){
if (doc.saved==false) {
alert('Le document doit etre enregistre avant de lancer le script!!!','saveLayersToAI',true);
start = false;
}
if (start){
fullDocName = doc.fullName;
for (j=0; j<doc.layers.length; j++){
if ((doc.layers[j].printable == true)&&(doc.layers[j].locked == false)&&(doc.layers[j].name != 'Call outs')&&(doc.layers[j].name != 'Background')) {
doc.layers[j].locked = true;
nameLayer = doc.layers[j].name;
for (i=0; i<doc.layers.length; i++){
if (doc.layers[i].locked == false){
doc.layers[i].visible = true;
doc.layers[i].remove();
i = i-1;
}
}
for (i=0; i<doc.layers.length; i++){
doc.layers[i].locked = false;
doc.layers[i].visible = true;
}
var param = doc.name.split('.');
realDocName = param[0];
if (nameLayer == noname) docName = realDocName+suffix;
else docName = preffix+realDocName+'_'+nameLayer+suffix;
var saveName = new File ( doc.path + "/" + docName );
doc.saveAs( saveName, saveOptions );
doc.close(SaveOptions.DONOTSAVECHANGES);
doc = null;
app.open (fullDocName);
doc = app.activeDocument;
}
}
}
}

#31 Loic Aigon

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1662 messages

Posté 06 May 2009 - 08:11 AM

Bravo ! quel talent :D :Hola:

#32 max.baile

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 07 May 2009 - 16:36 PM

Merci bcp de ton aide

J'ai essayé le dernier script sur ai cs3, sans résultat... :$

Mais avant de voir ta réponse j'ai modifié le script en ça :

var folder = Folder.selectDialog();
var document = app.activeDocument;
if(document && folder)
{
var aiSaveOpts = getAIOptions( );


var n = document.layers.length;
for(var i=0; i<n; ++i)
{
hideAllLayers();
var layer = document.layers[i];
layer.visible = true;

var file = new File(folder.fsName+"/"+layer.name+".ai");
document.saveAs( file, aiSaveOpts );
aiSize = file.length;
}

showAllLayers();
}

function hideAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = false;
});
}

function showAllLayers()
{
forEach(document.layers, function(layer) {
layer.visible = true;
});
}

function forEach(collection, fn)
{
var n = collection.length;
for(var i=0; i<n; ++i)
{
fn(collection[i]);
}
}
function getAIOptions()
{
var aiSaveOpts = new IllustratorSaveOptions();

aiSaveOpts.compatibility = Compatibility.ILLUSTRATOR11;
aiSaveOpts.compressed = true;
aiSaveOpts.embedICCProfile = false;
aiSaveOpts.embedLinkedFiles = false;
aiSaveOpts.flattenOutput = OutputFlattening.PRESERVEAPPEARANCE;
aiSaveOpts.fontSubsetThreshold = 100;
aiSaveOpts.overprint = PDFOverprint.PRESERVEPDFOVERPRINT;
aiSaveOpts.pdfCompatible = true;

return aiSaveOpts;
}




Ce qui fonctionne mais je me retrouve au problème cité plus haut...
En cherchant une solution j'ai trouvé dans la classe layer la méthode {}move(relativeObject, insertionLocation):Layer
et je pensais pouvoir m'en sortir mais la syntaxe me pose problème...
Pense tu que je sois sur la bonne piste?

#33 sylvain.vitrat

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 09 July 2009 - 09:41 AM

Bonjour je me présente je m'appelle Sylvain et j'ai exactement le même problème sauf que j'ai besoin de fichier .eps.
J'ai une carte en eps en fond avec un point pour chaque département disposé sur des calques indépendant.

Serai il possible de me dire comment modifier vos script ?

Je dois avoir un fichier par département avec le calque de fond de carte à chaque fois (c'est le premier calque) et je dois les enregistrer en .eps

Merci beaucoup par avance de votre aide

ps : j'ai Ai cs4 sous mac OS

Sylvain

#34 Bediez

  • Guests

Posté 09 July 2009 - 12:25 PM

wouah la classe les gars :D

#35 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 09 July 2009 - 13:29 PM

Voir le messageBediez, le Jul 9 2009, 11:25 AM, dit :

wouah la classe les gars :)
:D :?:

#36 Bediez

  • Guests

Posté 09 July 2009 - 15:37 PM

Vos scripts.. ça dépote...

#37 sylvain.vitrat

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 10 July 2009 - 12:31 PM

Est-ce impossible ce que je demande, je vous demande ça pour savoir si je dois me ré-orienté vers le système D.
Merci d'avance

#38 Loic Aigon

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1662 messages

Posté 10 July 2009 - 13:15 PM

Voir le messageSylvain Design, le Jul 10 2009, 11:31 AM, dit :

Est-ce impossible ce que je demande, je vous demande ça pour savoir si je dois me ré-orienté vers le système D.
Merci d'avance
Non c'est possible. Tu veux quoi au juste : Garder la carte de France en fond et avoi un fichier eps par département ?

#39 sylvain.vitrat

    Ceinture Blanche

  • Members
  • Pip
  • 5 messages

Posté 13 July 2009 - 22:36 PM

Merci à tous, grace à vous et à mon frère on a pu réécrire votre code pour l'adopter à mes besoins donc pour tout ceux qui veulent enregistrer des calques séparément avec un calque de fond en svg voici le code.

tell application "Finder"
activate
make new folder at folder "Desktop" of folder "sylvainvitrat" of folder "Users" of startup disk with properties {name:"dossier sans titre"}
set name of folder "dossier sans titre" of folder "Desktop" of folder "votre nom d'user" of folder "Users" of startup disk to "votre nom de dossier"
end tell

--spécifie lieu de stockage
set whereTo to "/Users/votre nom d'user/Desktop/votre nom de dossier/"

tell application "Adobe Illustrator"
set fileName to ".svg"

set t to current document

set c to count every layer of t
repeat with y from 1 to c
-- pour chaque calque appelle la fonction layerVis
set lName to name of layer y of t
set thePath to whereTo & lName & fileName
my layerVis(thePath, lName)

end repeat
end tell

on layerVis(thePath, lName)
-- rend visible 1 seul calque + la carte de fond
tell application "Adobe Illustrator"
set x to current document
set visible of every layer of x whose name is not lName to false
set visible of layer "Carte" of x to true
set visible of layer lName of x to true


-- exporte au format SVG les calques visibles
export x to file (thePath) as SVG with options {class:SVG export options, embed raster images:true, preserve editability:true}


end tell
end layerVis
tell application "Adobe Illustrator"
close document 1 without saving
end tell

#40 Loic Aigon

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1662 messages

Posté 14 July 2009 - 07:28 AM

Il y a une salle dédiée aux scripts. N'hésitez pas à poster là-bas votre trouvaille :evil:

#41 Guillaume 88

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 22 January 2011 - 11:51 AM

Bonjour je suis nouveau,

étant infographiste je dois générer quotidiennement mes maquettes illustrator au format jpeg.
C'est assez redondant quand il y a 50 ou 100 calques par fichier illustrator et c'est aussi une grande perte de temps comme certains l'expriment si plus haut.

Aussi j'ai cherché des solutions pour finalement aboutir sur ce forum proposant un apple script marchant parfaitement bien.
Merci à jeanphilippe qui est le précurseur de ce code.

Pour prolonger la sauce j'aimerais résoudre un dernier point :
- Comment et ou écrire la ligne de code pour "écrêter le plan de travail ?"

(Car lorsque l'on génère un jpeg nous pouvons soit écreter l'image pour ne laisser apparaitre que l'interieur du format utilisé ou bien garder l'intégralité du calque même si ce dernier déborde du format.)


Pour info, je n'ai pas trouvé de solution dans le dictionnaire d'illustrator.

Merci pour vos réponses
Guillaume

Voici le code :

set whereTo to "/Users/nom/Desktop/dossier d'enregistrement des jpeg/"

tell application "Adobe Illustrator"

set fileName to ".jpg"


set t to current document


set c to count every layer of t

repeat with y from 1 to c

set lName to name of layer y of t

set thePath to whereTo & lName & fileName

my layerVis(thePath, lName)


end repeat

end tell


on layerVis(thePath, lName)

tell application "Adobe Illustrator"

set x to current document

set visible of every layer of x whose name is not lName to false

set visible of layer "GAB" of x to true

set visible of layer lName of x to true



export x to file (thePath) as JPEG with options {class:JPEG export options, quality:100, optimization:true, saving as HTML:false, horizontal scaling:200, vertical scaling:200} ¬






end tell

end layerVis

tell application "Adobe Illustrator"


end tell

#42 Guillaume 88

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 26 January 2011 - 21:18 PM

Bonsoir,
vu que c'est un topic qui date, je me permet de le relancer.

#43 Guillaume 88

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 02 February 2011 - 20:44 PM

La seule astuce que j'ai trouvé est de supprimer avant la génération des jpeg, la totalité des éléments qui trainent autour du plan de travail.

Mais bon, cela ne s'applique pas au masques d'ecretages qui dépassent du plan.
Eh oui, si on supprime le masque, le visuel sur le plan de travail saute également...

#44 macia.sebastien

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 15 June 2011 - 13:28 PM

Bonjour,

serait il possible de m'envoyer un script PC, qui me permettrait de generer des fichiers swf pour chaque calque de mon fichier illustrator. Il faudrait aussi que le fichier swf recupere le nom du calque illustrator.
Je ne sais pas si je suis clair.
Merci d'avance !



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP