【问题标题】:Shapes aren't drawn on the good page when the document setup is 'facing page' in InDesign (CEP/JavaScript)当文档设置在 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();

【问题讨论】:

    标签: javascript draw adobe-indesign extendscript adobe-extension


    【解决方案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 上?
    • 没错。实际上,最好的做法是在脚本开始时存储原始首选项并在结束时恢复它。
    最近更新 更多