J'essaie d'automatiser la création et l'inspection de diapositives maître dans Keynote en utilisant JavaScript pour l'automatisation.Comment créer ou modifier des diapositives Keynote en utilisant JavaScript pour l'automatisation?
Création de diapositives
Il est facile de créer un nouveau document avec un thème donné et ajouter des diapositives avec des diapositives principales particulière.
// 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);
Cela crée un nouveau document avec le thème « Blanc » et ajoute une nouvelle diapositive « Titre & Bullets ».
Une approche similaire ne fonctionne pas pour les diapositives principales. Cela crée un nouveau document, mais aucun nouveau modèle de diapositive n'est créé.
// 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);
En regardant la fenêtre de l'éditeur de script
Replies
, le
push
renvoie
null
par opposition à la poussée d'un nouveau
Slide
sur
doc.slides
qui renvoie 2 (le nombre de diapositives dans le tableau).
Il est possible de dupliquer un modèle de diapositive, mais uniquement lorsque Keynote est en mode "Edit Master Slide". Si le bouton "Modifier la diapositive principale" a été cliqué, il est alors possible de dupliquer une diapositive principale.
var Keynote = Application('Keynote');
var doc = Keynote.documents[0];
var ms = doc.masterSlides['Title & Bullets'];
ms.duplicate();
Cela crée une nouvelle diapositive maître nommé "Titre & Bullets copie".
propriétés inspectent de diapositives maître
de diapositives Inspecter a des problèmes similaires, mais légèrement différentes. Le code suivant doit consigner la position, la largeur et la hauteur de l'élément de titre sur la diapositive "Title & Bullets" du document ouvert.
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());
Lorsqu'il est exécuté soit à l'extérieur de la "Edit Master Slide" Mode ou "Edit Master Slide" en mode mais avec une diapositive maître différente sélectionnée, ce code écrit
/* (x,y) = (0,0) */
/* width x height = 0 x 0 */
dans le journal. En revanche, lorsque vous utilisez le modèle de diapositive "Title & Bullets" sélectionné dans le mode "Edit Master Slide", les valeurs correctes sont enregistrées.
/* (x,y) = (75,35) */
/* width x height = 874 x 170 */
Question
Quelle est la bonne façon de créer des diapositives de maître, d'inspecter leurs propriétés, et en fin de compte les changer?
C'est une bonne suggestion. Je vais l'essayer. –