'没有文档窗口打开'错误

时间:2013-06-26 15:33:39

标签: javascript runtime-error adobe-indesign extendscript

这是我发现的一个难题。

我有一个脚本可以在InDesign中打开一个文件,有些工作,然后关闭它。为了帮助加快速度,我在打开文件时使用false参数关闭了显示文件,如下所示:

var document = app.open(oFile, false);

有时,在打开文件上做一些工作时,脚本可能需要调整从11英寸高到12.5英寸高的某个页面的大小,因此:

    if (padPrinted) {
        for (var p = 0; p < outputRangeArray.length; p++) {
            var padPage = document.pages.item(outputRangeArray[p]);
            if (padPage.bounds[2] - padPage.bounds[0] === 11) {
                padPage.select();
                var myY1 = padPage.bounds[0] -= 0.75;
                var myX1 = padPage.bounds[1];
                var myY2 = padPage.bounds[2] += 0.75;
                var myX2 = padPage.bounds[3];
                padPage.reframe(CoordinateSpaces.INNER_COORDINATES, [[myX1*72, myY1*72], [myX2*72, myY2*72]]);
            }
        }
    }

这对我来说已经有了一段时间的完美运作,但现在它有时会在padPage.select()行上出现错误信息:

  

没有文档窗口打开。

如果我回到打开文件的行并删除false参数,那么脚本运行正常。

所以,我想知道是否有办法解决这个问题。我希望打开文档而不显示它们,但仍然可以在需要时调整页面大小。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你为什么打电话给padPage.select();?它看起来不像你的代码需要它。

修改

Adobe InDesign CS6 Scripting Guide: Javascript的第42页的页面上,有一个示例代码段,用于重新构建页面,但不会调用select()。该片段来自InDesign CS6 Scripting SDK中的示例脚本(滚动到底部)。

示例脚本的路径是 Adob​​e InDesign CS6 Scripting SDK \ indesign \ scriptingguide \ scripts \ JavaScript \ documents \ PageReframe.jsx

检查此脚本,我们发现它永远不会调用select()。实际上, PageResize.jsx 也从不调用select()

此外,虽然InDesign Server可以调整页面大小并重新构建页面,但您会注意到select()函数是missing entirely。似乎select()仅影响GUI。

面对所有这些证据,当我说“你必须选择页面”时,我会打赌脚本指南是错误的。尝试删除该行,看看它是否有效。

修改2

在一个不相关的说明中,以下几行可能很麻烦:

var myY1 = padPage.bounds[0] -= 0.75;
var myX1 = padPage.bounds[1];
var myY2 = padPage.bounds[2] += 0.75;

+=-=运算符将尝试直接修改边界,但边界是只读的,只能使用resize或{{1}等方法进行修改}。我建议将其更改为:

reframe