当文档设置在 InDesign (CEP/JavaScript) 中为“对开页面”时,形状不会绘制在好页面上

Posted

技术标签:

【中文标题】当文档设置在 InDesign (CEP/JavaScript) 中为“对开页面”时,形状不会绘制在好页面上【英文标题】:Shapes aren't drawn on the good page when the document setup is 'facing page' in InDesign (CEP/JavaScript) 【发布时间】:2022-01-13 15:36:00 【问题描述】:

我正在创建一个 InDesign 插件,其中一个功能是在给定页面上绘制形状。

我从后端得到一张图纸,上面有应该绘制的页码。

为此,我这样做: app.activeDocument.pages[index] 获取我想要的页面。

不幸的是,我意识到这种技术只有在页面没有像这样面对面时才有效:

当页面像这样面对面时:

,第 3 页的形状将绘制在第 2 页而不是第 3 页。

这里,图纸在右页:

但是在这里,矩形不在正确的页面上:

我还尝试通过app.activeDocument.spreads[indexSpread].pages[1] 以原始方式绘制形状,这在逻辑上应该在相关板的第二页上写下注释,除了它始终绘制在板的第一页上。

这是我绘制矩形的代码:

var doc = app.activeDocument;
var page = doc.pages[pageIndex-1];
var myRectangle = page.rectangles.add();

【问题讨论】:

【参考方案1】:

要寻址跨页内的页面,请使用页面原点坐标:

app.activeDocument.viewPreferences.rulerOrigin = RulerOrigin.PAGE_ORIGIN;

var doc = app.activeDocument;
var page = doc.spreads[indexSpread].pages[1];
var myRectangle = page.rectangles.add();

【讨论】:

非常感谢@Yuri Khristich,它似乎工作得很好!如果我理解正确的话,这个 ruleOrigin 就在 RulerOrigin.SPREAD_ORIGIN 上? 没错。实际上,最好的做法是在脚本开始时存储原始首选项并在结束时恢复它。

以上是关于当文档设置在 InDesign (CEP/JavaScript) 中为“对开页面”时,形状不会绘制在好页面上的主要内容,如果未能解决你的问题,请参考以下文章

indesign出血问题

adobe indesign如何将一个文档的内容复制到另外的文档中

在indesign中如何让文字自动灌入下一页

indesign 出血设置

在Adobe InDesign中获取活动文档和选定的故事

如何在InDesign文档中找到所有对象样式覆盖