Indesign Applescript – resize anchored images

Hi All

I need to mod the following script to resize some placed illustrator files not photoshop, which I should be able to do. However my problem is my images are all going to be anchored images and this script just ignores them at the moment.

Can anyone tell me how to get this working on just anchored images?

Thanks as always

Shane

(* Script runs on current open document in InDesign CS2 or CS3
Checks each non-EPS image, gets image scale, opens in PhotoShop CS2 or CS3, scales image to 100% (or as close to it as possible) at resolution set in variable theResolution (with resizing)
if changecolormode is set to true, changes color mode to whatever is set in variable theColorMode (RGB, CMYK or grayscale)

saves image as TIFF (also saves JPEG if original was JPEG)
if images were jpegs, run the “indesign linked images jpeg to tiff” script to switch to the TIFF versions
*)

–set desired resolution here
set theResolution to 150
–set changeColorMode to false
set changeColorMode to true
–set desired color mode here if changeColorMode is true
–set thecolormode to “RGB”
set theColorMode to “CMYK”
–set theColorMode to “grayscale”

tell application “Adobe InDesign CS6”
set myDocument to document 1
set thePageCount to count pages of myDocument

repeat with i from 1 to thePageCount
	set theImages to rectangles of page i of myDocument
	repeat with eachRectangle in theImages
		set HscaleRectangle to horizontal scale of eachRectangle
		if HscaleRectangle ≠ 100 then
			--set horizontal scale of eachRectangle to 100
			redefine scaling eachRectangle to {1.0, 1.0}
			--display dialog "this script may be inadequate; rectangle is scaled, gotta deal with that?"
		end if
		set theGraphic to all graphics of eachRectangle
		repeat with eachImage in theGraphic
			--return properties of eachImage
			set theLink to item link of eachImage
			set thePath to file path of theLink
			set theContainerlist to items 1 through -2 of my list_proc(thePath, ":", "")
			set AppleScript's text item delimiters to ":"
			set thecontainer to (the theContainerlist as string) & ":" as string
			set AppleScript's text item delimiters to ""
			--return properties of theLink
			--display dialog thePath
			set Hscale to absolute horizontal scale of eachImage
			set Vscale to absolute vertical scale of eachImage
			--display dialog Hscale
			
			if thePath does not end with "eps" then
				tell application "Adobe Photoshop CS6"
					open file (thePath as string) showing dialogs never
					set docRef to current document
					set theName to name of docRef
					resize image docRef width Hscale as percent height Vscale as percent resolution theResolution
					if changeColorMode then
						if theColorMode = "grayscale" then
							set theColorModePhotoShop to grayscale
						else if theColorMode = "RGB" then
							set theColorModePhotoShop to RGB
						else if theColorMode = "CMYK" then
							set theColorModePhotoShop to CMYK
						end if
						if (mode of docRef is not theColorModePhotoShop) then
							change mode docRef to theColorModePhotoShop
							say "changed one to " & theColorMode as string
						end if
					end if
					if theName does not end with "tif" and theName does not end with "tiff" then
						set theNewName to my getFileBase(theName) & ".tif"
						set fileSpec to thecontainer & theNewName as string
						save docRef in file fileSpec as TIFF with copying
					end if
					close current document with saving
				end tell
			end if
		end repeat
		--return properties of theGraphic
		--return properties of eachRectangle
		--set Hscale to horizontal scale of eachRectangle
		--display dialog Hscale
	end repeat
	
end repeat

display dialog thePageCount

end tell

on getFileBase(fFile)

try
	set fFileTest to text -5 through -1 of fFile
on error
	set fFileTest to ""
end try
if fFileTest contains "." then
	set dotOffsetTest to offset of "." in fFileTest
	set fFileJPEG to text 1 through (-7 + dotOffsetTest) of fFile
else
	set fFileJPEG to fFile
end if
--set fFileJPEG to fFileJPEG & ".jpg"
return fFileJPEG

end getFileBase

on list_proc(searchList, search_string, replace_string)
set AppleScript’s text item delimiters to the search_string
set searchListlist to every text item of searchList
set AppleScript’s text item delimiters to replace_string
set searchList to the searchListlist as string
set AppleScript’s text item delimiters to “”

if replace_string = "" then
	return searchListlist
else
	return searchList
end if

end list_proc
– applescript page

I don’t have time to rewrite the script but this information might help you:


tell application "Adobe InDesign CS4"
	tell document 1
		
		-- gives you a list of every rectangle that has a graphic in it including inline images
		-- can get images on a specific page by calling page 1 (or 2 or use a variable)
		set placedImages to all graphics
		
		-- gives you a list of inline rectangles that has a graphic in it, again can call a specific story as well
		set inlineImages to all graphics of every story
		
		-- identifies parent (rectangle) object
		set ImageParent to parent of item 1 of inlineImages
		
	end tell
end tell