2015-10-05 136 views
0

我试图恢复过去使用过的旧版脚本和旧脚本。一旦InDesign脚本错误“ReferenceError:对象无效”

#targetengine "session" 
var date, month, year, myDocument; 
var curDate = new Date(); 
var myTemplatePath = "/c/Comic/ComicImport.indd"; 
var myComicsPath = "/c/Comic/Comics/"; 
var myTemplate = new File(myTemplatePath); 



if (myTemplate.exists) { 
    try { 
     myDocument = app.open(myTemplate); 
    } catch (e) { 
     alert("Could not open template, exiting\n" + e); 
     exit(); 
    } 
    var win = showDialog(); 
} else { 
    alert("Could not locate template at:\n" + myTemplatePath + "\nexiting"); 
} 



function showDialog() { 
    var win = new Window('palette'); 
    with(win){ 
     win.Pnl = add('panel', undefined, 'Date/Month/Year'); 
     win.Pnl.orientation = 'row'; 
     with(win.Pnl) { 
      win.Pnl.day = add('edittext'); 
      win.Pnl.day.text = curDate.getDate(); 
      win.Pnl.day.preferredSize = [30,20]; 

      win.Pnl.month = add('edittext'); 
      win.Pnl.month.text = curDate.getMonth() + 1; 
      win.Pnl.month.preferredSize = [30,20]; 

      win.Pnl.year = add('edittext'); 
      win.Pnl.year.text = curDate.getFullYear(); 
      win.Pnl.year.preferredSize = [50,20]; 
     } 
     win.btnOk = add('button', undefined, 'Import Comic'); 
     win.btnOk.onClick = setDate; 
    }; 
    win.center(); 
    win.show(); 
    return win; 
} 
function setDate() { 
    date = win.Pnl.day.text; 
    month = win.Pnl.month.text; 
    year = win.Pnl.year.text; 
    // OK we close the window and do the import 
    //win.close(); 
    importComics(); 
} 



function importComics() { 
    try { 
     //set comic1 to "macintosh Hd:users:marshall:documents:comics:" &  DYear & Dmonth & Dday & "pzjud-a.tif" 
     var comics = new Array(); 
     // REPLACE with own filepaths, could be 
     //comics.push(new File("/c/comics/" + year + month + date + "pzjud- a.tif")); 
     comics.push(new File(myComicsPath + "comic1-" + year + "-" + month + "-" + date + ".tif")); 
     comics.push(new File(myComicsPath + "comic2-" + year + "-" + month + "-" + date + ".tif")); 
     comics.push(new File(myComicsPath + "comic3-" + year + "-" + month + "-" + date + ".tif")); 
     comics.push(new File(myComicsPath + "comic4-" + year + "-" + month + "-" + date + ".tif")); 
     comics.push(new File(myComicsPath + "comic5-" + year + "-" + month + "-" + date + ".tif")); 
    } catch (e) { 
     alert("Error assigning images for import, stopping script\n" + e); 
     exit(); 
    } 

    for (i = 1; i <= comics.length; i++) { 
     // Script label of the rectangles/pageitems to place the graphics  into 
     var myRect = myDocument.pageItems.item("comic" + i); 
     try { 
     myRect.place(comics[i-1]); 
     } catch (e) { 
      alert(e); 
     } 
     myRect.fit(FitOptions.CONTENT_TO_FRAME); 
    } 
} 

然而,由于我打的导入漫画:该脚本将下载漫画(我们有权利)使用的AutoHotkey和卷曲...然后在InDesign中,我们会从运行JavaScript脚本的面板下面按钮,我得到“ReferenceError:Object is invalid”错误。我的目录结构对我来说很好。有任何想法吗?

谢谢!

+0

使用ExtendScript Toolkit进行调试可以帮助您识别问题。另外,发布你的目标版本。 –

+0

您的实际问题与AHK有什么关系? – Forivin

+0

该脚本是否可用于InDesign的旧版本,而不是当前正在使用的版本?尝试[InDesignSecrets:在CS3中使用旧脚本](http://indesignsecrets.com/using-old-scripts-in-cs3.php)(不要介意标题中的低版本号,该特定功能也适用于较新版本)。 – usr2564301

回答

0

关注此行:

var myRect = myDocument.pageItems.item("comic" + i); 

在最新版本ID它不再调用 “item.label”,而是 “item.name” (层面板中所示的一个)

如果内你的doc目标矩形有“label == comic + i”,你必须重复/移动这个值作为矩形的名字。

否则 - 您的代码需要在放置图像前通过所有pageItems创建一个循环并检查特定的item.label。

相关问题