[MacRuby-devel] Adobe Illustrator scripting with MacRuby

Chris Brown r.chris.brown at gmail.com
Wed May 20 17:07:30 PDT 2009


Can anyone post an example of how to add (1) a layer and (2) a path  
object to an Adobe Illustrator document? I am able to do these things  
using rb-appscript with Ruby 1.8, but have not been successful with  
MacRuby and ScriptingBridge. I have also failed trying to get  
appscript to work with MacRuby.

This works (irb):

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'appscript'
=> true
irb(main):003:0> include Appscript
=> Object
irb(main):004:0> ai = app('Adobe Illustrator')
=> app("/Applications/Adobe Illustrator CS3/Adobe Illustrator.app")
irb(main):005:0> doc = ai.documents[1]
=> app("/Applications/Adobe Illustrator CS3/Adobe  
Illustrator.app").documents[1]
irb(main):006:0> doc.name.get
=> "Sample.ai"
irb(main):007:0> doc.make(:new => :layer, :with_properties => {:name  
=> 'Test'})
=> app("/Applications/Adobe Illustrator CS3/Adobe  
Illustrator.app").documents[1].layers[1]


I get this far with macirb:

 >> framework 'ScriptingBridge'
=> true
 >> ai =  
SBApplication.applicationWithBundleIdentifier('com.adobe.illustrator')
=> #<AdobeIllustratorApplication:0x800b5fcc0>
 >> doc = ai.currentDocument
=> #<AdobeIllustratorDocument:0x800d1f740>
 >> doc.name
=> "Sample.ai"

I can query and set properties on my Illustrator documents, no  
problem. It is creating new objects that is not working for me.

I am running plain-vanilla MacRuby 0.4 on a 2 x 2.8 Quad-Core Xeon, OS  
10.5.7.

Thanks in advance,

- Chris



More information about the MacRuby-devel mailing list