为什么覆盖后项目位置会搞砸

Why is the Item Position messed up after override?

本文关键字:位置 项目 覆盖 为什么      更新时间:2023-09-26

>情况:

我的脚本使用母版页作为模板创建周计划。

脚本中发生的事情是:

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

问题:

覆盖后主页项的位置被搞砸了。我做了两个截图作为演示。

现在真正奇怪的是,它在"自定义大小"的文档上搞砸了,但在 A4 格式上却没有搞砸......

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

您知道是什么导致了这种行为吗?

母版页:https://i.stack.imgur.com/u0PAh.png

覆盖后搞砸了:https://i.stack.imgur.com/0AWvh.png


编辑:为了证明恢复几何边界不起作用,我做了以下工作:

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){}  
  }  
} 

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

我解决了!供将来参考:

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

我从具有不同尺寸的其他文档中复制了母版页的元素,我只是调整了文本字段的大小以适应新格式。

这就是导致该行为的原因 - 似乎文本字段仍然包含我从另一个文档中获取的一些信息,并且此信息不可删除/编辑。

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

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

编辑1:我没有解决!有时仍然不起作用!

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