PPTX
页眉与页脚
为幻灯片页脚添加日期、幻灯片编号和自定义文本
使用 headerFooter 在幻灯片中添加一致的元数据 — 日期、幻灯片编号和自定义文本。
幻灯片级别的页眉/页脚
在幻灯片定义中直接设置页眉页脚:
{
"slides": [
{
"headerFooter": {
"dateTime": true,
"footer": "Confidential",
"slideNumber": true
},
"children": [
{
"shape": {
"x": "1.3cm",
"y": "1.3cm",
"width": "21.2cm",
"height": "9.3cm",
"textBody": { "text": "Content slide" }
}
}
]
}
]
}
import { generatePresentation } from "@office-open/pptx";
await generatePresentation({
slides: [
{
headerFooter: {
dateTime: true,
footer: "Confidential",
slideNumber: true,
},
children: [
{
shape: {
x: "1.3cm",
y: "1.3cm",
width: "21.2cm",
height: "9.3cm",
textBody: { text: "Content slide" },
},
},
],
},
],
});
HeaderFooter 选项
| 属性 | 类型 | 说明 |
|---|---|---|
dateTime | boolean | 显示/隐藏日期时间占位符 |
footer | string | boolean | 页脚文本,或 true 显示占位符 |
slideNumber | boolean | 显示/隐藏幻灯片编号 |
header | boolean | 显示/隐藏页眉占位符 |
单张幻灯片覆盖
在个别幻灯片上覆盖页眉/页脚:
{
"slides": [
{
"headerFooter": {
"footer": "Draft — Not for Distribution",
"slideNumber": false
},
"children": [
{
"shape": {
"x": "1.3cm",
"y": "1.3cm",
"width": "21.2cm",
"height": "9.3cm",
"textBody": { "text": "Special slide" }
}
}
]
}
]
}
import { generatePresentation } from "@office-open/pptx";
await generatePresentation({
slides: [
{
headerFooter: {
footer: "Draft — Not for Distribution",
slideNumber: false,
},
children: [
{
shape: {
x: "1.3cm",
y: "1.3cm",
width: "21.2cm",
height: "9.3cm",
textBody: { text: "Special slide" },
},
},
],
},
],
});
完整示例
{
"title": "Quarterly Report",
"creator": "Finance Team",
"slides": [
{
"headerFooter": {
"dateTime": true,
"footer": "Confidential",
"slideNumber": true
},
"children": [
{
"shape": {
"x": "1.3cm",
"y": "1.3cm",
"width": "21.2cm",
"height": "5.3cm",
"textBody": {
"children": [
{
"properties": { "alignment": "CENTER" },
"children": [{ "text": "Q4 2025 Report", "size": 36, "bold": true }]
}
]
}
}
}
]
}
]
}
import { generatePresentation } from "@office-open/pptx";
import * as fs from "node:fs";
const buffer = await generatePresentation(
{
title: "Quarterly Report",
creator: "Finance Team",
slides: [
{
headerFooter: {
dateTime: true,
footer: "Confidential",
slideNumber: true,
},
children: [
{
shape: {
x: "1.3cm",
y: "1.3cm",
width: "21.2cm",
height: "5.3cm",
textBody: {
children: [
{
properties: { alignment: "CENTER" },
children: [{ text: "Q4 2025 Report", size: 36, bold: true }],
},
],
},
},
},
],
},
],
},
{ type: "nodebuffer" },
);
fs.writeFileSync("report.pptx", buffer);