gpt4 book ai didi

javascript - “没有打开文档窗口”错误

转载 作者:行者123 更新时间:2023-11-28 02:09:25 25 4
gpt4 key购买 nike

这是我发现的一个难题。

我有一个脚本,可以在 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() 行上出现错误,并显示以下消息:

No document windows are open.

如果我返回到打开文件的行并删除 false 参数,则脚本可以正常工作。

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

最佳答案

为什么要调用padPage.select();?您的代码似乎不需要它。

编辑:

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

示例脚本的路径为Adobe InDesign CS6 Scripting SDK\indesign\scriptingguide\scripts\JavaScript\documents\PageReframe.jsx

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

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

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

编辑2

在不相关的注释中,以下几行可能会很麻烦:

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

+=-= 运算符将尝试直接修改边界,但边界是只读的,只能使用 等方法进行修改>调整大小重新构建。我建议将其更改为:

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

关于javascript - “没有打开文档窗口”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com