'======================================================================================== ' 'by John Beardsworth 18/2/06 'version 1.2 'Loops through selected media items and runs a Photoshop script or action '======================================================================================== Const kMsgBoxTitle = "Select files" Set ivApp = CreateObject("iView.Application") If (ivApp.Catalogs.Count = 0) Then MsgBox "Please launch Iview MediaPro.", vbCritical, kMsgBoxTitle else Main End if Sub Main() Set ivCat = ivApp.ActiveCatalog If ivCat.Selection.Count <> 1 Then MsgBox "Please select which file you want to place in Photoshop.", vbCritical, kMsgBoxTitle Exit Sub Else set ivItem = ivCat.Selection(1) End If If ivItem.mounted = True Then ivWidth = cdbl(ivItem.DisplayedWidth) ivheight = cdbl(ivItem.Displayedheight) ivCaption = ivitem.Annotations.Caption ivHeadline = ivitem.Annotations.Title ivTitle = ivitem.Annotations.Product ivKeywords = Split (ivitem.Annotations.Keywords, ";") ivLocation = ivitem.Annotations.Location ivcity = ivitem.Annotations.City ivprovinceState = ivitem.Annotations.State ivcountry = ivitem.Annotations.Country ivAuthor = ivitem.Annotations.Author ivauthorPosition = ivitem.Annotations.AuthorTitle ivCredit = ivitem.Annotations.Credit ivSource = ivitem.Annotations.Source ivOwnerUrl = ivitem.Annotations.URL ivCopyrighted = 1 ivCopyrightNotice = ivitem.Annotations.Copyright ivCategory = ivitem.Annotations.Categories ivJobName = ivitem.Annotations.Event ivInstructions = ivitem.Annotations.Instructions Else End If 'From now on, no more reference to the iView model Set ivApp = Nothing 'Now create the blank Photoshop document Dim psApp Set psApp = CreateObject("Photoshop.Application") psApp.BringToFront startRulerUnits = psApp.Preferences.RulerUnits psApp.Preferences.RulerUnits = 1 'ie Pixels Set psDoc = psApp.Documents.Add (ivWidth, ivheight, 300, ivItem.Name, 2) psApp.Preferences.RulerUnits = startRulerUnits 'Pass over metadata from iView with psDoc.Info .Caption = ivCaption .Headline = ivHeadline .Title = ivTitle .Keywords = ivKeywords .city = ivcity .provinceState = ivprovinceState .country = ivcountry .Author = ivAuthor .authorPosition = ivauthorPosition .Credit = ivCredit .Source = ivSource .OwnerUrl = ivOwnerUrl .Copyrighted = ivCopyrighted .CopyrightNotice = ivCopyrightNotice .Category = ivCategory .JobName = ivJobName .Instructions = ivInstructions End with psDoc.BitsPerChannel = 16 'ScriptListener code id18 = psApp.CharIDToTypeID("Plc ") Set Desc = CreateObject( "Photoshop.ActionDescriptor" ) id19 = psApp.CharIDToTypeID("null") j1 = Desc.PutPath(id19, ivItem.Path) id20 = psApp.CharIDToTypeID("FTcs") id21 = psApp.CharIDToTypeID("QCSt") id22 = psApp.CharIDToTypeID("Qcsa") j2 = Desc.PutEnumerated(id20, id21, id22) id23 = psApp.CharIDToTypeID("Ofst") Set descObj = CreateObject( "Photoshop.ActionDescriptor" ) id24 = psApp.CharIDToTypeID("Hrzn") id25 = psApp.CharIDToTypeID("#Pxl") Call descObj.PutUnitDouble(id24, id25, 0) id26 = psApp.CharIDToTypeID("Vrtc") id27 = psApp.CharIDToTypeID("#Pxl") j4 = descObj.PutUnitDouble(id26, id27, 0) id28 = psApp.CharIDToTypeID("Ofst") j5 = Desc.PutObject(id23, id28, descObj) Call psApp.ExecuteAction(id18, Desc, 3) 'clean up the Photoshop document psDoc.Layers("Background").Delete psDoc.Trim End Sub