[GastForen Programmierung/Entwicklung AppleScript Illustrator AppleScript in JavaScript?

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Illustrator AppleScript in JavaScript?

Hans Haesler
  
Beiträge gesamt: 5826

4. Dez 2013, 08:43
Beitrag # 16 von 18
Beitrag ID: #520515
Bewertung:
(1268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo fprince,

ich habe etwas nachgeforscht. Weil mit Illustrator das exit() zum Beenden der Script-Ausführung nicht funktioniert, wird empfohlen, die Aktionen in eine Funktion zu packen, welche mit return verlassen werden kann.

Also: Wenn bei einem Test eine Bedingung nicht erfüllt ist, einen Alert zeigen und danach mit return aussteigen.

Das ist nachfolgend so umgesetzt. Und neu wird die Sperrung der Ebenen geprüft. Um die Fehlermeldung "Target layer cannot be modified" zu vermeiden, wird die Sperrung vorübergehend aufgehoben und am Schluss wiederhergestellt. Dazu wurde vorher true oder false in einen Array geschrieben.

Code
//DeleteUnpainted.js 
//Das Skript löscht alle Objekte in einem Illustrator-Dokument,
//die keine Füllung und Kontur haben und nicht als Schnittmaskenpfad
//eingesetzt werden.

delEmpty();

function delEmpty() {
if (documents.length == 0) {
alert ("Bitte ein Dokument öffnen.", "Achtung");
return;
}
// das aktive Dokument
var curDoc = app.activeDocument;
// prüfen, ob Objekte vorhanden sind
if (curDoc.pageItems.length == 0) {
alert ("Das Dokument enthält keine Objekte.", "Stop");
return;
}
// die Sperrung der Ebenen speichern, entsperren falls notwendig
var layerLocks = new Array ();
var allLayers = app.activeDocument.layers;
for (var i=0; i<allLayers.length; i++) {
if (allLayers[i].locked == true) {
allLayers[i].locked = false;
layerLocks.push(true);
}
else {
layerLocks.push(false);
}
}
// die Objekte und deren Anzahl
var allObjects = curDoc.pageItems;
var nObjects = allObjects.length;
// eine Rückwärts-Schleife durch die Objekte
for (var n=nObjects-1; n>-1; n--) {
var curObj = allObjects[n];
if (curObj.filled == false && curObj.stroked == false) {
if (curObj.clipping == false && curObj.wrapped == false) {
curObj.remove();
}
}
}
// die Sperrung der Ebenen wiederherstellen
for (var i=0; i<allLayers.length; i++) {
if (layerLocks[i]) {
allLayers[i].locked = true;
}
}
// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(999);
// das Fenster schliessen
dlog.close();
}

Wenn ein Objekt gesperrt ist, dann wird es problemlos entfernt. Es muss nicht entsperrt werden.

Doch solch eine Sperrung könnte man auch benutzen, um ein spezielles Objekt vor dem Entfernen zu schützen. Dann würde es reichen, curObj.locked == false in die Prüfung einzufügen.

Gruss, Hans


als Antwort auf: [#520490]
(Dieser Beitrag wurde von Hans Haesler am 4. Dez 2013, 12:24 geändert)
X

Illustrator AppleScript in JavaScript?

fprince
Beiträge gesamt: 54

4. Dez 2013, 11:55
Beitrag # 17 von 18
Beitrag ID: #520527
Bewertung:
(1246 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das wird ja immer besser. Das automatische Entsperren der Ebenen finde ich super. Und noch dazu habe ich wieder einiges über JavaScript gelernt. Vielen Dank für die Mühe.

LG fprince


als Antwort auf: [#520515]

Illustrator AppleScript in JavaScript?

Hans Haesler
  
Beiträge gesamt: 5826

4. Dez 2013, 12:29
Beitrag # 18 von 18
Beitrag ID: #520534
Bewertung:
(1234 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo fprince,

bitte schön.

Ich habe soeben in meinem letzten Beitrag den letzen Satz editieren müssen.
Weil das Sperrungs-Attribut eines Objekts mit locked abgefragt werden kann (nicht mit wrapped).

Gruss, Hans


als Antwort auf: [#520527]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!