aardio 文档

fsys.openXml.pptx:读取、生成与有限编辑

本页保留读取与媒体导出用法。0.6.0 新增 PPTX 生成与常用动画、有限编辑与另存。纯生成建议直接导入 builder;read 的原有返回字段与语义不变。

import fsys.openXml.pptx;

var result,err = fsys.openXml.pptx.read("/input.pptx",{
    includeNotes = true;
});
if(!result) return null,err;

for i,page in result.pages {
    print("第 " + i + " 页",page.partName,page.text);
    if(page.notesPart) print("备注",page.notesText);
}
for i,warning in result.warnings {
    print(warning.partName,warning.message);
}
return result;

结果

字段 内容
path / mainPart 源文件完整路径 / 主文档部件名
slideCount 默认页面列表中的实际页数,包含空白页和隐藏页
slides 按 sldIdLst 顺序排列的页面文本数组
notes 开启备注时与 slides 一一对应;无备注页为空字符串。关闭时为 []
noteCount 含备注部件的页面数;空备注部件也计入
text / notesText 对应数组以两个 CRLF 连接
pages 页面明细数组
warnings 发现的未支持内容或兼容回退,元素含 code,message,partName

pages 元素包含 index,id,relationshipId,partName,hidden,text,paragraphs,tables;开启备注时还有 notesText,存在备注部件时还有 notesPart。id 保留为字符串。结果都是普通表、数组或基础值,没有需要关闭的资源。

支持范围

通过包关系及内容类型识别 PresentationML,支持普通演示文稿、放映、模板及宏格式的文本只读路径,不执行宏。支持 Transitional / Strict 核心命名空间、前缀变化、默认命名空间与重排后的页面关系。

支持常见文本框、分组形状内文本、基本 DrawingML 表格、页面备注。字段读取已保存的文字,不重算日期、页码等字段。

明确不做

错误统一返回 null,err,空文稿返回成功结果及空数组;函数自动关闭包。读取限额见 包层说明。

清单与媒体目录

import fsys.openXml.pptx;
var entries,err = fsys.openXml.pptx.listEntries("/input.pptx");
if(!entries) return null,err;
var media,err = fsys.openXml.pptx.listMedia("/input.pptx");
if(!media) return null,err;
return {entries=entries;media=media};

导出媒体

import fsys.openXml.pptx;
var result,err,partial = fsys.openXml.pptx.extractMedia("/input.pptx","/media",{
    overwrite = false;
});
if(!result) return null,err,partial;
return result;

成功结果为 {outputDir,files,skipped}:

PowerPoint 技能包兼容入口

0.3.0 起四个入口全部转发到本库,不再含重复的 ZIP 遍历、流读取或固定前缀 XML 正则:

技能包入口 本库入口
listPptxEntries(path,pattern,options) listEntries(path,pattern,options)
listPptxMedia(path,options) listMedia(path,options)
extractTextFromPptx(path,includeNotes=true,options) read(path,options)
extractPptxMedia(path,outputDir,overwrite=true,options) extractMedia(path,outputDir,options)

旧调用参数及常用结果字段保留,options 为新增的尾部可选参数。技能包清单继续提供 path,isDir,size,formattedSize;媒体列表继续提供 path,name,ext,size,formattedSize;导出继续返回文件数组。旧导出入口默认允许覆盖,这是兼容保留;新 extractMedia 默认不覆盖。显式 includeNotes/overwrite 参数优先于 options 同名字段,不修改调用者选项表。

有意修正:页面顺序按主文档而非部件编号;备注逐页配对,noteCount 为含备注部件的页面数;媒体列表排除目录项,子目录媒体现在也可导出;损坏、非 PresentationML、超限或写入失败不再伪装为空结果或成功。错误时第三个返回值可取得已完成的部分导出结果。

Office/WPS 创建、编辑与渲染代码不属于 OpenXML 读取链,本轮保持不变。不把复杂 Office 制作接口搬进基础库。

Markdown 格式