访问IDML版面内对象的几何边界

2024-09-30 18:24:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个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可以看出,这些点定义了一条贝塞尔曲线。然而,我不熟悉贝塞尔曲线,我不知道如何将它转换成Oval本身的几何边界。你知道吗

有人在Python中有从这些英寸坐标中导出几何边界的函数吗?另外,如果我想移动/调整这些椭圆的大小,有没有办法将一组几何边界转换成这种表示法?你知道吗

更新:显然每个对象都有一个“ItemTransform”属性。这可能是计算所必需的?你知道吗


Tags: 文件对象代码xmlproperties边界anchoridml