Một ứng dụng hữu ích của API Google Trang trình bày là hợp nhất thông tin từ một hoặc nhiều nguồn dữ liệu vào một bản trình bày theo mẫu.
Trang này trình bày cách lấy dữ liệu từ một nguồn bên ngoài và chèn dữ liệu đó vào bản trình bày mẫu hiện có. Ý tưởng này tương tự như hoạt động hợp nhất thư bằng trình xử lý văn bản và bảng tính.
Có một số lý do khiến phương pháp này hữu ích:
Nhà thiết kế có thể dễ dàng điều chỉnh thiết kế của bản trình bày bằng trình chỉnh sửa Google Trang trình bày. Việc này dễ dàng hơn nhiều so với việc điều chỉnh các tham số trong ứng dụng để thiết lập thiết kế trang trình bày được kết xuất.
Việc tách nội dung khỏi bản trình bày là một nguyên tắc thiết kế phổ biến mang lại nhiều lợi ích.
Công thức cơ bản
Dưới đây là ví dụ về cách bạn có thể sử dụng API Trang trình bày để hợp nhất dữ liệu vào bản trình bày:
Tạo bản trình bày theo cách bạn muốn bằng cách sử dụng nội dung phần giữ chỗ để giúp bạn thiết kế.
Đối với mỗi phần tử nội dung mà bạn sẽ chèn, hãy thay thế nội dung phần giữ chỗ bằng một thẻ. Thẻ là hộp văn bản hoặc hình dạng có một chuỗi duy nhất. Hãy nhớ sử dụng các chuỗi không có khả năng xuất hiện bình thường. Ví dụ:
{{account-holder-name}}
có thể là một thẻ phù hợp.Trong mã, hãy sử dụng Google Drive API để tạo bản sao của bản trình bày.
Trong mã, hãy sử dụng phương thức
batchUpdate
của API Trang trình bày, cùng với một tập hợp các yêu cầureplaceAllText
để thực hiện tất cả các lượt thay thế văn bản trong suốt bản trình bày. Sử dụng các yêu cầureplaceAllShapesWithImage
để thay thế hình ảnh trong suốt bản trình bày.
Sau khi tạo một bộ bài có thẻ, hãy nhớ tạo bản sao và sử dụng API Trang trình bày để thao tác với bản sao đó. Đừng sử dụng API Trang trình bày để thao tác với bản sao "mẫu" chính!
Các phần sau đây bao gồm các đoạn mã minh hoạ một số bước trong quy trình này. Bạn cũng có thể xem video ở trên để xem một ví dụ đầy đủ (Python) kết hợp một số khái niệm từ các phần riêng lẻ bên dưới.
Hợp nhất văn bản
Bạn có thể sử dụng yêu cầu replaceAllText
để thay thế tất cả các bản sao của một chuỗi văn bản nhất định trong bản trình bày bằng văn bản mới. Đối với các trường hợp hợp nhất, việc này đơn giản hơn so với việc tìm và thay thế từng thực thể văn bản. Một lý do khiến đây là phương pháp phức tạp nhất là mã nhận dạng phần tử trang khó dự đoán, đặc biệt là khi cộng tác viên tinh chỉnh và duy trì bản trình bày mẫu.
Ví dụ:
Ví dụ này sử dụng API Drive để sao chép bản trình bày mẫu, tạo một bản sao mới của bản trình bày. Sau đó, ứng dụng này sẽ sử dụng API Google Trang tính để đọc dữ liệu từ bảng tính Trang tính và cuối cùng sử dụng API Trang trình bày để cập nhật bản trình bày mới.
Ví dụ này lấy dữ liệu từ 3 ô trong một hàng của một dải ô được đặt tên trong bảng tính. Sau đó, hàm này sẽ thay thế dữ liệu đó vào bản trình bày bất cứ khi nào các chuỗi {{customer-name}}
, {{case-description}}
hoặc {{total-portfolio}}
xuất hiện.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Hợp nhất hình ảnh
Bạn cũng có thể hợp nhất hình ảnh vào bản trình bày bằng cách sử dụng yêu cầu replaceAllShapesWithImage
. Yêu cầu này sẽ thay thế tất cả các thực thể của hình dạng chứa chuỗi văn bản được cung cấp bằng hình ảnh được cung cấp. Yêu cầu này tự động đặt vị trí và điều chỉnh tỷ lệ hình ảnh cho vừa với ranh giới của hình dạng thẻ trong khi vẫn giữ nguyên tỷ lệ khung hình của hình ảnh.
Ví dụ:
Ví dụ này sử dụng API Google Drive để sao chép một bản trình bày mẫu, tạo một bản sao mới của bản trình bày. Sau đó, ứng dụng này sẽ sử dụng API Trang trình bày để tìm bất kỳ hình dạng nào có văn bản {{company-logo}}
và thay thế hình dạng đó bằng hình ảnh biểu trưng của công ty. Yêu cầu này cũng thay thế mọi hình dạng bằng văn bản {{customer-graphic}}
bằng một hình ảnh khác.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Thay thế các thực thể hình ảnh hoặc hộp văn bản cụ thể
Các yêu cầu replaceAllText
và replaceAllShapesWithImage
rất hữu ích để thay thế thẻ trong suốt bản trình bày, nhưng đôi khi bạn chỉ cần thay thế các phần tử theo một tiêu chí khác, chẳng hạn như nằm trên một trang trình bày cụ thể.
Trong những trường hợp này, bạn phải truy xuất mã nhận dạng của các hình dạng thẻ mà bạn muốn thay thế. Đối với việc thay thế văn bản, bạn xoá văn bản hiện có trong các hình dạng đó rồi chèn văn bản mới (xem mẫu Chỉnh sửa văn bản trong một hình dạng đã chỉ định).
Việc thay thế hình ảnh phức tạp hơn. Để hợp nhất hình ảnh, bạn cần:
- Lấy mã nhận dạng của hình dạng thẻ.
- Sao chép kích thước và chuyển đổi thông tin từ thẻ.
- Thêm hình ảnh vào trang bằng cách sử dụng thông tin về kích thước và biến đổi.
- Xoá hình dạng thẻ.
Bạn cần phải cẩn thận để giữ nguyên tỷ lệ khung hình của hình ảnh trong khi điều chỉnh tỷ lệ khung hình đó theo kích thước mong muốn, như mô tả trong phần sau. Ngoài ra, hãy xem mẫu này: Thay thế thẻ hình dạng bằng hình ảnh.
Giữ nguyên tỷ lệ khung hình
Khi bạn tạo hình ảnh bằng API Trang trình bày, tỷ lệ khung hình chỉ dựa trên kích thước hình ảnh, chứ không dựa trên kích thước và dữ liệu biến đổi. Dữ liệu kích thước mà bạn cung cấp trong yêu cầu createImage
được coi là kích thước mong muốn của hình ảnh. API sẽ điều chỉnh tỷ lệ khung hình của hình ảnh cho phù hợp với kích thước mong muốn này, sau đó áp dụng phép biến đổi được cung cấp.
Khi thay thế một thẻ bằng hình ảnh, bạn sẽ giữ nguyên tỷ lệ khung hình của hình ảnh bằng cách đặt kích thước và tỷ lệ của hình ảnh như sau:
- width (chiều rộng): được đặt thành tích của
width
vàscaleX
của thẻ - height: được đặt thành tích của
height
vàscaleY
của thẻ - scale_x: đặt thành
1
- scale_y: đặt thành
1
Điều này khiến API của Trang trình bày điều chỉnh tỷ lệ hình ảnh theo kích thước hình ảnh của thẻ, thay vì kích thước không theo tỷ lệ (xem phần Thay thế thẻ hình dạng bằng hình ảnh).
Việc đặt các tham số điều chỉnh tỷ lệ thành 1
sẽ ngăn hình ảnh được điều chỉnh tỷ lệ gấp đôi.
Cách sắp xếp này đảm bảo tỷ lệ khung hình của hình ảnh được giữ nguyên và ngăn hình ảnh vượt quá kích thước của hình dạng thẻ. Hình ảnh có cùng tâm điểm với hình dạng thẻ.
Quản lý mẫu
Đối với bản trình bày mẫu mà ứng dụng xác định và sở hữu, hãy tạo mẫu bằng một tài khoản chuyên dụng đại diện cho ứng dụng. Tài khoản dịch vụ là một lựa chọn phù hợp và giúp tránh các vấn đề phức tạp liên quan đến các chính sách của Google Workspace hạn chế việc chia sẻ.
Khi bạn tạo bản sao của bản trình bày từ mẫu, hãy luôn sử dụng thông tin xác thực của người dùng cuối. Điều này giúp người dùng có toàn quyền kiểm soát bản trình bày thu được và ngăn các vấn đề về việc mở rộng quy mô liên quan đến giới hạn trên mỗi người dùng trong Google Drive.
Để tạo mẫu bằng tài khoản dịch vụ, hãy thực hiện các bước sau với thông tin xác thực ứng dụng:
- Tạo bản trình bày bằng cách sử dụng presentations.create trong API Trang trình bày.
- Cập nhật quyền để cho phép người nhận bản trình bày đọc bản trình bày đó bằng cách sử dụng permissions.create trong API Drive.
- Cập nhật quyền để cho phép tác giả mẫu ghi vào mẫu đó bằng cách sử dụng permissions.create trong API Drive.
- Chỉnh sửa mẫu nếu cần.
Để tạo một thực thể của bản trình bày, hãy thực hiện các bước sau với thông tin xác thực của người dùng:
- Tạo bản sao của mẫu bằng cách sử dụng files.copy trong API Drive.
- Thay thế các giá trị bằng presentation.batchUpdate trong API Trang trình bày.