• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Skript für Illustrator CS3

Cassian

Cox Orange
Registriert
25.02.07
Beiträge
97
Hallo zusammen
Ich hab ein kleines Problem ich habe mir im Developer Center von Adobe das "Adobe Illustrator CS3 AppleScript Reference" Dokument geladen. Doch es hilft mir ziemlich wenig da ich AppleScript im Grunde gar nicht kann. (nur TopPascal aus der Schule)

Trotzdem möchte ich ein kleines Skript erstellen, welches mir einwenig unter die Arme greift.
Mein Ziel ist es eine Vektorgrafik zu öffnen und gleich wieder im neuen Format zu speichern. Einige werden jetzt sagen, das sei bescheuert. Aber der Sinn liegt darin ich habe eine gemischte Datenbank an Vektorgrafiken, sprich .eps und alte .ai, doch nun möchte ich alle Dokumente auf einen Nenner bringen. Also alle im neuen CS3 Ai-Format.

Wie krieg ich das hin oder geht das überhaupt?
Wäre sehr erfreut über ein TUT oder ein kleines Beispiel in ein Bezug der Sache.

Gruss Cassian
 
Zuletzt bearbeitet:

Cassian

Cox Orange
Registriert
25.02.07
Beiträge
97
Verbessern

Ich hab nun etwas im Internet gefunden, was sehr viel versprechend aus sieht, doch irgendwie geht es nicht so wie ich möchte.

set fileTypes to {"EPSF", "PDF ", "ART5", "AI"} -- file types available to resave as Illustrator

-- get a sourceFolder that holds the files to resave as AI
set sourceFolder to (choose folder with prompt "Choose a folder with files to resave as Illustrator:") as text

-- get a list of files of the defined type in the sourceFolder
tell application "Finder" to set workingFiles to (every file of folder sourceFolder whose file type is in fileTypes) as alias list
-- now you have your fileList argument

-- get a destinationFolder to hold the AIs
set destinationFolder to (choose folder with prompt "Choose a folder to hold the Illustrator files:") as text

SaveFilesAsAI10(workingFiles, destinationFolder)

on SaveFilesAsAI10(fileList, destinationFolder)
set destinationPath to destinationFolder as string
repeat with aFile in fileList
tell application "Finder" to set fileName to (name of aFile)
set newFilePath to destinationPath & fileName
tell application "Illustrator CS"
open aFile
save current document in file newFilePath as Illustrator with options {class:Illustrator save options, embed linked files:false, PDF compatible:false, font subset threshold:0.0}
close current document saving no
end tell
end repeat
end SaveFilesAsAI10

Gruss Cassian

PS: Wie kann ich das hier im Forum schön darstellen?
 

Cassian

Cox Orange
Registriert
25.02.07
Beiträge
97
dreh mich im Kreis. Hilfe!!!!!

Ich hab etwas weiter gearbeitet und hier ist das Resultat:
Code:
set fileTypes to {"eps", "pdf ", "ai"} -- file types available to resave as Illustrator 

-- get a sourceFolder that holds the files to resave as AI 
set sourceFolder to (choose folder with prompt "Wähle einen Ordner in dem sich die Files befinden:") as text

-- get a list of files of the defined type in the sourceFolder 
tell application "Finder" to set workingFiles to (every file of folder sourceFolder whose file type is in fileTypes) as alias list
-- now you have your fileList argument 

-- get a destinationFolder to hold the AIs 
set destinationFolder to (choose folder with prompt "Wähle einen Ordner um die Files zu speichern:") as text

SaveFilesAsIllustratorCS3(workingFiles, destinationFolder)

on SaveFilesAsIllustratorCS3(fileList, destinationFolder)
	set destinationPath to destinationFolder as string
	repeat with aFile in fileList
		tell application "Finder" to set fileName to (name of aFile)
		set newFilePath to destinationPath & fileName
		tell application "Adobe Illustrator"
			open aFile
			save current document in file newFilePath as Illustrator with options {class:Illustrator save options, embed linked files:false, PDF compatible:true, font subset threshold:0.0}
			close current document saving no
		end tell
	end repeat
end SaveFilesAsIllustratorCS3

Nun ist das Skript meiner Meinung nach etwas sauberer.
Leider komme ich aber nicht weiter als die Auswahl der Files.
Es kommt die Fehler Meldung.
attachment.php

Ich werd aus dem nicht schlau. Was muss ich anders machen?

WER KANN MIR HELFEN!!!
 

Anhänge

  • Fehler.jpg
    Fehler.jpg
    10,4 KB · Aufrufe: 1.098

Cassian

Cox Orange
Registriert
25.02.07
Beiträge
97
Kann mir niemand helfen?
Ich weiss echt nicht weiter.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo Cassian! :)

every ... whose is in... geht leider in der aktuellen Version von AppleScript nicht.
Das in solchen Fällen immer auftauchende PopUp sollte dir eigentlich zeigen, daß AppleScript da aus dem Ruder kommt. (Ab "whose" ist da der Satz doch wohl etwas durcheinander, oder :) )

Du mußt also mit einer repeat Routine alle Dateien des ausgewählten Ordners nacheinander abarbeiten. Also eigentlich nur die schon im Skript vorhandene etwas umstellen.

Sedna
 

Cassian

Cox Orange
Registriert
25.02.07
Beiträge
97
Danke vielmal.
Ich schau mir das mal an und werde mich wieder melden falls ich noch ein paar fragen hab.
Ich wär noch lange im dunkeln rumgeirrt. ;)

Cassian
 

Cassian

Cox Orange
Registriert
25.02.07
Beiträge
97
Nur ein wenig weiter

Code:
set fileTypes to {"eps", "pdf ", "ai"} -- file types available to resave as Illustrator 

-- get a sourceFolder that holds the files to resave as AI 
set sourceFolder to (choose folder with prompt "Wähle einen Ordner in dem sich die Files befinden:") as text

-- get a list of files of the defined type in the sourceFolder 
tell application "Finder" to set workingFiles to (every file of folder sourceFolder whose file type is in fileTypes) as alias list
-- now you have your fileList argument 

-- get a destinationFolder to hold the AIs 
set destinationFolder to (choose folder with prompt "Wähle einen Ordner um die Files zu speichern:") as text

SaveFilesAsIllustratorCS3(workingFiles, destinationFolder)

on SaveFilesAsIllustratorCS3(fileList, destinationFolder)
	set destinationPath to destinationFolder as string
	set fileCount to count of fileList
	if fileCount > 0 then
		repeat with aFile from 1 to fileCount
			tell application "Finder" to set fileName to (name of aFile)
			set newFilePath to destinationPath & fileName
			tell application "Adobe Illustrator"
				open POSIX file fullPath as alias without dialogs
				save current document in file newFilePath as eps ¬
					with options {class:EPS save options ¬
					, compatibility:Illustrator 13 ¬
					, preview:color Macintosh ¬
					, embed linked files:true ¬
					, include document thumbnails:true ¬
					, embed all fonts:true ¬
					, CMYK PostScript:true ¬
					, PostScript:level 2}
				close current document saving no
			end tell
		end repeat
	end if
end SaveFilesAsIllustratorCS3

Die Schlaufe, so scheint es mir zumindest, habe ich eingebaut aber irgend wie meckert er Apple-Script Fehler:„name of 1“ kann nicht gelesen werden.

An was könnt das liegen so wies ausschaut wäre die Sache dann fertig

PS: der Script beläuft sich momentan auf EPS was aber auch in Ordnung ist. Es sollten einfach alle Daten auf dem selben Stand sein.
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Hallo Cassian! :)
Ich weiß gar nicht, wo ich anfangen soll :)

Also erst mal meinte ich, die repeat Routine aus dem on SaveFilesAsIllustratorPS3 Handler rauszunehmen und stattdessen die Files aus deinem sourceFolder damit abzuarbeiten.

Doch bevor ich dir da helfend unter die Arme greifen kann, sollten wir noch eine Sache klären. Du benutzt file type in deinem Skript. Soweit ich weiß, gibt es gar kein "pdf" file type sondern "PDF" und statt "eps" ist das doch "EPSF" oder? Meinst Du vielleicht name extension ?

Wenn Du nicht sicher bist, was ein file type in OSX ist, so kannst Du ja mal Google bemühen.
Ansonsten kläre mich bitte auf.

Sedna
 

Cassian

Cox Orange
Registriert
25.02.07
Beiträge
97
Tag Sedna! Danke erstmal für deine Hilfe. Nun zum Skript :)
Ok das mit der Routine ausserhalb von Illustrator macht Sinn. Schau ich mir mal an.

Zum Punkt mit den file types es sollte wirklich "PDF" und "EPSF" sein nichts anderes. Doch jetzt weiss ich nicht wie der "Name" für eine Illustrator-Datei ist. Etwa "AI"?
file types wird korrigiert und die Schlaufe versuch ich mal anzupassen.

Cassian
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Ich kenn AppleScript nicht, aber was ich gesehen habe, ist, dass du eine Liste mit Dateinamen erstellt hast (fileList). Du lässt dann in einer for-Schleife (Variable: aFile) eine Zahl von 1 - Anzahl Items der fileList laufen. Jetzt ist es so, dass du dann nicht schon direkt den Namen an der aFile-ten Stelle in der Liste hast, den musst du zuerst rausholen und in eine andere Variable packen und dann damit arbeiten. Du musst also irgendwie so vorgehen:

Code:
// Angenommen fileList existiert!

fileCount = Anzahl Namen in fileList

for-Schleife (aFile von 0 bis fileCount durchlaufen lassen)
     fileName = Objekt an aFile-ter Stelle in der fileList
     // jetzt mit fileName weiterarbeiten

Gruss ppocket