访问IDML传播内对象的几何边界

时间:2019-06-19 18:03:34

标签: python xml math bezier adobe-indesign

我正在使用XML读取器,并与python中的SimpleIDML模块结合使用,以尝试读取和写入IDML文件。在执行此操作时,我将需要从所述文件中读取几何边界(对象的顶部,左侧,底部和右侧)。在遍历XML文件进行传播时,我发现了以下代码:

<Properties>
  <PathGeometry>
    <GeometryPathType PathOpen="false">
      <PathPointArray>
        <PathPointType Anchor="159.92000000000002 -235.728" LeftDirection="157.85224590848 -235.728" RightDirection="161.98775409152 -235.728"/>
        <PathPointType Anchor="163.66400000000004 -239.47200000000004" LeftDirection="163.66400000000004 -237.40424590848" RightDirection="163.66400000000004 -241.53975409152002"/>
        <PathPointType Anchor="159.92000000000002 -243.21600000000007" LeftDirection="161.98775409152 -243.21600000000007" RightDirection="157.85224590848 -243.21600000000007"/>
        <PathPointType Anchor="156.176 -239.47200000000004" LeftDirection="156.176 -241.53975409152002" RightDirection="156.176 -237.40424590848"/>
      </PathPointArray>
    </GeometryPathType>
  </PathGeometry>
</Properties>

这似乎是IDML模式中Oval对象的代码。从specs中可以看到,这些点定义了Bezier曲线。但是,我不熟悉贝塞尔曲线,也不知道如何将其转换为Oval本身的几何边界。

有人在Python中有一个函数可以从这些以英寸为单位的坐标中得出几何边界吗?此外,如果我想移动这些椭圆或调整其大小,是否可以将一组几何边界转换为该符号?

更新:显然,每个对象也具有“ ItemTransform”属性。这可能是计算所必需的吗?

0 个答案:

没有答案