1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Skript für Illustrator CS3

Dieses Thema im Forum "AppleScript" wurde erstellt von Cassian, 15.10.08.

  1. Cassian

    Cassian Cox Orange

    Dabei seit:
    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
     
    #1 Cassian, 15.10.08
    Zuletzt bearbeitet: 15.10.08
  2. Cassian

    Cassian Cox Orange

    Dabei seit:
    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?
     
  3. Cassian

    Cassian Cox Orange

    Dabei seit:
    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.
    [​IMG]
    Ich werd aus dem nicht schlau. Was muss ich anders machen?

    WER KANN MIR HELFEN!!!
     

    Anhänge:

  4. Cassian

    Cassian Cox Orange

    Dabei seit:
    25.02.07
    Beiträge:
    97
    Kann mir niemand helfen?
    Ich weiss echt nicht weiter.
     
  5. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    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
     
  6. Cassian

    Cassian Cox Orange

    Dabei seit:
    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
     
  7. Cassian

    Cassian Cox Orange

    Dabei seit:
    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.
     
  8. sedna

    sedna Pomme Etrangle

    Dabei seit:
    22.10.08
    Beiträge:
    911
    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
     
  9. Cassian

    Cassian Cox Orange

    Dabei seit:
    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
     
  10. Poljpocket

    Poljpocket Salvatico di Campascio

    Dabei seit:
    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
     

Diese Seite empfehlen