mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Add more applescript samples
This commit is contained in:
		
							
								
								
									
										91
									
								
								samples/AppleScript/Convert To PostScript.applescript
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								samples/AppleScript/Convert To PostScript.applescript
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,91 @@ | ||||
| (* | ||||
|  | ||||
| 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 PostScript:" 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 | ||||
|  | ||||
| --need to pass the URL to Terminal | ||||
| on processFile(thePOSIXFileName) | ||||
| 	try | ||||
| 		set terminalCommand to "" | ||||
| 		set convertCommand to "/System/Library/Printers/Libraries/./convert " | ||||
| 		set newFileName to thePOSIXFileName & ".ps" | ||||
| 		set terminalCommand to convertCommand & "-f " & "\"" & thePOSIXFileName & "\"" & " -o " & "\"" & newFileName & "\"" & " -j \"application/postscript\"" | ||||
| 		 | ||||
| 		do shell script terminalCommand | ||||
| 	end try | ||||
| end processFile | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user