Bonjour à tous, je souhaiter créer un script capable d'exporter mon fichier .ai en jpg puis de convertir le jpg en PDF ce que j'ai réussi à faire malheuresement j'ai voulu rajouter une option pour exporter tous les fichiers ouverts dans illustrator et je ne trouve pas la bonne solution. A l'heure acutelle quand je souhaite exporter tous les fichiers ouverts sur illustrator le script m'exporte uniquement mon fichier actif en autant de copies qu'il n'y a de fichiers ouverts sur illustrator au lieu de m'exporter chaque fichier.
Voici mon script
// Vérifie si un document est ouvert
if (app.documents.length == 0) {
alert("Aucun document ouvert.");
} else {
// Crée une fenêtre avec une question et deux boutons cliquables
var exportAllDocs = false;
var exportDocDlg = new Window("dialog", "SAI - PDF EXPORT", undefined);
exportDocDlg.add("statictext", undefined, "Sélectionner l'option d'export souhaitée:");
var btnGroup = exportDocDlg.add("group");
var docBtn = btnGroup.add("button", undefined, "Document actif seulement");
docBtn.onClick = function() {
exportAllDocs = false;
exportDocDlg.close();
};
var allDocsBtn = btnGroup.add("button", undefined, "Tous les documents ouverts");
allDocsBtn.onClick = function() {
exportAllDocs = true;
exportDocDlg.close();
};
exportDocDlg.show();
// Si l'utilisateur a choisi d'exporter tous les documents ouverts, traite-les tous
var documents;
if (exportAllDocs) {
documents = app.documents;
for (var i = 0; i < documents.length; i++) {
var currentDocument = documents[i];
var nonPrintableLayer = currentDocument.layers.getByName("NON IMPRIMABLE");
if (nonPrintableLayer) {
// Désactive le calque "NON IMPRIMABLE"
nonPrintableLayer.visible = false;
}
}
}
// Sinon, exporte uniquement le document actif
else {
// Exporte uniquement le document actif
documents = [app.activeDocument];
for (var i = 0; i < documents.length; i++) {
var currentDocument = documents[i];
var nonPrintableLayer = currentDocument.layers.getByName("NON IMPRIMABLE");
if (nonPrintableLayer) {
// Désactive le calque "NON IMPRIMABLE"
nonPrintableLayer.visible = false;
}
}
}
// Parcourt tous les fichiers à exporter
for (var i = 0; i < documents.length; i++) {
var currentDocument = documents[i];
// Récupère le nom du document
var docName = currentDocument.name;
// Récupère le chemin d'accès du document
var docPath = currentDocument.path;
// Définit le nom du fichier PDF en ajoutant l'extension .pdf
var pdfName = docName.replace(/\.[^\.]+$/, '') + ".pdf";
// Exporte le plan de travail au format JPG sans le calque "NON IMPRIMABLE"
var jpgExportOpts = new ExportOptionsJPEG();
jpgExportOpts.artBoardClipping = true;
jpgExportOpts.horizontalScale = 200; // 20 fois supérieure à la résolution de base
jpgExportOpts.verticalScale = 200; // 20 fois supérieure à la résolution de base
jpgExportOpts.qualitySetting = 100;
var jpgFile = new File(docPath + "/" + docName.replace(/\.[^\.]+$/, '') + ".jpg");
currentDocument.exportFile(jpgFile, ExportType.JPEG, jpgExportOpts);
// Réactive le calque "NON IMPRIMABLE"
if (nonPrintableLayer) {
nonPrintableLayer.visible = true;
}
// Ouvre le fichier JPG pour obtenir les limites de l'illustration
var jpgDoc = app.open(jpgFile);
var jpgLayer = jpgDoc.layers[0];
var jpgBounds = jpgDoc.visibleBounds;
// Ajuste les limites du plan de travail pour qu'elles correspondent aux limites de l'illustration
var activeArtboard = currentDocument.artboards[currentDocument.artboards.getActiveArtboardIndex()];
activeArtboard.artboardRect = jpgBounds;
// Ouvre le fichier JPG et le convertit en PDF
var pdfExportOpts = new PDFSaveOptions();
var pdfFile = new File(docPath + "/" + pdfName);
jpgDoc.saveAs(pdfFile, pdfExportOpts);
pdfExportOpts.horizontalScale = 0.1; // 20 fois supérieure à la résolution de base
pdfExportOpts.verticalScale = 0.1; // 20 fois supérieure à la résolution de base
// Ferme le fichier JPG et supprime le fichier JPG original
jpgDoc.close(SaveOptions.DONOTSAVECHANGES);
jpgFile.remove();
}
// afficher un message de confirmation
alert("L'export PDF a été réalisé avec succès !");
}