Salah satu penerapan Google Slides API yang berguna adalah menggabungkan informasi dari satu atau beberapa sumber data ke dalam dek slide ber-template.
Halaman ini menguraikan cara mengambil data dari sumber eksternal dan menyisipkannya ke presentasi template yang ada. Konsep ini serupa dengan pembuatan email massal menggunakan pengolah kata dan spreadsheet.
Ada beberapa alasan mengapa pendekatan ini berguna:
Desainer dapat dengan mudah menyesuaikan desain presentasi menggunakan editor Google Slide. Cara ini jauh lebih mudah daripada menyesuaikan parameter di aplikasi Anda untuk menetapkan desain slide yang dirender.
Memisahkan konten dari presentasi adalah prinsip desain yang dikenal luas dan memiliki banyak manfaat.
Resep dasar
Berikut adalah contoh cara menggunakan Slides API untuk menggabungkan data ke dalam presentasi:
Buat presentasi seperti yang Anda inginkan menggunakan konten placeholder untuk membantu Anda mendesain.
Untuk setiap elemen konten yang akan Anda sisipkan, ganti konten placeholder dengan tag. Tag adalah kotak teks atau bentuk dengan string unik. Pastikan untuk menggunakan string yang cenderung tidak muncul secara normal. Misalnya,
{{account-holder-name}}
mungkin merupakan tag yang baik.Dalam kode Anda, gunakan Google Drive API untuk membuat salinan presentasi.
Dalam kode Anda, gunakan metode
batchUpdate
Slides API, dengan serangkaian permintaanreplaceAllText
, untuk melakukan semua penggantian teks di seluruh presentasi. Gunakan permintaanreplaceAllShapesWithImage
untuk melakukan penggantian gambar di seluruh presentasi.
Setelah Anda membuat presentasi dengan tag di dalamnya, pastikan untuk membuat salinan dan gunakan Slides API untuk memanipulasi salinan. Jangan gunakan Slides API untuk memanipulasi salinan "template" utama Anda.
Bagian berikut menyertakan cuplikan kode yang mengilustrasikan beberapa proses ini. Anda juga dapat melihat video di atas untuk melihat contoh lengkap (Python) yang menggabungkan beberapa konsep dari masing-masing bagian di bawah ini.
Menggabungkan teks
Anda dapat menggunakan permintaan replaceAllText
untuk mengganti semua instance string teks tertentu dalam presentasi dengan teks baru. Untuk penggabungan, ini lebih sederhana daripada
menemukan dan mengganti setiap instance teks satu per satu. Salah satu alasan mengapa ini
merupakan pendekatan yang paling canggih adalah karena ID elemen halaman sulit diprediksi,
terutama saat kolaborator menyaring dan mengelola presentasi
template.
Contoh
Contoh ini menggunakan Drive API untuk menyalin presentasi template, sehingga membuat instance presentasi baru. Kemudian, contoh ini menggunakan Google Sheets API untuk membaca data dari spreadsheet Spreadsheet, dan akhirnya menggunakan Slides API untuk memperbarui presentasi baru.
Contoh ini mengambil data dari 3 sel di satu baris rentang bernama di
spreadsheet. Kemudian, data tersebut akan diganti ke dalam presentasi di mana saja
string {{customer-name}}
,
{{case-description}}
, atau
{{total-portfolio}}
muncul.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Menggabungkan gambar
Anda juga dapat menggabungkan gambar ke dalam presentasi menggunakan permintaan
replaceAllShapesWithImage
. Permintaan ini mengganti semua instance bentuk yang berisi string teks yang disediakan dengan gambar yang disediakan. Permintaan tersebut secara otomatis
memosisikan dan menskalakan gambar agar pas dengan batas bentuk tag sekaligus
mempertahankan rasio aspek gambar.
Contoh
Contoh ini menggunakan Google Drive API untuk menyalin presentasi template, lalu membuat
instance presentasi baru. Kemudian, contoh ini menggunakan Slides API untuk menemukan bentuk apa pun dengan teks {{company-logo}}
dan menggantinya dengan gambar logo perusahaan. Permintaan ini juga mengganti bentuk apa pun dengan teks {{customer-graphic}}
dengan gambar yang berbeda.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Mengganti instance kotak teks atau gambar tertentu
Permintaan replaceAllText
dan replaceAllShapesWithImage
berguna untuk mengganti tag di seluruh presentasi, tetapi
terkadang Anda hanya perlu mengganti elemen sesuai dengan kriteria lain, seperti
ditempatkan di slide tertentu.
Dalam hal ini, Anda harus mengambil ID bentuk tag yang ingin diganti. Untuk penggantian teks, Anda harus menghapus teks yang ada dalam bentuk tersebut, lalu memasukkan teks baru (lihat contoh Mengedit teks dalam bentuk yang ditentukan).
Penggantian gambar lebih kompleks. Untuk menggabungkan gambar, Anda perlu:
- Mendapatkan ID bentuk tag.
- Salin informasi ukuran dan transformasi dari tag.
- Menambahkan gambar Anda ke halaman, dengan menggunakan informasi ukuran dan transformasi.
- Menghapus bentuk tag.
Mempertahankan rasio aspek gambar saat menskalakannya ke ukuran yang diinginkan mungkin memerlukan perhatian khusus, seperti yang dijelaskan di bagian berikut. Lihat juga contoh ini: Mengganti tag bentuk dengan gambar.
Mempertahankan rasio aspek
Saat Anda membuat gambar menggunakan Slides API, kesesuaian aspek hanya didasarkan pada
ukuran gambar, bukan pada data ukuran dan transformasi. Data ukuran yang Anda berikan
dalam permintaan createImage
dianggap sebagai ukuran gambar yang diinginkan. API menyesuaikan
rasio aspek gambar ke ukuran yang diinginkan, lalu menerapkan transformasi yang disediakan.
Saat mengganti tag dengan gambar, Anda mempertahankan rasio aspek gambar dengan menyetel ukuran dan penskalaan gambar seperti berikut:
- width: ditetapkan ke hasil kali
width
danscaleX
tag - height: disetel ke hasil kali
height
danscaleY
tag - scale_x: ditetapkan ke
1
- scale_y: ditetapkan ke
1
Hal ini menyebabkan Slides API menyesuaikan aspek gambar menurut
ukuran visual tag, bukan ukuran non-skala (lihat
Mengganti tag bentuk dengan gambar).
Menyetel parameter penskalaan ke 1
akan mencegah gambar diskalakan
dua kali.
Pengaturan ini memastikan rasio aspek gambar dipertahankan, dan mencegah gambar melampaui ukuran bentuk tag. Gambar memiliki titik pusat yang sama dengan bentuk tag.
Kelola template
Untuk presentasi template yang ditentukan dan dimiliki oleh aplikasi, buat template menggunakan akun khusus yang mewakili aplikasi. Akun layanan merupakan pilihan yang baik dan menghindari komplikasi dengan kebijakan Google Workspace yang membatasi pembagian.
Saat Anda membuat instance presentasi dari template, selalu gunakan kredensial pengguna akhir. Tindakan ini memberi pengguna kontrol penuh atas presentasi yang dihasilkan dan mencegah masalah penskalaan yang terkait dengan batas per pengguna di Google Drive.
Untuk membuat template menggunakan akun layanan, lakukan langkah-langkah berikut dengan kredensial aplikasi:
- Buat presentasi menggunakan presentations.create di Slides API.
- Perbarui izin untuk mengizinkan penerima presentasi membacanya menggunakan permissions.create di Drive API.
- Perbarui izin untuk mengizinkan penulis template menulis ke template tersebut menggunakan permissions.create di Drive API.
- Edit template sesuai kebutuhan.
Untuk membuat instance presentasi, lakukan langkah-langkah berikut dengan kredensial pengguna:
- Buat salinan template menggunakan files.copy di Drive API.
- Ganti nilai menggunakan presentation.batchUpdate di Slides API.