כתיבה בסיסית

Google Slides API מאפשר להוסיף ולשנות רכיבים בדפי מצגות. הדוגמאות בדף הזה מראות איך לבצע פעולות קריאה נפוצות באמצעות method presentations.batchUpdate.

בדוגמאות הבאות נעשה שימוש במשתנים הבאים:

  • PRESENTATION_ID – מציין איפה מספקים את מזהה המצגת. אפשר לאתר את הערך של המזהה הזה בכתובת ה-URL של המצגת.
  • PAGE_ID – מציין איפה מספקים את מזהה האובייקט של הדף. אפשר לאחזר את הערך מכתובת ה-URL או באמצעות בקשת קריאה ל-API.
  • PAGE_ELEMENT_ID – מציין איפה מספקים את מזהה האובייקט של רכיב הדף. תוכלו לציין את המזהה הזה לרכיבים שאתם יוצרים (עם הגבלות מסוימות), או לאפשר ל-Slides ליצור מזהה כזה באופן אוטומטי. אפשר לאחזר מזהי רכיב באמצעות בקשת קריאה של API.

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

הוספת תיבת טקסט לשקף

דוגמת הקוד הבאה ממחישה איך presentations.batchUpdate ממחישה איך משתמשים ב-method CreateShapeRequest כדי להוסיף תיבת טקסט חדשה (שמכילה את המחרוזת 'תיבת הטקסט שנוספה') בשקף שצוין ב-PAGE_ID. שתי בקשות מפורטות בגוף הבקשה – אחת ליצירת הצורה של תיבת הטקסט (עם גודל ומיקום נתונים) והשנייה להוספת טקסט.

בבקשה הראשונה מצוין מזהה האובייקט שבו צריך להשתמש בתיבת הטקסט. כך הבקשה השנייה תוכל להשתמש בה באותה קריאה ל-API, וכך לצמצם את התקורה.

לפניכם הפרוטוקול של הבקשה להוספת תיבת טקסט לשקף:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": PAGE_ELEMENT_ID,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

הוספת תמונה לשקף

דוגמת הקוד הבאה מ-presentations.batchUpdate ממחישה איך משתמשים ב-method CreateImageRequest כדי להוסיף תמונה לשקף שצוין ב-PAGE_ID. ה-API מאחזר את התמונה באמצעות IMAGE_URL. הבקשה הזו גם משנה וממקם את התמונה בשקף.

לפניכם פרוטוקול הבקשה להוספת תמונה לשקף:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

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

דוגמת הקוד הבאה מ-presentations.batchUpdate מראה איך להשתמש ב-method DeleteObjectRequest כדי למחוק את רכיב הדף שצוין על ידי PAGE_ELEMENT_ID ואת השקף שצוין על ידי PAGE_ID באמצעות שתי בקשות נפרדות.

זהו פרוטוקול הבקשה למחיקת דף או רכיב בדף:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      },
      "deleteObject": {
        "objectId":  PAGE_ID
      }
    }
  ]
}

עריכת טקסט בצורה מסוימת

דוגמת הקוד הבאה מ-presentations.batchUpdate ממחישה כיצד להשתמש ב-method DeleteTextRequest כדי להחליף חלק מהטקסט בצורה שמצוינת על ידי PAGE_ELEMENT_ID. לשם כך, קודם מוחקים טקסט באמצעות הערך startIndex שמבוסס על אפסים, ואז מוסיפים טקסט חדש במיקום הזה. בדוגמה הזו, מחרוזת הטקסט המקורית 'My Generate Text: ?' ' תוחלף ב-" My Style Text: Trapezoid".

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

זהו פרוטוקול הבקשה לעריכת טקסט בצורה שצוינה:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": PAGE_ELEMENT_ID,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

החלפה של תג צורה בתמונה

תגים הם תיבות טקסט או צורות עם שם מחרוזת ייחודי, למשל "account-holder-name".

דוגמת הקוד הבאה של presentations.batchUpdate מראה כיצד להשתמש ב-method CreateImageRequest כדי להחליף מופע יחיד של תג צורה בתמונה, לשמור על אותו מיקום ולשנות את גודל התג בהתאם לגודל התג תוך שמירה על יחס הגובה-רוחב של התמונה.

ניתן להשתמש בבקשה גם כדי להחליף תמונה אחת באחרת. הבקשה כוללת הוספה של התמונה החדשה ומחיקת התג.

השיטה CreateImageRequest מחליפה רק צורה שצוינה. כדי להחליף צורת תגים בכל מקום במצגת, משתמשים ב-method ReplaceAllShapesWithImageRequest.

תג הצורה כולל את המאפיינים הבאים של PageElement (תוכלו למצוא אותם באמצעות בקשת presentations.pages.get):

{
  "objectId": PAGE_ELEMENT_ID,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 1.13,
    "scaleY": 0.62,
    "translateX": 4800000,
    "translateY":  450000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RECTANGLE"
  }
}

הצורה נמצאת בשקף שצוין על ידי PAGE_ID. כדי לציין את התמונה שמחליפה את הצורה, ה-API מאחזר את התמונה באמצעות השדה IMAGE_URL. כדי לשמור על יחס גובה-רוחב של תמונה תוך הגבלה לגודל התג, השיטה CreateImageRequest מגדירה את גודל התמונה כמכפלה של הגודל וקנה המידה של התג וגם את הגורמים של קנה המידה של התמונה ל-1. מידע נוסף זמין במאמר שימור יחס גובה-רוחב.

לפניכם פרוטוקול הבקשה להחלפת תג צורה בתמונה:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000 * 1.13,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000 * 0.62,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4800000,
            "translateY": 450000,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      }
    }
  ]
}