أحد الاستخدامات المفيدة لواجهة Google Slides API هو دمج المعلومات من مصدر واحد أو أكثر من مصادر البيانات في مجموعة شرائح تستند إلى نموذج.
توضّح هذه الصفحة كيفية نقل البيانات من مصدر خارجي وإدراجها في عرض تقديمي حالي مستند إلى نموذج. وهذا المفهوم مشابه لمفهوم دمج المراسلات باستخدام معالج نصوص وجدول بيانات.
هناك عدة أسباب تجعل هذا الأسلوب مفيدًا:
يمكن للمصمّمين بسهولة ضبط تصميم العرض التقديمي باستخدام محرّر "العروض التقديمية من Google". وهذا أسهل بكثير من ضبط المَعلمات في تطبيقك لتحديد تصميم الشريحة المعروضة.
إنّ فصل المحتوى عن طريقة عرضه هو مبدأ تصميم معروف وله فوائد عديدة.
وصفة أساسية
في ما يلي مثال على كيفية استخدام Slides API لدمج البيانات في عرض تقديمي:
أنشئ العرض التقديمي بالطريقة التي تريد أن يظهر بها باستخدام محتوى نائب لمساعدتك في التصميم.
لكل عنصر محتوى ستدرجه، استبدِل المحتوى النائب بعلامة. العلامات هي مربّعات نص أو أشكال تحتوي على سلسلة فريدة. احرص على استخدام سلاسل من غير المحتمل أن تحدث بشكل طبيعي. على سبيل المثال، قد تكون
{{account-holder-name}}علامة جيدة.في الرمز البرمجي، استخدِم Google Drive API لإنشاء نسخة من العرض التقديمي.
في الرمز، استخدِم طريقة
batchUpdateفي Slides API، مع مجموعة من طلباتreplaceAllTextلتنفيذ جميع عمليات استبدال النص في العرض التقديمي. استخدِم طلباتreplaceAllShapesWithImageلاستبدال الصور في العرض التقديمي.
بعد إنشاء عرض تقديمي يتضمّن علامات، احرص على إنشاء نسخة واستخدام Slides API لتعديل النسخة. لا تستخدِم واجهة برمجة التطبيقات Slides API للتعديل على النسخة الأساسية من "النموذج".
تتضمّن الأقسام التالية مقتطفات من الرمز توضّح بعض هذه العملية. يمكنك أيضًا مشاهدة الفيديو أعلاه للاطّلاع على مثال كامل (Python) يجمع بين العديد من المفاهيم من الأقسام الفردية أدناه.
دمج النص
يمكنك استخدام طلب replaceAllText
لاستبدال كل تكرارات سلسلة نصية معيّنة في
عرض تقديمي بنص جديد. في عمليات الدمج، يكون هذا الإجراء أبسط من البحث عن كل مثيل من النص واستبداله بشكل فردي. أحد أسباب كون هذا الأسلوب هو الأكثر تطورًا هو صعوبة توقّع معرّفات عناصر الصفحة، خاصةً عندما يراجع المتعاونون عرض النموذج ويحافظون عليه.
مثال
يستخدم هذا المثال واجهة برمجة تطبيقات Drive لنسخ عرض تقديمي من نموذج، ما يؤدي إلى إنشاء نسخة جديدة من العرض التقديمي. بعد ذلك، تستخدم واجهة برمجة التطبيقات Google Sheets API لقراءة البيانات من جدول بيانات في "جداول بيانات Google"، وأخيرًا تستخدم واجهة برمجة التطبيقات Slides API لتعديل العرض التقديمي الجديد.
يأخذ المثال البيانات من 3 خلايا في صف واحد من نطاق مسمّى في جدول البيانات. ثم يتم استبدال تلك البيانات في العرض التقديمي في أي مكان تظهر فيه السلاسل {{customer-name}} أو {{case-description}} أو {{total-portfolio}}.
برمجة التطبيقات
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
دمج الصور
يمكنك أيضًا دمج الصور في عرضك التقديمي باستخدام
replaceAllShapesWithImage
طلب. يستبدل هذا الطلب جميع مثيلات الأشكال التي تحتوي على السلسلة النصية المقدَّمة بالصورة المقدَّمة. يتم تلقائيًا تحديد موضع الصورة وتغيير حجمها لتناسب حدود شكل العلامة مع الحفاظ على نسبة العرض إلى الارتفاع الخاصة بالصورة.
مثال
يستخدم هذا المثال واجهة برمجة تطبيقات Google Drive لنسخ عرض تقديمي من نموذج، ما يؤدي إلى إنشاء نسخة جديدة من العرض التقديمي. بعد ذلك، تستخدم واجهة برمجة التطبيقات Slides API للعثور على أي شكل يتضمّن النص {{company-logo}} واستبداله بصورة شعار الشركة. يستبدل الطلب أيضًا أي شكل بالنص {{customer-graphic}} بصورة مختلفة.
برمجة التطبيقات
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
استبدال مربّعات نص أو صور معيّنة
تكون طلبات replaceAllText وreplaceAllShapesWithImage مفيدة لاستبدال العلامات في جميع أنحاء العرض التقديمي، ولكن في بعض الأحيان، تحتاج فقط إلى استبدال العناصر وفقًا لمعايير أخرى، مثل أن تكون موجودة على شريحة معيّنة.
في هذه الحالات، يجب استرداد أرقام تعريف أشكال العلامات التي تريد استبدالها. بالنسبة إلى عمليات استبدال النص، عليك حذف النص الحالي في تلك الأشكال ثم إدراج النص الجديد (راجِع المثال تعديل النص في شكل محدّد).
عمليات استبدال الصور أكثر تعقيدًا. لدمج صورة، عليك اتّباع الخطوات التالية:
- احصل على رقم تعريف شكل العلامة.
- انسخ معلومات الحجم والتحويل من العلامة.
- أضِف صورتك إلى الصفحة باستخدام معلومات الحجم والتحويل.
- احذف شكل العلامة.
قد يتطلّب الحفاظ على نسبة العرض إلى الارتفاع للصورة أثناء تغيير حجمها إلى الحجم المطلوب بعض العناية، كما هو موضّح في القسم التالي. راجِع أيضًا هذا المثال: استبدال علامة شكل بصورة.
الحفاظ على نسبة العرض إلى الارتفاع
عند إنشاء صور باستخدام Slides API، تستند عمليات ملاءمة نسبة العرض إلى الارتفاع إلى حجم الصورة فقط، وليس إلى حجم البيانات وتحويلها. يُعدّ حجم البيانات الذي تقدّمه في طلب createImage هو الحجم المطلوب للصورة. تضبط واجهة برمجة التطبيقات نسبة العرض إلى الارتفاع للصورة لتناسب هذا الحجم المطلوب، ثم تطبّق عملية التحويل المقدَّمة.
عند استبدال علامة بصورة، يمكنك الحفاظ على نسبة العرض إلى الارتفاع للصورة من خلال ضبط حجم الصورة وتغيير حجمها على النحو التالي:
- width: يتم ضبطها على ناتج
widthوscaleXللعلامة - height: يتم ضبطه على ناتج ضرب
heightفيscaleYللعلامة - تم ضبط scale_x على
1 - scale_y: تم ضبط القيمة على
1
يؤدي ذلك إلى أن تضبط واجهة برمجة التطبيقات Slides API نسبة العرض إلى الارتفاع للصورة وفقًا للحجم المرئي للعلامة، وليس حجمها غير المعدَّل (راجِع استبدال علامة شكل بصورة).
يؤدي ضبط مَعلمات تغيير الحجم على 1 إلى منع تغيير حجم الصورة مرتين.
يضمن هذا الترتيب الحفاظ على نسبة العرض إلى الارتفاع للصورة، ويمنع تجاوز الصورة لحجم شكل العلامة. تحتوي الصورة على نقطة مركزية مماثلة لشكل العلامة.
إدارة النماذج
بالنسبة إلى عروض النماذج التقديمية التي يحدّدها التطبيق ويمتلكها، أنشئ النموذج باستخدام حساب مخصّص يمثّل التطبيق. تُعد حسابات الخدمة خيارًا جيدًا وتتجنّب المشاكل المتعلقة بسياسات Google Workspace التي تفرض قيودًا على المشاركة.
عند إنشاء نُسخ من العروض التقديمية من النماذج، استخدِم دائمًا بيانات اعتماد المستخدم النهائي. يمنح ذلك المستخدمين إمكانية التحكّم الكامل في العرض التقديمي الناتج ويمنع حدوث مشاكل في تغيير الحجم مرتبطة بالحدود القصوى المسموح بها لكل مستخدم في Google Drive.
لإنشاء نموذج باستخدام حساب خدمة، اتّبِع الخطوات التالية باستخدام بيانات اعتماد التطبيق:
- أنشئ عرضًا تقديميًا باستخدام presentations.create في Slides API.
- عدِّل الأذونات للسماح للمستلمين بقراءة العرض التقديمي باستخدام permissions.create في Drive API.
- عدِّل الأذونات للسماح لمؤلفي النماذج بالكتابة إليها باستخدام permissions.create في Drive API.
- عدِّل النموذج حسب الحاجة.
لإنشاء مثيل للعرض التقديمي، اتّبِع الخطوات التالية باستخدام بيانات اعتماد المستخدم:
- أنشئ نسخة من النموذج باستخدام files.copy في Drive API.
- استبدِل القيم باستخدام presentation.batchUpdate في Slides API.