前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2020-3-10-PPT文档解析之母版

2020-3-10-PPT文档解析之母版

作者头像
黄腾霄
发布2020-06-10 15:12:13
1.2K0
发布2020-06-10 15:12:13
举报
文章被收录于专栏:黄腾霄的博客黄腾霄的博客

今天和大家介绍下PPT文档解析中的母版。


什么是母版

我们平时看到的PPT展示,实际上是有多层内容组成的。

分别是页面(Slide),布局(SlideLayout)和母版(SlideMaster)

我们使用PowerPoint或者WPS打开PPT文件,调到母版视图,就能看到左边列出的母版和布局(或者叫版式)。

image-20200310194045365
image-20200310194045365

PPT文件中,可以创建多个母版,每一个母版创建多个布局。

在制作PPT时,依赖于不同的布局进行创建,不但减少了重复的工作量,也大大减少了PPT文件的体积。

在渲染时,软件会依次在三个层级渲染母版,布局,页面中的元素。最终呈现的是三个层级叠加的显示。

image-20200310193703299
image-20200310193703299

PPT文档中的母版

我们解压一个pptx文件,在其中的ppt文件夹下可以看到母版,布局,页面三者的信息。

image-20200310194701794
image-20200310194701794

我们在slides文件夹下任意打开一个slide的xml文件,但是发现里面并没有任何布局或者母版的相关信息。

image-20200310195051790
image-20200310195051790

这是因为,PPT文档中将例如资源,样式,母版等外部的信息,定义在一个单独的文件中,然后通过一个rels文件绑定两者的关系。

我们可以在slides\_rels文件夹下找到对应的.xml.rels文件,看到里面有一个relationship节点,指向了对应的SlideLayout文件的相对路径。

image-20200310195411129
image-20200310195411129

同样的,SlideLayout文件也通过同样的方式指向SlideMaster文件。

image-20200310195658640
image-20200310195658640

使用OpenXMLSDK解析

由于PPT文档将relationship放在的单独的文件,我们在解析PPT文档时,必须对多个文件进行读取,这里增加了我们在解析PPT文档时的难度。

对于母版来说,更困难的一点是,slide中没有任何地方引用SlideLayout对应的relationship 的id。

这意味着如果我不解析rels文件,我根本不知道这个页面是否使用了母版。

这使得单纯的xml解析方式进行PPT文档处理变得异常困难。

所幸是如果我们是使用C#的话,微软开源了一个叫OpenXMLSDK的库,帮助我们快速解析,查询office文档。

它直接将母版信息存储到对应slide节点的属性中,所以直接可以通过slide轻松查询到对应的母版

例如我期望做页面背景的解析,就可以使用下面的方法。

image-20200310200618518
image-20200310200618518

这样大家自主解析PPT文档(或者是openxml格式文件)都会变得很简单。


参考文档:


本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/PPT%E6%96%87%E6%A1%A3%E7%BB%93%E6%9E%84%E4%B9%8B%E6%A8%A1%E6%9D%BF%E4%BD%8D%E7%BD%AE%E8%8E%B7%E5%8F%96.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是母版
  • PPT文档中的母版
  • 使用OpenXMLSDK解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档