الكتابة الأساسية

تتيح لك Google Slides API إضافة العناصر وتعديلها في صفحات العرض التقديمي. تعرض الأمثلة في هذه الصفحة كيفية تنفيذ عمليات القراءة الشائعة باستخدام presentations.batchUpdate طريقة.

تستخدِم هذه الأمثلة المتغيّرات التالية:

  • PRESENTATION_ID—يشير إلى المكان الذي تُدخِل فيه معرّف العرض التقديمي. يمكنك العثور على قيمة هذا المعرّف من عنوان URL للعرض التقديمي.
  • PAGE_ID—يشير إلى المكان الذي تُدخِل فيه معرّف عنصر الصفحة. يمكنك استرداد قيمة هذا المعرّف من عنوان URL أو باستخدام طلب قراءة من واجهة برمجة التطبيقات.
  • PAGE_ELEMENT_ID—يشير إلى المكان الذي تُدخِل فيه معرّف عنصر صفحة. يمكنك تحديد هذا المعرّف للعناصر التي تنشئها (مع بعض القيود) أو السماح لـ Slides API بإنشاء معرّف تلقائيًا. يمكن استرداد معرّفات العناصر من خلال طلب قراءة من واجهة برمجة التطبيقات.

يتم عرض هذه الأمثلة كطلبات HTTP لتكون محايدة من ناحية اللغة. للتعرّف على كيفية تنفيذ عملية تعديل مجمّعة بلغات مختلفة باستخدام مكتبات برامج Google API ، يُرجى الاطّلاع على مقالة إضافة أشكال و نصوص.

إضافة مربّع نص إلى شريحة

تعرض عيّنة تعليمات برمجية presentations.batchUpdate التالية كيفية استخدام طريقة CreateShapeRequest لإضافة مربّع نص جديد (يحتوي على السلسلة "My Added Text Box") إلى شريحة محدّدة حسب PAGE_ID. تم تحديد طلبَين في نص الطلب: أحدهما لإنشاء شكل مربّع النص (بحجم وموضع معيّنين) والثاني لإدراج نص فيه.

يحدّد الطلب الأول معرّف الكائن الذي سيتم استخدامه لمربّع النص. ويتيح ذلك للطلب الثاني استخدامه في طلب واجهة برمجة التطبيقات نفسه، ما يقلّل من النفقات العامة.

في ما يلي بروتوكول الطلب لإضافة مربّع نص إلى شريحة:

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 كيفية استخدام طريقة CreateImageRequest لإضافة صورة إلى شريحة محدّدة حسب PAGE_ID. تستردّ واجهة برمجة التطبيقات الصورة باستخدام 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 التالية كيفية استخدام طريقة 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 التالية كيفية استخدام طريقة DeleteTextRequest لاستبدال جزء من النص المعروض في الشكل المحدّد حسب PAGE_ELEMENT_ID. لإجراء ذلك، عليك أولاً حذف النص باستخدام startIndex المستند إلى الصفر ثم إدراج نص جديد في هذا الموضع. في هذا المثال، يتم استبدال السلسلة النصية الأصلية "My Shape Text: ????" بـ "My Shape Text: Trapezoid".

لا يؤثر هذا الطلب إلا في النص الموجود في شكل محدّد. لاستبدال النص في كل مكان ضمن عرض تقديمي، استخدِم الـ 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 كيفية استخدام طريقة CreateImageRequest لاستبدال مثيل واحد من علامة شكل بصورة، مع الحفاظ على الموضع نفسه وتغيير حجمها ليناسب حجم العلامة مع الحفاظ على نسبة العرض إلى الارتفاع للصورة.

يمكن أيضًا استخدام الطلب لاستبدال صورة بأخرى. يتضمّن الطلب إضافة الصورة الجديدة ثم حذف العلامة.

لا تستبدل طريقة CreateImageRequest سوى شكل محدّد. لاستبدال أشكال العلامات في كل مكان ضمن عرض تقديمي، استخدِم 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. لتحديد الصورة التي تحل محل الشكل، تستردّ واجهة برمجة التطبيقات الصورة باستخدام 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
      }
    }
  ]
}