Photoshop Contact Sheet Sciptable?

Is it possible to attach a script as a folder action to a Contact Sheet Hot Folder? Can it wait for all images to copy into the hot folder…and then create the contact sheet based on the Photoshop contact sheet prefs? Looking for it to save as a pdf to any location, then delete images used to make the contact sheet.
Thanks if anyone can help.

Hi

Not quite what you want but you can customise this handler that creates a contact sheet.
pathtoorig = path to original files, pathtoweb = path to website folder


on createwebgallery(pathtoorig, pathtoweb)
	set username to "Your Name"
	set d_ate to (current date) as text
	with timeout of 180 seconds
		tell application "Adobe Photoshop CS"
			create photo gallery from folder pathtoorig to folder pathtoweb with options {banner options:{site name:"Your Banner Info", photographer:username, date:d_ate}, images options:{include file name:false, dimension:600}, thumbnail options:{include file name:true, dimension:130}}
		end tell
	end timeout
end createwebgallery

I was wondering the same thing. I think I am sort of close but can’t get the script to work yet. I think my problem is in the options part. Here’s what I have so far. I haven’t worked on the printing yet b/c I want to get the contact sheet part first. If anyone can help please feel free to share.

Thanks

Robert

on run
	tell application "Finder"
		set sourcePath to choose folder with prompt "Please select SOURCE folder:"
		set savePath to choose folder with prompt "Please select DESTINATION folder:"
		set fileList to (files of entire contents of sourcePath) as alias list
	end tell
	
	repeat until fileList = {}
		set FilePath to item 1 of fileList as alias
		
		tell application "Adobe Photoshop CS3"
			create contact sheet from files list of FilePath with options {best fit, caption, column count of 2, flatten final, height of 3750, resolution of 300, mode of CMYK, row count of 2, width of 2700}
		end tell
		
		set fileList to rest of fileList
	end repeat
end run

 -- then I want to print all the open contact sheets saving no close without saving

Hi,

I don’t know if this works on your machine (I get an internal PS error),
but this is the proper syntax to create a contact sheet
Edit: activating Photoshop solves the problem


tell application "Finder"
	set sourcePath to choose folder with prompt "Please select SOURCE folder:"
	--	set savePath to choose folder with prompt "Please select DESTINATION folder:"
	set fileList to (files of entire contents of sourcePath) as alias list
end tell
tell application "Adobe Photoshop CS3"
	activate
	create contact sheet from files fileList with options {best fit:true, column count:2, height:3750, resolution:300.0, mode:CMYK, row count:2, width:2700}
end tell

the skipped parameters have your requested values by default.

by the way, your method to iterate a list


repeat until fileList = {}
	set FilePath to item 1 of fileList as alias
	-- do something
	set fileList to rest of fileList
end repeat

is quite weird (and slow)

better is:


repeat with i from 1 to (count fileList)
	set FilePath to item i of fileList
	-- do something
end repeat

or:


repeat with FilePath in fileList
	-- do something
end repeat

Two additional notes:
¢ the explicit run handler is only needed, if there are other handlers like (open, quit, idle)
¢ the alias coercion in the Photoshop block is not needed, because your list is a list of aliases

Thanks it works :smiley: but with one weird anomaly the pixel dimensions for a 9 inch by 12 inch image given by photoshop is 2700x3750 at 300 dpi. I found that in the script 900 pixels by 647 pixels gives me the correct size. why is that?

 tell application "Finder"
	set sourcePath to choose folder with prompt "Please select SOURCE folder:"
	--	set savePath to choose folder with prompt "Please select DESTINATION folder:"
	set fileList to (files of entire contents of sourcePath) as alias list
end tell
tell application "Adobe Photoshop CS3"
	activate
	create contact sheet from files fileList with options {best fit:true, column count:1, height:900, resolution:300.0, mode:CMYK, row count:2, width:648}
end tell

Now I will to add to the script the functionality of printing a odd 9x12.5 inch page setup with options close with saving:false to a network printer.

Photoshop is not my cup of tea :wink:

Don’t know if this part on printing is possible. I have searched this forum but can’t find anything on the print options. anyone know how to do this part?

tell application "Finder"
	set sourcePath to choose folder with prompt "Please select SOURCE folder:"
	--	set savePath to choose folder with prompt "Please select DESTINATION folder:"
	set fileList to (files of entire contents of sourcePath) as alias list
end tell


tell application "Adobe Photoshop CS3"
	activate
	create contact sheet from files fileList with options {best fit:true, column count:1, height:900, resolution:300.0, mode:CMYK, row count:2, width:648}
end tell

tell application "Adobe Photoshop CS3"
	activate
	repeat with oneDoc in (get documents)
		set current document to oneDoc
		tell current document
		print with properties
		--this part I am having trouble with
	¬
	{portrait, printer:Colorburst_rip_v5.8,postion center:true, page setup: height:9 in, width:13 in, color profile:document, color handling:none}
			
			close oneDoc saving no
		end tell
	end repeat
end tell