PPT结构解析

2021-04-09 16:39:04 浏览数 (1)

前言

官方文档: officeopenxml

PPT和PPTX本质就是一个ZIP压缩文件,我们可以把PPT的后缀直接改为zip后直接解压,就会看到以下文件:

ppt下

文件的类型和数目可能会根据 幻灯片 的内容有所不同,但是肯定会有一个[Content_Types].xml,至少一个.rels 和一个 presentation,当然至少得有一页内容吧,而相应的就会有 slideMaster 和 slideLayout.

先来看看主要的几个文件里装了什么东西。

Content Types

定义了所有幻灯片里用到的格式和内容,简单的说就是所有文件都要提前声明。格式一般是:

代码语言:javascript复制
<Default Extension="jpeg" ContentType="image/jpeg"/>
<Override PartName="/ppt/slides/slide1.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slide xml"/>

为了简单,其他的可能存在的格式可以都写上,比如图片、视频、字体等,只有 slide 是不确定的。

Relationships

为了方便各种资源的引用,所以会有关系表,格式为:

代码语言:javascript复制
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml" />

Id 就是在其他地方引用的标识符,Type 一般是个链接,Target 就是资源存在的位置

基本每个部分都有这样一个表,slidesslideMastersslideLayouts文件夹下面都有一个_relspresentation.xml 也有对应的 presentation.xml.rels

Presentation

包含了构成 PPTX 的各种规范以及属性,比如嵌入字体,默认字体样式,备注,分辨率,过渡动画等。

Slides

这里存储的就是幻灯片具体的内容了

Slide: 包含一个单页幻灯片的页面内容 Slide Master: 包含母版幻灯片的所有文本、格式相关的定义 Slide Layout: 包含幻灯片模板的默认格式

虽然以前也做过 PPT,最喜欢网上找个模板直接套,这次终于知道了还有“幻灯片母版”这个东西,感觉到了其中的博大精深。

因为我们的内容都是固定的,所以对于 slideLayoutslideMaster 就直接 copy 了一份,作为固定内容,主要修改 slide 里面的内容。

Slide 有很多属性可以定义各种样式,可以在官方文档里查看,都比较清楚。

实际业务中,除了文字,其他的类型,比如 svg,蒙版,各种特效都直接以图片的形式替代,所以有时候会导致下载比较久。最容易出问题的就是 ID 的匹配,不能出现重复的 ID

总的来说,如果要实现什么效果不知道怎么下手的话,只要自己动手在 PPT 里实现一下,解析出来研究看看文件结构,就知道怎么做了。

PPT模板与母版的区别:

1、模板包含母版,母版只是模板的一部分。

模板是一个专门的页面格式,进去它会告诉你什么地方填什么,可以拖动修改。

母版是一个系列的,比如底色和每页都会显示出来的边框或者日期,页眉页脚之类,设置一次,以后的每一页全部都相同,起统一、美观的作用。

2、母版又称为原版,即幻灯片的原版。模板即用来印刷幻灯片的三原色版。

模板:演示文稿中的特殊一类,扩展名为.pot。用于提供样式文稿的格式、配色方案、母版样式及产生特效的字体样式等。应用设计模板可快速生成风格统一的演示文稿。

母版:规定了演示文稿(幻灯片、讲义及备注)的文本、背景、日期及页码格式。母版体现了演示文稿的外观,包含了演示文稿中的共有信息。每个演示文稿提供了一个母版集合,包括:幻灯片母版、标题母版、讲义母版、备注母版等母版集合。

0 人点赞