pptx即OpenXML中a:off、a:ext、a:chOff、a:chExt的计算关系

今天搞了一下午,一直偏移量计算的有问题

开始认为是按照一个比例计算的,后来发现不正确

谷歌搜索页查不到太多资料能够解决问题

结论

单组

实际偏移量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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员麻薯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值