Copy link to clipboard
Copied
Hallo Zusammen,
ich versuche seit zwei Tagen ein Skript zu schreiben, um hunderte .ai-Dateien via Skript auf die gleiche Zeichenfläche-Größe zu bringen.
Mein Skript läuft soweit auch wie gewollt durch, nur wird die neu berechnete Größe nicht in die Zeichenfläche eingetragen. D.h. die Zeichenfläche verändert ihre Größe nicht.
#target Illustrator
var OPTIONS = {
size : 144.566895,
width : 144.566895,
height : 144.566895
};
app.userInteractionLevel.DISPLAYALERTS
var dir = Folder.selectDialog("Where?");
var files = dir.getFiles("*.ai");
OPTIONS.size = Window.prompt(
"Enter New Artboard size in pixels as WxH ( Example: 250x300 )", 144.566895,title);
// var doc = app.open(files);
for (var j = 0; j < files.length; j++) {
var doc = app.open(files[j]);
var title = "Resize All Artboards";
var width = OPTIONS.width;
var height = OPTIONS.height;
var idoc = app.activeDocument;
var ab = idoc.artboards[0];
// var abBounds = doc.artboards[j].artboardRect; // left, top, right, bottom
var abBounds = ab.artboardRect; // left, top, right, bottom
// Window.alert(ab);
Window.alert(abBounds);
var ableft = abBounds[0];
var abtop = abBounds[1];
var abwidth = abBounds[2] - ableft;
var abheight = abtop- abBounds[3];
var abctrx = abwidth / 2 + ableft;
var abctry = abtop - abheight / 2;
// Window.alert(width);
// Window.alert(height);
var ableftNew = abctrx - width / 2;
// Window.alert(ableft)
var abtopNew = abctry + height / 2;
// Window.alert(abtop)
var abrightNew = abctrx + width / 2;
// Window.alert(abright)
var abbottomNew = abctry - height / 2;
// Window.alert(abbottom)
var test = app.activeDocument.artboardRect = [abBounds[0], abBounds[1], abBounds[2], abBounds[3]];
// var test = app.activeDocument.artboardRect = [ableftNew, abtopNew, abrightNew, abbottomNew];
Window.alert(test);
app.activeDocument.artboardRect = [abBounds[0], abBounds[1], abBounds[2], abBounds[3]];
doc.close(SaveOptions.SAVECHANGES);
}
Weiß jemand, woran es liegen kann?
3 Beispiel .ai-Dateien zum ausprobieren hänge ich mit an :https://drive.google.com/drive/folders/1kslWAPYwdXeZRihVg4rZKlDapho9dgLp?usp=sharing
The line before last should be
app.activeDocument.artboards[0].artboardRect = [ableftNew, abtopNew, abrightNew, abbottomNew];
(artboards[0] is missing in all similar statements in the script.)
Copy link to clipboard
Copied
The line before last should be
app.activeDocument.artboards[0].artboardRect = [ableftNew, abtopNew, abrightNew, abbottomNew];
(artboards[0] is missing in all similar statements in the script.)
Copy link to clipboard
Copied
Thank you! Adding that"0" made the script work!
Copy link to clipboard
Copied
Hallo @EliaB82B
wie dir @femkeblanco bereits geschrieben hat: du verwendest in deinem Script die ausgelesenen Koordinaten des Originalartboards. Das heißt nicht anderes als die Größe des Artboards mit der originalen Größe zu ersetzen. Verwende deine "New-Koordinaten". dann sollte es auch funktionieren.
Was sich mir allerdings nicht ganz erschließt - wie du mit deinem bisherigen Scriptaufbau und deiner Variable "Options" etwas anderes als ein quadratisches Artboard erstellen kannst.
Copy link to clipboard
Copied
Also mit den rechteckigen Motiven hat es auch geklappt. Keine Ahnung wieso 😄