首页 > 解决方案 > 是否可以通过更改 OOXML 来更改 Word 中内联对象的“relativeHeight”或 Z 顺序?

问题描述

我正在使用 office.js 创建一个 Word Web 加载项。

我使用内容控件标记源 Word 文件中的几个对象。我在源 Word 文件的顶部插入一个矩形对象。我的目标是将一些对象(使用内容控件标记)放在插入的矩形上方。

我正在解析 Word 文档的 OOMXL,并尝试将标记对象放在这个页面大小的矩形对象前面,该对象放在源文档中所有先前对象的上方。

对于浮动对象,我可以修改大于矩形的“relativeHeight”,我设法将对象放在前面。

但是,内联对象没有这个“相对属性”吗?手动,在 MS Word 中,我可以将内联对象的布局更改为“在文本前面”,并且该对象显示为具有“relativeHeight”属性的锚点。 在此处输入图像描述

OOXML 的区别:内联对象

<w:drawing>
   <**wp:inline** distT="0" distB="0" distL="0" distR="0" wp14:anchorId="728024E4" wp14:editId="43DF6D69">
   ...
   </wp:inline>
</w:drawing>

浮动对象

<w:drawing>
   <wp:**anchor** distT="0" distB="0" distL="114300" distR="114300" simplePos="0" relativeHeight="251659264" behindDoc="0" locked="0" layoutInCell="1" allowOverlap="1" wp14:anchorId="728024E4" wp14:editId="0AFA4E26">
   <wp:simplePos x="0" y="0"/>
      <wp:positionH relativeFrom="column">
         <wp:posOffset>533400</wp:posOffset>
      </wp:positionH>
      <wp:positionV relativeFrom="paragraph">
         <wp:posOffset>-1905</wp:posOffset>
      </wp:positionV>
      ...
   </wp:anchor>
</w:drawing>

如您所见,锚点的内联更改和一些位置信息是自动添加的。我想知道,如何通过更改任何内联对象的 OOXML 来实现这一点。

标签: javascriptoffice-jsopenxmlword-addins

解决方案


根据定义,内联对象被视为文本。如果形状是内联的,则可以将其视为文本字符。因此,您不能将文本字符放在其他文本的前面或后面。例如,假设您的文档仅包含三个字符:“ABC”,您如何将字符“B”放在其他两个字符的后面或前面?谢谢!


推荐阅读