0.1.4 • Published 2 months ago

pptxtojson v0.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

🎨 PPTX2JSON

这是一个可以将 .pptx 文件转为可读的 json 数据的 JavaScript 库。

在线DEMO:https://pipipi-pikachu.github.io/pptx2json/

🔨安装

npm install pptxtojson

💿用法

<input type="file" accept="application/vnd.openxmlformats-officedocument.presentationml.presentation"/>
import { parse } from 'pptxtojson'

const options = {
	slideFactor: 75 / 914400, // 幻灯片尺寸转换因子,默认 96 / 914400
	fontsizeFactor: 100 / 96, // 字号转换因子,默认 100 / 75
}

document.querySelector('input').addEventListener('change', evt => {
	const file = evt.target.files[0]
	
	const reader = new FileReader()
	reader.onload = async e => {
		const json = await parse(e.target.result, options)
		console.log(json)
	}
	reader.readAsArrayBuffer(file)
})
// 输出示例
{
	"slides": {
		"fill": {
			"type": "color",
			"value": "#FF0000"
		},
		"elements": [
			// element data list
		],
	},
	"size": {
		"width": 1280,
		"height": 720
	}
}

📏 输出值单位

为了方便在web应用中使用,在默认情况下,所有输出的长度值单位都是px(像素),但这个值不一定是正确的,你可能需要根据你的设备情况适当调整 slideFactorfontsizeFactor 参数来获取更准确的结果。或者将这个两个参数全部设置为1,这样输出的将会是原始数据,你可以在此基础上将原数据根据具体情况进行转换。

📕 功能支持

幻灯片尺寸

proptype描述
widthnumber宽度
heightnumber高度

页面背景

proptype描述
type'color' 丨 'image' 丨 'gradient'背景类型
valueSlideColorFill 丨 SlideImageFill 丨 SlideGradientFill背景值

页内元素

文字

proptype描述
type'text'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
borderColorstring边框颜色
borderWidthnumber边框宽度
borderType'solid' 丨 'dashed' 丨 'dotted'边框类型
borderStrokeDasharraystring非实线边框样式
shadowShadow阴影
fillColorstring填充色
contentstring内容文字(HTML富文本)
isFlipVboolean垂直翻转
isFlipHboolean水平翻转
rotatenumber旋转角度
vAlignstring垂直对齐方向
isVerticalboolean是否为竖向文本
namestring元素名

图片

proptype描述
type'image'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
srcstring图片地址(base64)
rotatenumber旋转角度

形状

proptype描述
type'shape'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
borderColorstring边框颜色
borderWidthnumber边框宽度
borderType'solid' 丨 'dashed' 丨 'dotted'边框类型
borderStrokeDasharraystring非实线边框样式
shadowShadow阴影
fillColorstring填充色
contentstring内容文字(HTML富文本)
isFlipVboolean垂直翻转
isFlipHboolean水平翻转
rotatenumber旋转角度
shapTypestring形状类型
vAlignstring垂直对齐方向
pathstring路径(仅自定义形状存在)
namestring元素名

表格

proptype描述
type'table'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
dataTableCell表格数据
themeColorstring主题颜色

图表

proptype描述
type'chart'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
dataChartItem[] 丨 ScatterChartData图表数据
chartTypeChartType图表类型
barDir'bar' 丨 'col'柱状图方向
markerboolean是否带数据标记
holeSizestring环形图尺寸
groupingstring分组模式
stylestring图表样式

视频

proptype描述
type'video'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
blobstring视频blob
srcstring视频src

音频

proptype描述
type'audio'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
blobstring音频blob

Smart图

proptype描述
type'diagram'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
elements(Shape 丨 Text)[]子元素集合

多元素组合

proptype描述
type'group'类型
leftnumber水平坐标
topnumber垂直坐标
widthnumber宽度
heightnumber高度
elementsElement[]子元素集合

更多类型请参考 👇

https://github.com/pipipi-pikachu/pptx2json/blob/master/dist/index.d.ts

🙏 感谢

本仓库主要参考了 PPTX2HTMLPPTXjs 的实现

📄 开源协议

MIT License | Copyright © 2020-PRESENT pipipi-pikachu

0.1.4

2 months ago

0.1.3

4 months ago

0.0.12

7 months ago

0.0.13

6 months ago

0.1.0

5 months ago

0.1.2

5 months ago

0.1.1

5 months ago

0.0.11

8 months ago

0.0.3

1 year ago

0.0.10

1 year ago

0.0.2

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.1

1 year ago