Um im vorhandenen Illustrator-Skript „Save as PDFs.jsx“ vor dem Speichern automatisch den Befehl „Farben bearbeiten → In Graustufen konvertieren“ auszuführen, muss das Skript um einen Funktionsaufruf ergänzt werden, der diesen Effekt auslöst. Illustrator unterstützt dies allerdings nicht direkt per Menüaufruf, aber es gibt eine Skriptlösung, die das gleiche bewirkt wie der Menübefehl.
Erweiterte Lösung: Konvertierung in Graustufen via Script
Füge diese Funktion unten in dein Script ein (z. B. ganz am Ende):
function convertToGrayscale(doc) {
var items = doc.pageItems;
for (var i = 0; i < items.length; i++) {
try {
var item = items[i];
if (item.typename === "PathItem" && item.filled) {
var gray = Math.round((item.fillColor.red + item.fillColor.green + item.fillColor.blue) / 3);
var grayColor = new GrayColor();
grayColor.gray = gray;
item.fillColor = grayColor;
}
} catch (e) {
// manche Elemente haben keine RGB-Farben oder werfen Fehler – einfach ignorieren
}
}
}
Und füge dann im Hauptcode (in der Schleife, wo die Dokumente geöffnet werden) diesen Aufruf ein:
convertToGrayscale(sourceDoc);
Also etwa so:
for ( i = 0; i < files.length; i++ )
{
sourceDoc = app.open(files[i]); // wichtig: [i] war im Original falsch
// Hier wird konvertiert:
convertToGrayscale(sourceDoc);
targetFile = getNewName();
pdfSaveOpts = getPDFOptions();
sourceDoc.saveAs(targetFile, pdfSaveOpts);
sourceDoc.close();
}
⚠️ Hinweis zur Farbraum-Konvertierung:
Die Funktion geht davon aus, dass die Elemente RGB-Farben haben. Illustrator verwendet intern oft andere Farbräume (CMYK, Spot, usw.), daher kann diese Methode je nach Dokument nicht 100 % zuverlässig alle Farben erwischen. Für einfache RGB-Grafiken funktioniert sie gut.
Ein echtes „Menü simulieren“ geht per Skript nicht direkt, da das ExtendScript keine Zugriffsebene auf GUI-Menübefehle wie „Farben bearbeiten“ bietet.