为什么物品位置在覆盖后搞砸了?

时间:2014-12-08 11:38:37

标签: javascript position adobe-indesign extendscript

情况:

我的脚本创建了一个以母版页为模板的周计划。

脚本中发生的事情是:

  • 创建页面
  • 申请母版页
  • 覆盖每个项目
  • 更改每个项目的内容
  • 为整个日期 - 数组长度执行此操作

问题:

覆盖后masterPageItems的位置搞砸了。 我已经制作了两个截图作为演示。

现在真正的奇怪之处在于,它会被定制在"自定义尺寸"文件,但它没有搞砸A4格式...

我已经尝试在覆盖它之后恢复每个项目的几何边界,但这似乎不起作用......

您是否知道可能导致此行为的原因是什么?

主页: http://i.imgur.com/T0ApzZj.png?1

覆盖后搞砸了: http://i.imgur.com/Lx6rZup.png?1


修改 作为恢复几何边界的证据不起作用,我做了以下几点:

function OverrideMasterItems(currPage) {  
  var allItems = currPage.masterPageItems;  
  var itemPos;
  for(var i=0;i<allItems.length;i++){  
    try{
        itemPos = allItems[i].geometricBounds;
        allItems[i].override(currPage);
        allItems[i].geometricBounds = itemPos;
        $.writeln("Original itemPos: " + itemPos);
        $.writeln("New itemPos: " + allItems[i].geometricBounds);
        if(itemPos == allItems[i].geometricBounds) {
            $.writeln("same position");
        }
    }  
    catch(e){}  
  }  
} 

如您所见,我再次分配项目原始几何边界,并在控制台中表示它具有相同的值 - 但它在截图中看起来像。它也没有写出相同的位置&#34; - 这意味着if语句不是真的......

1 个答案:

答案 0 :(得分:0)

我解决了!供将来参考:

这不是一个编程错误,但是一些尴尬的InDesign“Bug(?!)”导致了这种奇怪的行为:

我从另一个具有不同尺寸的文档复制了主页面的元素,我只是调整了文本区域的大小以适应新的格式。

这就是造成这种行为的原因 - 看起来文本字段仍然有来自我从中得到的其他文档的一些信息,而且这些信息不可删除/可编辑。

因为即使删除段落样式等也没有改变奇怪的行为......

由于我对InDesign脚本非常陌生,所以我不知道你们知道这是否是一个常见的事情,但这让我很头疼......;)

编辑1:我没解决!有时候仍然没有工作!

好吧,它仍在发生,我只是不明白为什么......当脚本对某个项目执行“覆盖”时,该项目会重新定位到一个完全错误的位置......