שירות Slides מתקדם

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

השירות Slides המתקדם מאפשר לכם לגשת אל Slides API באמצעות Apps Script. השירות הזה מאפשר לסקריפטים לקרוא ולערוך תוכן ב-Google Slides.

חומרי עזר

למידע מפורט על השירות הזה, עיינו במסמכי התיעוד של Slides API. בדומה לכל השירותים המתקדמים ב-Apps Script, שירות Slides המתקדם משתמש באותם אובייקטים, שיטות ופרמטרים כמו ה-API הציבורי. מידע נוסף זמין במאמר איך נקבעות חתימות שיטה.

כדי לדווח על בעיות ולמצוא תמיכה נוספת, אפשר לעיין במדריך התמיכה של Slides.

קוד לדוגמה

הקוד לדוגמה שמוצג בהמשך משתמש בגרסה 1 של ה-API.

צור מצגת חדשה

הדוגמה הבאה ממחישה איך יוצרים מצגת חדשה באמצעות השירות המתקדם Slides. מקבילה לדגימה של יצירת מצגת חדשה.

Advanced/Slides.gs
/**
 * Create a new presentation.
 * @return {string} presentation Id.
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/create
 */
function createPresentation() {
  try {
    const presentation =
      Slides.Presentations.create({'title': 'MyNewPresentation'});
    Logger.log('Created presentation with ID: ' + presentation.presentationId);
    return presentation.presentationId;
  } catch (e) {
    // TODO (developer) - Handle exception
    Logger.log('Failed with error %s', e.message);
  }
}

צור שקופית חדשה

הדוגמה הבאה מראה איך ליצור שקף חדש במצגת, באינדקס ספציפי ובפריסה מוגדרת מראש. קטע זה שווה ערך לדגימה של יצירת שקף חדש.

Advanced/Slides.gs
/**
 * Create a new slide.
 * @param {string} presentationId The presentation to add the slide to.
 * @return {Object} slide
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function createSlide(presentationId) {
  // You can specify the ID to use for the slide, as long as it's unique.
  const pageId = Utilities.getUuid();

  const requests = [{
    'createSlide': {
      'objectId': pageId,
      'insertionIndex': 1,
      'slideLayoutReference': {
        'predefinedLayout': 'TITLE_AND_TWO_COLUMNS'
      }
    }
  }];
  try {
    const slide =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    Logger.log('Created Slide with ID: ' + slide.replies[0].createSlide.objectId);
    return slide;
  } catch (e) {
    // TODO (developer) - Handle Exception
    Logger.log('Failed with error %s', e.message);
  }
}

קרא מזהי אובייקט של מרכיב דף

הדוגמה הבאה מראה איך לאחזר את מזהי האובייקטים לכל רכיב בדף בשקף ספציפי, באמצעות מסיכת שדה. קטע זה שווה ערך לדגימה של מזהה רכיב קריאה בדף.

Advanced/Slides.gs
/**
 * Read page element IDs.
 * @param {string} presentationId The presentation to read from.
 * @param {string} pageId The page to read from.
 * @return {Object} response
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations.pages/get
 */
function readPageElementIds(presentationId, pageId) {
  // You can use a field mask to limit the data the API retrieves
  // in a get request, or what fields are updated in an batchUpdate.
  try {
    const response = Slides.Presentations.Pages.get(
        presentationId, pageId, {'fields': 'pageElements.objectId'});
    Logger.log(response);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    Logger.log('Failed with error %s', e.message);
  }
}

הוסף תיבת טקסט חדשה

הדוגמה הבאה ממחישה איך מוסיפים תיבת טקסט חדשה לשקף, ומוסיפים לה טקסט. קטע זה שווה ערך לדוגמה של הוספת תיבת טקסט לשקף.

Advanced/Slides.gs
/**
 * Add a new text box with text to a page.
 * @param {string} presentationId The presentation ID.
 * @param {string} pageId The page ID.
 * @return {Object} response
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function addTextBox(presentationId, pageId) {
  // You can specify the ID to use for elements you create,
  // as long as the ID is unique.
  const pageElementId = Utilities.getUuid();

  const requests = [{
    'createShape': {
      'objectId': pageElementId,
      'shapeType': 'TEXT_BOX',
      'elementProperties': {
        'pageObjectId': pageId,
        'size': {
          'width': {
            'magnitude': 150,
            'unit': 'PT'
          },
          'height': {
            'magnitude': 50,
            'unit': 'PT'
          }
        },
        'transform': {
          'scaleX': 1,
          'scaleY': 1,
          'translateX': 200,
          'translateY': 100,
          'unit': 'PT'
        }
      }
    }
  }, {
    'insertText': {
      'objectId': pageElementId,
      'text': 'My Added Text Box',
      'insertionIndex': 0
    }
  }];
  try {
    const response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    Logger.log('Created Textbox with ID: ' +
      response.replies[0].createShape.objectId);
    return response;
  } catch (e) {
    // TODO (developer) - Handle Exception
    Logger.log('Failed with error %s', e.message);
  }
}

קבע את הפורמט של טקסט בתוך צורה

הדוגמה הבאה מדגימה איך מעצבים טקסט של צורה, מעדכנים את הצבע, הגופן וקווים תחתונים של הטקסט שלה. קטע זה שווה ערך לדגימה של פורמט טקסט בצורה או תיבת טקסט.

Advanced/Slides.gs
/**
 * Format the text in a shape.
 * @param {string} presentationId The presentation ID.
 * @param {string} shapeId The shape ID.
 * @return {Object} replies
 * @see https://developers.google.com/slides/api/reference/rest/v1/presentations/batchUpdate
 */
function formatShapeText(presentationId, shapeId) {
  const requests = [{
    'updateTextStyle': {
      'objectId': shapeId,
      'fields': 'foregroundColor,bold,italic,fontFamily,fontSize,underline',
      'style': {
        'foregroundColor': {
          'opaqueColor': {
            'themeColor': 'ACCENT5'
          }
        },
        'bold': true,
        'italic': true,
        'underline': true,
        'fontFamily': 'Corsiva',
        'fontSize': {
          'magnitude': 18,
          'unit': 'PT'
        }
      },
      'textRange': {
        'type': 'ALL'
      }
    }
  }];
  try {
    const response =
      Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    return response.replies;
  } catch (e) {
    // TODO (developer) - Handle Exception
    Logger.log('Failed with error %s', e.message);
  }
}

שיטות מומלצות

עדכוני אצווה

כשאתם משתמשים בשירות המתקדם של Slides, משלבים מספר בקשות במערך במקום להתקשר אל batchUpdate בלופ.

אסור't — להתקשר אל batchUpdate בלופ.

var titles = ["slide 1", "slide 2"];
for (var i = 0; i < titles.length; i++) {
  Slides.Presentations.batchUpdate(preso, {
    requests: [{
      createSlide: ...
    }]
  });
}

כן — צריך להתקשר לbatchUpdate עם מערך של עדכונים.

var requests = [];
var titles = ["slide 1", "slide 2"];
for (var i = 0; i < titles.length; i++) {
  requests.push({ createSlide: ... });
}

Slides.Presentations.batchUpdate(preso, {
  requests: requests
});