หากต้องการใช้ Slides API อย่างมีประสิทธิภาพ คุณต้องทำความเข้าใจ สถาปัตยกรรมของงานนำเสนอและคอมโพเนนต์ต่างๆ รวมถึงการโต้ตอบ ระหว่างคอมโพเนนต์เหล่านี้ หน้านี้จะแสดงภาพรวมโดยละเอียดของหัวข้อต่อไปนี้
- โมเดลแนวคิดของคอมโพเนนต์งานนำเสนอ
- วิธีที่ API แสดงองค์ประกอบเหล่านี้
- พร็อพเพอร์ตี้การจัดรูปแบบของคอมโพเนนต์
การอ่านภาพรวมแนวคิดนี้และภาพรวมอื่นๆ จะช่วยให้คุณเข้าใจและใช้คำแนะนำแบบทีละขั้นตอน เอกสารประกอบอ้างอิง และตัวอย่างสูตรได้ง่ายขึ้น
งานนำเสนอ หน้าเว็บ และองค์ประกอบของหน้าเว็บ
องค์ประกอบคอนเทนเนอร์ด้านนอกสุดใน Google สไลด์คืองานนำเสนอ ซึ่งเป็น หน่วยที่บันทึกใน Google ไดรฟ์ แชร์กับผู้ใช้รายอื่น และอื่นๆ ได้
งานนำเสนอแต่ละรายการมีหน้าหลายประเภท หน้าเว็บประเภทหนึ่งคือสไลด์ ซึ่งเป็นหน้าเว็บที่ผู้ใช้เห็นและพลิกไปมาระหว่างการแสดงผลงานนำเสนอบนหน้าจอ
แต่ละหน้าจะมีองค์ประกอบของหน้าจำนวนหนึ่ง ซึ่งรวมกันเป็นเนื้อหาของหน้า ดังที่แสดงในไดอะแกรมต่อไปนี้

นอกจากสไลด์แล้ว ยังมีหน้าประเภทอื่นๆ ที่ให้คุณใช้การออกแบบกับสไลด์ต่างๆ ได้ มากมาย ซึ่งจะช่วยให้สไลด์มีลักษณะที่สอดคล้องกัน หน้าประเภทอื่นๆ เหล่านี้คือมาสเตอร์และเลย์เอาต์ และพร็อพเพอร์ตี้ของหน้าเหล่านี้จะกำหนดวิธีแสดงผลสไลด์ ดังที่แสดงในไดอะแกรมต่อไปนี้

หน้าหลัก - หน้าหลักมีไว้สำหรับวัตถุประสงค์ 2 ประการ ตัวยึดตำแหน่งในสไลด์ต้นแบบ มีค่าเริ่มต้นสำหรับรูปแบบข้อความที่ใช้ในงานนำเสนอ พื้นหลังและรูปร่างอื่นๆ ในสไลด์ต้นแบบจะกลายเป็น พื้นหลังเริ่มต้นสำหรับสไลด์ทั้งหมดที่อิงตามสไลด์ต้นแบบนั้น หากมีโลโก้บริษัทที่ ต้องการให้ปรากฏในทุกสไลด์ของงานนำเสนอ ให้ใส่โลโก้ในสไลด์ต้นแบบ
เลย์เอาต์ - เทมเพลตเลย์เอาต์จะกำหนดวิธีจัดเรียงเนื้อหาในสไลด์แต่ละประเภท หากต้องการให้สไลด์ชื่อทั้งหมดมีลักษณะเฉพาะ เช่น คุณอาจแก้ไขเทมเพลตเลย์เอาต์ชื่อ
นอกจากนี้ ยังมีหน้าอีก 2 ประเภท ได้แก่ หน้าหมายเหตุและ มาสเตอร์หมายเหตุ ซึ่งส่วนใหญ่เกี่ยวข้องกับการทำงานกับหมายเหตุ ของผู้พูด
ประเภทและการจัดโครงสร้างการแสดง API
ส่วนนี้อธิบายวิธีแสดงโมเดลแนวคิดของ Google สไลด์ตามที่อธิบายไว้ ข้างต้นใน Slides API
แผนภาพต่อไปนี้แสดงความสัมพันธ์ระหว่างงานนำเสนอ หน้า และ องค์ประกอบของหน้าในฐานะประเภทใน Slides API

ส่วนต่อไปนี้แสดงวิธีแสดงประเภทเหล่านี้ใน JSON
งานนำเสนอ
งานนำเสนอประกอบด้วย พร็อพเพอร์ตี้จำนวนหนึ่ง และมีหน้าต่างๆ ที่อยู่ในงานนำเสนอ
{
"presentationId": string,
"pageSize": { object(Size) },
"slides": [ { object(Page) } ],
"title": string,
"masters": [ { object(Page) } ],
"layouts": [ { object(Page) } ],
"notesMaster": object(Page),
"locale": string,
}
Pages
หน้าประกอบด้วยชุดพร็อพเพอร์ตี้ และมีองค์ประกอบของหน้าที่อยู่ในนั้น
{
"objectId": string,
"pageType": enum(PageType),
"pageElements": [ { object(PageElement) } ],
"pageProperties": { object(PageProperties) },
// Union field properties can be only one of the following:
"slideProperties": { object(SlideProperties) },
"layoutProperties": { object(LayoutProperties) },
"notesProperties": { object(NotesProperties) },
// End of list of possible types for union field properties.
}
องค์ประกอบของหน้า
องค์ประกอบของหน้า คือคอมโพเนนต์ภาพที่วางไว้ในหน้าเว็บ องค์ประกอบหน้าใน API มีพร็อพเพอร์ตี้หลายรายการ รวมถึงฟิลด์ที่แตกต่างกันไปตาม ประเภทขององค์ประกอบหน้า
{
"objectId": string,
"size": { object(Size) },
"transform": { object(AffineTransform) },
"title": string,
"description": string,
// Union field element_kind can be only one of the following:
"elementGroup": { object(Group) },
"shape": { object(Shape) },
"image": { object(Image) },
"video": { object(Video) },
"line": { object(Line) },
"table": { object(Table) },
"wordArt": { object(WordArt) },
"sheetsChart": { object(SheetsChart) },
// End of list of possible types for union field element_kind.
}
องค์ประกอบของหน้ามีหลายประเภทตามที่กำหนดโดยฟิลด์ Union
element_kind ในคำจำกัดความด้านบน องค์ประกอบหน้าเว็บประเภทนี้มีคำอธิบายในตารางต่อไปนี้
| ประเภทองค์ประกอบ | คำอธิบาย |
|---|---|
| กลุ่ม | ชุดองค์ประกอบหน้าเว็บที่ถือเป็นหน่วยเดียว โดยสามารถย้าย ปรับขนาด และหมุนพร้อมกันได้ |
| รูปร่าง | ออบเจ็กต์ภาพธรรมดา เช่น สี่เหลี่ยม วงรี และกล่องข้อความ รูปร่างมีข้อความได้ จึงเป็นองค์ประกอบหน้าเว็บที่ใช้สร้างสไลด์กันมากที่สุด |
| รูปภาพ | กราฟิกที่นำเข้าไปยังสไลด์ |
| วิดีโอ | วิดีโอที่นำเข้าไปยังสไลด์ |
| บรรทัด | เส้น โค้ง หรือตัวเชื่อมต่อที่มองเห็นได้ |
| ตาราง | ตารางกริดของเนื้อหา |
| WordArt | องค์ประกอบข้อความแบบภาพที่ทำงานคล้ายรูปร่าง |
| SheetsChart | แผนภูมิที่นำเข้าไปยังสไลด์จาก Google ชีต |
คุณสมบัติของหน้าและองค์ประกอบของหน้า
Slides API ช่วยให้คุณอ่านและอัปเดตรูปลักษณ์ของหน้าและองค์ประกอบของหน้า ในงานนำเสนอได้ องค์ประกอบต่างๆ ของหน้าเว็บรองรับพร็อพเพอร์ตี้ที่แตกต่างกันซึ่งควบคุมวิธีแสดงผลองค์ประกอบของหน้าเว็บ
องค์ประกอบแต่ละประเภทของหน้าเว็บจะมีองค์ประกอบพร็อพเพอร์ตี้และข้อความอัปเดตพร็อพเพอร์ตี้ที่เกี่ยวข้อง เช่น
- มีประเภทองค์ประกอบของหน้า Shape
- ฟิลด์พร็อพเพอร์ตี้คือ shapeProperties
- คำขออัปเดตพร็อพเพอร์ตี้เหล่านี้คือ UpdateShapePropertiesRequest
ชุดองค์ประกอบ/พร็อพเพอร์ตี้/คำขออัปเดตเดียวกันมีอยู่สำหรับองค์ประกอบหน้าแต่ละประเภท ประเภท: รูปภาพ/imageProperties/UpdateImageProperties และอื่นๆ
คุณสามารถอ่านแอตทริบิวต์พร็อพเพอร์ตี้ได้ทุกที่ที่พบเมื่ออ่านองค์ประกอบ และหากต้องการเปลี่ยนค่าในแอตทริบิวต์ ให้ใช้แอตทริบิวต์กับประเภทคำขอที่ตรงกันเป็นเพย์โหลดสำหรับเมธอด batchUpdate ซึ่งจะช่วยให้คุณเปลี่ยนค่าเหล่านี้ในการนำเสนอได้
ประเภทพร็อพเพอร์ตี้
มีพร็อพเพอร์ตี้บางอย่างที่ใช้ร่วมกันระหว่างออบเจ็กต์หลายประเภทใน Slides API ดังนี้
| พร็อพเพอร์ตี้ | คำอธิบาย |
|---|---|
| สี | สีใน Slides API อาจเป็นค่า RGB หรือการอ้างอิงถึงสีของธีม สีของธีมจะอ้างอิงตามชื่อ (เช่น "DARK1") และสามารถเชื่อมโยงกับค่า RGB ได้โดยใช้รูปแบบสีของหน้าเว็บ โดยปกติแล้ว ระบบจะอัปเดตรูปแบบสีนี้เมื่อเปลี่ยนธีมของงานนำเสนอในโปรแกรมแก้ไขสไลด์ |
| เติมพื้น | การเติมสีแสดงถึงการแสดงผลพื้นที่ว่างภายในออบเจ็กต์ การเติมที่รองรับในสไลด์มากที่สุดคือการเติมสีทึบ ซึ่งเป็นการเติมสีทึบสีเดียวลงในวัตถุ นอกจากนี้ คุณยังใช้การเติมสีกับพื้นหลังของหน้าเว็บได้ด้วย |
| โครงร่าง | เส้นขอบแสดงชุดเส้นที่ล้อมรอบองค์ประกอบของหน้า คุณควบคุมสีของเส้นได้ด้วยการเติม นอกจากนี้ ผู้โทรยังปรับความกว้างและรูปแบบเส้นประของโครงร่างได้ด้วย |
| เงา | เงาแสดงถึงเอฟเฟกต์ภาพที่จำลองเงาจริงที่วัตถุทอด ปัจจุบันเงาใน Slides API เป็นแบบอ่านอย่างเดียว |
การอัปเดตพร็อพเพอร์ตี้
หากต้องการอัปเดตพร็อพเพอร์ตี้ ให้ใช้Update...Propertiesคำขอที่เหมาะสมใน
batchUpdate
การเรียกใช้ เช่น UpdateShapeProperties สำหรับรูปร่าง คำขอเหล่านี้
ยอมรับข้อความพร็อพเพอร์ตี้แบบเต็มและใช้ฟิลด์มาสก์เพื่อระบุฟิลด์ในข้อความพร็อพเพอร์ตี้ที่ควรได้รับการอัปเดตได้
การสืบทอดพร็อพเพอร์ตี้
หน้าหรือองค์ประกอบของหน้าจะรับช่วงพร็อพเพอร์ตี้จากออบเจ็กต์ระดับบนสุดได้ พร็อพเพอร์ตี้ของออบเจ็กต์ รวมถึงพร็อพเพอร์ตี้ที่กำหนดและพร็อพเพอร์ตี้ที่สืบทอด จะเป็นตัวกำหนดลักษณะที่ปรากฏสุดท้ายของออบเจ็กต์
- พร็อพเพอร์ตี้หน้า - หน้าจะรับค่าพร็อพเพอร์ตี้ใดๆ ที่ไม่ได้กำหนด แต่กำหนดไว้ในเลย์เอาต์หรือมาสเตอร์ที่หน้าอิงตาม
- พร็อพเพอร์ตี้รูปร่าง - คุณสามารถทำเครื่องหมายรูปร่างเป็นตัวยึดตำแหน่งได้ ซึ่งจะช่วยให้คุณอ้างอิงรูปร่างตัวยึดตำแหน่งอื่นอย่างชัดเจน (ในเลย์เอาต์หลักหรือมาสเตอร์ของหน้า) เพื่อรับช่วงพร็อพเพอร์ตี้
เราจะอธิบายแนวคิดเหล่านี้เพิ่มเติมในย่อหน้าต่อไปนี้
การรับช่วงคุณสมบัติของหน้า
โครงสร้างของสไลด์ เลย์เอาต์ และสไลด์ต้นแบบจะกำหนดลำดับชั้นการรับค่า ภายในงานนำเสนอ โดยสไลด์จะรับค่าจากเลย์เอาต์ และเลย์เอาต์จะรับค่าจาก สไลด์ต้นแบบ เลย์เอาต์หลักและเลย์เอาต์หลักของสไลด์จะระบุในฟิลด์ slideProperties ของสไลด์
หน้าเว็บสามารถรับช่วงพร็อพเพอร์ตี้ เช่น background และcolor scheme จากหน้าเว็บระดับบนได้ หากต้องการรับค่าพร็อพเพอร์ตี้ หน้าลูกเพียงแค่ไม่ได้ตั้งค่าสำหรับพร็อพเพอร์ตี้นั้นในข้อความ PageProperties การไม่ "ลบล้าง" ค่าที่กำหนดโดยองค์ประกอบระดับบนสุดทำให้หน้าเว็บยอมรับค่าที่รับมา
แผนภาพต่อไปนี้แสดงสไลด์ที่รับค่าพร็อพเพอร์ตี้จากเลย์เอาต์ ซึ่งรับค่าจากสไลด์หลัก

พร็อพเพอร์ตี้ที่ใช้ในการแสดงผลสไลด์คือการรวมพร็อพเพอร์ตี้ที่กำหนดและ พร็อพเพอร์ตี้ที่รับช่วง ในตัวอย่างนี้ ค่าที่แก้ไขแล้วซึ่งใช้ในการแสดงผลสไลด์ 1 มีดังนี้
- พร็อพเพอร์ตี้ A คือ "แดง"
- PropertyB คือ "Orange"
การรับช่วงพร็อพเพอร์ตี้ของรูปร่าง
รูปร่างสามารถรับช่วงพร็อพเพอร์ตี้ เช่น การเติม เส้นขอบ หรือเงา จากรูปร่างอื่นๆ
ได้ รูปร่างคือตัวยึดตำแหน่งหากตั้งค่าฟิลด์
Shape.placeholder
ฟิลด์ Shape.placeholder.parentObjectId ของตัวยึดตำแหน่งย่อย
ระบุตัวยึดตำแหน่งหลัก เมื่อสร้างสไลด์ใหม่ตาม
เลย์เอาต์ ตัวยึดตำแหน่งในเลย์เอาต์นั้นจะปรากฏเป็นรูปร่างย่อยในสไลด์ใหม่
ในทำนองเดียวกัน ตัวยึดตำแหน่งในหน้าต้นแบบสามารถทำหน้าที่เป็นตัวยึดตำแหน่งหลักของเลย์เอาต์ได้
เมื่อกำหนดลำดับชั้นการรับค่านี้แล้ว หน้าลูกจะรับค่าพร็อพเพอร์ตี้โดย ไม่ตั้งค่าดังกล่าวในข้อความ ShapeProperties การไม่ลบล้างค่าที่กำหนดโดยรูปร่างหลักจะทำให้รูปร่างย่อย ยอมรับค่าที่รับช่วงมา
แผนภาพต่อไปนี้แสดงการรับค่าพร็อพเพอร์ตี้ระหว่างตัวยึดตำแหน่ง 3 รายการที่อยู่ในสไลด์ เลย์เอาต์ และสไลด์ต้นแบบ

พร็อพเพอร์ตี้ที่ใช้ในการแสดงรูปร่างตัวยึดตำแหน่งคือการรวมกันของพร็อพเพอร์ตี้ที่กำหนดเองและพร็อพเพอร์ตี้ที่รับช่วงมา ในตัวอย่างนี้ ค่าที่แก้ไขแล้วสำหรับรูปร่าง เหล่านี้มีดังนี้
- Placeholder1: propertyA แสดงเป็น "เหลือง" และ propertyB แสดงเป็น "เขียว"
- Placeholder2: propertyA แสดงเป็น "เหลือง" และ propertyB แสดงเป็น "ม่วง"
- Placeholder3: พร็อพเพอร์ตี้ A แสดงเป็น "สีเหลือง" พร็อพเพอร์ตี้ B แสดงเป็น "สีม่วง"
รูปร่างเป็นองค์ประกอบของหน้าเพียงประเภทเดียวที่มีองค์ประกอบระดับบนสุดได้ ส่วนออบเจ็กต์ประเภทอื่นๆ เช่น รูปภาพ ตาราง และแผนภูมิ จะเป็นตัวยึดตำแหน่งไม่ได้และไม่มี ออบเจ็กต์หลัก
"ซ่อน" พร็อพเพอร์ตี้โดยใช้ PropertyState
การแจงนับ
PropertyState
จะควบคุมว่ามีการใช้พร็อพเพอร์ตี้ของรูปร่างในการแสดงผลจริงหรือไม่
หรือใช้ค่าสำหรับการรับค่าจากรูปร่างหลักไปยังรูปร่างย่อยเท่านั้น ระบบจะไม่ใช้พร็อพเพอร์ตี้ที่มี
สถานะพร็อพเพอร์ตี้ NOT_RENDERED เมื่อแสดงรูปร่างในหน้า
ของพร็อพเพอร์ตี้นั้น แต่พร็อพเพอร์ตี้ย่อยที่มีสถานะพร็อพเพอร์ตี้ที่สอดคล้องกันเป็น RENDERED
จะยังคงรับค่าพร็อพเพอร์ตี้นี้ได้
แผนภาพต่อไปนี้แสดงการรับค่าพร็อพเพอร์ตี้ระหว่างตัวยึดตำแหน่ง 3 รายการ ที่จัดการฟิลด์ PropertyState

การแสดงผลพร็อพเพอร์ตี้รูปร่างอาจได้รับผลกระทบจากฟิลด์ PropertyState ในตัวอย่างนี้ ค่าที่แก้ไขแล้วสำหรับรูปร่างเหล่านี้มีดังนี้
- Placeholder1: propertyA แสดงเป็น "Red"
- Placeholder2: propertyA ไม่แสดงผล หากเป็นพร็อพเพอร์ตี้เค้าร่าง Placeholder2 จะไม่มีเค้าร่าง
- Placeholder3: พร็อพเพอร์ตี้ A ไม่แสดงผล
ค่าที่เป็นไปได้อีกค่าหนึ่งของ
การแจงนับ PropertyState
คือสถานะพร็อพเพอร์ตี้ INHERIT ซึ่งหมายความว่าสถานะพร็อพเพอร์ตี้
เองได้รับการสืบทอด และควรใช้ค่าของพร็อพเพอร์ตี้ระดับบน รูปร่างที่ไม่มีรูปร่างหลัก
จะมีสถานะพร็อพเพอร์ตี้เป็น INHERIT ไม่ได้