今天搞了一下午,一直偏移量计算的有问题
开始认为是按照一个比例计算的,后来发现不正确
谷歌搜索页查不到太多资料能够解决问题
结论
单组
实际偏移量x = 元素a:off X + 组a:off X - a:chOff X
例子:
<p:grpSpPr>
<a:xfrm>
<a:off x="9637559" y="5172112"/>
<a:ext cx="1150937" cy="309892"/>
<a:chOff x="7319963" y="4449433"/>
<a:chExt cx="1150937" cy="309892"/>
</a:xfrm>
</p:grpSpPr>
<p:sp>
<p:nvSpPr>
<p:cNvPr id="26" name="矩形: 圆角 25"/>
<p:cNvSpPr/>
<p:nvPr/>
</p:nvSpPr>
<p:spPr>
<a:xfrm>
<a:off x="7319963" y="4449433"/>
<a:ext cx="1150937" cy="309892"/>
</a:xfrm>
实际偏移量X = 7319963 + 9637559 - 7319963
多组嵌套
<p:grpSp>
<p:nvGrpSpPr>
<p:cNvPr id="28" name="组合 27"/>
<p:cNvGrpSpPr/>
<p:nvPr/>
</p:nvGrpSpPr>
<p:grpSpPr>
<a:xfrm>
<a:off x="6241535" y="5038967"/>
<a:ext cx="2771785" cy="309892"/>
<a:chOff x="8016711" y="5172112"/>
<a:chExt cx="2771785" cy="309892"/>
</a:xfrm>
</p:grpSpPr>
<p:grpSp>
<p:nvGrpSpPr>
<p:cNvPr id="22" name="组合 21"/>
<p:cNvGrpSpPr/>
<p:nvPr/>
</p:nvGrpSpPr>
<p:grpSpPr>
<a:xfrm>
<a:off x="9637559" y="5172112"/>
<a:ext cx="1150937" cy="309892"/>
<a:chOff x="7319963" y="4449433"/>
<a:chExt cx="1150937" cy="309892"/>
</a:xfrm>
</p:grpSpPr>
<p:sp>
<p:nvSpPr>
<p:cNvPr id="26" name="矩形: 圆角 25"/>
<p:cNvSpPr/>
<p:nvPr/>
</p:nvSpPr>
<p:spPr>
<a:xfrm>
<a:off x="7319963" y="4449433"/>
<a:ext cx="1150937" cy="309892"/>
</a:xfrm>
实际偏移量X = ((7319963+9637559-7319963)+6241535-8016711)
嵌套计算即可
这破玩意officeopenxml根本没讲明白(感觉不应该是我没找到吧...)
openXML这部分介绍:Office Open XML (OOXML) - Presentations - Slides - Content - Shape Tree