content: (*
  Copyright 2003 Apple Computer, Inc.
  
  You may incorporate this Apple sample code into your program(s) without
  restriction.  This Apple sample code has been provided "AS IS" and the
  responsibility for its operation is yours.  You are not permitted to
  redistribute this Apple sample code as "Apple sample code" after having
  made changes.  If you're going to redistribute the code, we require
  that you make it clear that the code was descended from Apple sample
  code, but that you've made changes.
  *)
  
  property type_list : {"JPEG", "GIFf", "PICT", "TIFF", "PDF", "TEXT"}
  property extension_list : {"jpg", "gif", "pct", "tif", "pdf", "rtf"}
  --html is not currently handled
  
  on run {}
  	tell application "Finder" to set FinderSelection to the selection as alias list
  	
  	set FS to FinderSelection
  	--Ideally, this list could be passed to the open handler
  	
  	set SelectionCount to number of FS -- count	
  	if SelectionCount is 0 then
  		set FS to userPicksFolder()
  	else if the SelectionCount is 1 then
  		set MyPath to path to me
  		if MyPath is item 1 of FS then
  			--If I'm a droplet then I was double-clicked
  			set FS to userPicksFolder()
  		end if
  	else
  		--I'm not a double-clicked droplet
  	end if
  	open FS
  end run
  
  on userPicksFolder()
  	set these_items to {}
  	set these_items to (choose file with prompt "Select a file to convert to PDF:" of type {"JPEG", "GIFf", "PICT", "TIFF", "TEXT", "RTF"}) as list
  end userPicksFolder
  
  on open these_items
  	set thesefiles to {}
  	set the item_info to {}
  	repeat with i from 1 to the count of these_items
  		set this_item to (item i of these_items)
  		set the item_info to info for this_item
  		
  		if folder of the item_info is true then --if the item is a folder
  			processFolder(this_item)
  		else if ((folder of the item_info is false) and (alias of the item_info is false)) and (the file type of the item_info is in the type_list) or ((the name extension of the item_info) is in the extension_list) then
  			
  			set theFilePath to (item i of these_items as string)
  			set thePOSIXFilePath to POSIX path of theFilePath as string
  			processFile(thePOSIXFilePath)
  		end if
  	end repeat
  end open
  
  --process folders 
  on processFolder(theFolder)
  	set these_items to list folder theFolder without invisibles
  	repeat with i from 1 to the count of these_items
  		set this_item to alias ((theFolder as text) & (item i of these_items))
  		set the item_info to info for this_item
  		if folder of the item_info is true then
  			processFolder(this_item)
  		else if (alias of the item_info is false) and ((the file type of the item_info is in the type_list) or the name extension of the item_info is in the extension_list) then
  			set theFilePath to (this_item as string)
  			set thePOSIXFilePath to POSIX path of theFilePath as string
  			processFile(thePOSIXFilePath)
  		end if
  	end repeat
  end processFolder
  
  on processFile(thePOSIXFileName)
  	try
  		set terminalCommand to ""
  		set convertCommand to "/System/Library/Printers/Libraries/./convert "
  		set newFileName to thePOSIXFileName & ".pdf"
  		set terminalCommand to convertCommand & "-f " & "\"" & thePOSIXFileName & "\"" & " -o " & "\"" & newFileName & "\"" & " -j \"application/pdf\""
  		
  		do shell script terminalCommand
  	end try
  end processFile
  
  