我正在尝试使用 JavaScript 自动化创建和检查 Keynote 中的母版幻灯片。
创建母版幻灯片
创建具有给定主题的新文档并向其添加带有特定母版幻灯片的幻灯片很容易。
// Create a new document using the "White" theme.
var Keynote = Application('Keynote');
var doc = Keynote.Document({
documentTheme: Keynote.themes['White']
});
Keynote.documents.push(doc);
// Create and append a new "Title & Bullets" slide.
var slide = Keynote.Slide({
baseSlide: doc.masterSlides['Title & Bullets']
});
doc.slides.push(slide);
这将创建一个具有“白色”主题的新文档并附加一个新的“标题和项目符号”幻灯片。
类似的方法不适用于母版幻灯片。
// Create a new document using the "White" theme.
var Keynote = Application('Keynote');
var doc = Keynote.Document({
documentTheme: Keynote.themes['White']
});
Keynote.documents.push(doc);
// Create and append a new master slide.
var slide = Keynote.MasterSlide({
name: "Testing"
});
doc.masterSlides.push(slide);
这会创建一个新文档,但不会创建新的母版幻灯片。查看“脚本编辑器”窗口Replies
,push
返回null
与推送新的相反,后者返回 2(数组中的幻灯片数)。Slide
doc.slides
可以复制母版幻灯片,但前提是 Keynote 处于“编辑母版幻灯片”模式。如果单击了“编辑母版幻灯片”按钮,则可以复制母版幻灯片。
var Keynote = Application('Keynote');
var doc = Keynote.documents[0];
var ms = doc.masterSlides['Title & Bullets'];
ms.duplicate();
这将创建一个名为“标题和项目符号副本”的新母版幻灯片。
检查母版幻灯片的属性
检查母版幻灯片有类似但略有不同的问题。以下代码应在打开文档的“标题和项目符号”母版幻灯片上记录标题项的位置、宽度和高度。
var Keynote = Application('Keynote');
var doc = Keynote.documents[0];
var ms = doc.masterSlides['Title & Bullets'];
var title = ms.defaultTitleItem();
var pos = title.position();
console.log("(x,y) = (" + pos.x + "," + pos.y + ")");
console.log("width x height = " + title.width() + " x " + title.height());
当在“编辑母版幻灯片”模式之外或在“编辑母版幻灯片”模式下运行但选择了不同的母版幻灯片时,此代码写道
/* (x,y) = (0,0) */
/* width x height = 0 x 0 */
到日志。相反,当在“编辑母版幻灯片”模式下选择“标题和项目符号”母版幻灯片运行时,会记录正确的值。
/* (x,y) = (75,35) */
/* width x height = 874 x 170 */
问题
创建母版幻灯片、检查其属性并最终更改它们的适当方法是什么?