หน้าเว็บ องค์ประกอบของหน้า และคุณสมบัติ

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

  • โมเดลเชิงแนวคิดของคอมโพเนนต์งานนำเสนอ
  • วิธีที่ API แสดงคอมโพเนนต์เหล่านี้
  • พร็อพเพอร์ตี้การจัดรูปแบบของคอมโพเนนต์

การอ่านภาพรวมแนวคิดนี้และภาพรวมแนวคิดอื่นๆ จะช่วยให้คุณเข้าใจ และใช้คู่มือวิธีการใช้งาน เอกสารอ้างอิง และตัวอย่าง โค้ดได้ง่ายขึ้น

งานนำเสนอ หน้า และองค์ประกอบของหน้า

องค์ประกอบคอนเทนเนอร์ด้านนอกสุดใน Google สไลด์คืองาน นำเสนอ ซึ่งเป็นหน่วยที่บันทึกใน Google ไดรฟ์ แชร์กับผู้ใช้รายอื่น และอื่นๆ ได้

งานนำเสนอแต่ละรายการมี หน้า หลายประเภท หน้าประเภทหนึ่งคือ a สไลด์ ซึ่งเป็นหน้าที่ผู้ใช้ เห็นและเปลี่ยนไปมาระหว่างการแสดงผลงานนำเสนอบนหน้าจอ

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

แผนภาพสถาปัตยกรรมของสไลด์

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

แผนภาพสถาปัตยกรรมของธีม

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

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

นอกจากนี้ยังมีหน้าอีก 2 ประเภท ได้แก่ หน้าบันทึกย่อและมาสเตอร์ บันทึกย่อ ซึ่งส่วนใหญ่เกี่ยวข้องกับการทำงานกับบันทึกย่อ ของผู้พูด

ประเภทและโครงสร้างการแสดง API

ส่วนนี้อธิบายวิธีที่โมเดลเชิงแนวคิดของ Google สไลด์ตามที่อธิบายไว้ข้างต้นแสดงใน Slides API

แผนภาพต่อไปนี้แสดงความสัมพันธ์ระหว่างงานนำเสนอ หน้า และองค์ประกอบของหน้าเป็นประเภทใน Slides API

แผนภาพสไตล์ ERD

ส่วนต่อไปนี้แสดงวิธีแสดงประเภทเหล่านี้ใน JSON

งานนำเสนอ

งานนำเสนอมี พร็อพเพอร์ตี้หลายรายการและมีหน้าต่างๆ ดังนี้

{
  "presentationId": string,
  "pageSize": { object(Size) },
  "slides": [ { object(Page) } ],
  "title": string,
  "masters": [ { object(Page) } ],
  "layouts": [ { object(Page) } ],
  "notesMaster": object(Page),
  "locale": string,
}

หน้า

หน้ามี ชุดพร็อพเพอร์ตี้และมีองค์ประกอบของหน้าต่างๆ ดังนี้

{
  "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 ช่วยให้คุณอ่านและอัปเดตลักษณะที่ปรากฏของหน้าและองค์ประกอบของหน้าในงานนำเสนอได้ องค์ประกอบของหน้าแต่ละประเภทรองรับพร็อพเพอร์ตี้ที่แตกต่างกัน ซึ่งควบคุมวิธีแสดงผลองค์ประกอบของหน้า

องค์ประกอบของหน้าแต่ละประเภทมีองค์ประกอบพร็อพเพอร์ตี้และข้อความอัปเดตพร็อพเพอร์ตี้ที่สอดคล้องกัน เช่น

ชุดองค์ประกอบ/พร็อพเพอร์ตี้/คำขออัปเดตชุดเดียวกันมีไว้สำหรับองค์ประกอบของหน้าแต่ละประเภท: รูปภาพ/imageProperties/UpdateImageProperties, เป็นต้น

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

ประเภทพร็อพเพอร์ตี้

มีพร็อพเพอร์ตี้บางรายการที่ใช้ร่วมกันระหว่างออบเจ็กต์หลายประเภทใน Slides API ดังนี้

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

การอัปเดตพร็อพเพอร์ตี้

หากต้องการอัปเดตพร็อพเพอร์ตี้ ให้ใช้คำขอที่เหมาะสม Update...Propertiesในการเรียก batchUpdate เช่น UpdateShapeProperties สำหรับรูปร่าง คำขอเหล่านี้ ยอมรับข้อความพร็อพเพอร์ตี้แบบเต็มและสามารถใช้ มาสก์ของฟิลด์เพื่อกำหนดฟิลด์ใน ข้อความพร็อพเพอร์ตี้ที่ควรได้รับการอัปเดต

การสืบทอดพร็อพเพอร์ตี้

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

  • พร็อพเพอร์ตี้ของหน้า \- หน้าจะสืบทอดพร็อพเพอร์ตี้ที่ไม่ได้กำหนดไว้ แต่กำหนดไว้ในเลย์เอาต์หรือมาสเตอร์ที่หน้าอิงตาม
  • พร็อพเพอร์ตี้ของรูปร่าง \- คุณสามารถทำเครื่องหมายรูปร่างเป็น ตัวยึดตำแหน่ง ซึ่งจะช่วยให้ คุณอ้างอิงรูปร่างตัวยึดตำแหน่งอื่น (ในเลย์เอาต์ระดับบนของหน้า หรือมาสเตอร์) อย่างชัดเจนเพื่อสืบทอดพร็อพเพอร์ตี้ได้

เราจะอธิบายแนวคิดเหล่านี้เพิ่มเติมในย่อหน้าต่อไปนี้

การสืบทอดพร็อพเพอร์ตี้ของหน้า

โครงสร้างของสไลด์ เลย์เอาต์ และมาสเตอร์กำหนดลำดับชั้นการสืบทอดภายในงานนำเสนอ โดยสไลด์จะสืบทอดจากเลย์เอาต์ และเลย์เอาต์จะสืบทอดจากมาสเตอร์ เลย์เอาต์หลักและมาสเตอร์ของสไลด์จะระบุไว้ในช่อง slideProperties ของสไลด์

หน้าสามารถสืบทอดพร็อพเพอร์ตี้ เช่น พื้นหลัง และ โทนสี, จากหน้าระดับบนได้ หากต้องการสืบทอดพร็อพเพอร์ตี้ หน้าลูกเพียงแค่ไม่ได้ตั้งค่า สำหรับพร็อพเพอร์ตี้นั้นใน PageProperties การไม่ "ลบล้าง" ค่าที่กำหนดโดยระดับบนจะทำให้หน้ายอมรับค่าที่สืบทอดมา

แผนภาพต่อไปนี้แสดงสไลด์ที่สืบทอดพร็อพเพอร์ตี้จากเลย์เอาต์ ซึ่งสืบทอดจากมาสเตอร์

การรับช่วงคุณสมบัติของสไลด์

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

  • พร็อพเพอร์ตี้ A คือ "สีแดง"
  • พร็อพเพอร์ตี้ B คือ "สีส้ม"

การสืบทอดพร็อพเพอร์ตี้ของรูปร่าง

รูปร่างสามารถสืบทอดพร็อพเพอร์ตี้ เช่น การเติมพื้น โครงร่าง หรือเงา จากรูปร่างอื่นๆ ได้ รูปร่างจะเป็น ตัวยึดตำแหน่ง หากมีการตั้งค่าช่อง Shape.placeholder ช่อง Shape.placeholder.parentObjectId ของตัวยึดตำแหน่งลูกจะระบุตัวยึดตำแหน่งระดับบน เมื่อคุณสร้างสไลด์ใหม่โดยอิงตามเลย์เอาต์ ตัวยึดตำแหน่งใดๆ ในเลย์เอาต์นั้นจะปรากฏเป็นรูปร่างลูกในสไลด์ใหม่ ในทำนองเดียวกัน ตัวยึดตำแหน่งในหน้ามาสเตอร์สามารถทำหน้าที่เป็นระดับบนของตัวยึดตำแหน่งของเลย์เอาต์ได้

เมื่อกำหนดลำดับชั้นการสืบทอดนี้แล้ว หน้าลูกจะสืบทอดพร็อพเพอร์ตี้โดย ไม่ได้ตั้งค่าพร็อพเพอร์ตี้นั้นใน ShapeProperties การไม่ลบล้างค่าที่กำหนดโดยระดับบนจะทำให้รูปร่างลูกยอมรับค่าที่สืบทอดมา

แผนภาพต่อไปนี้แสดงการสืบทอดพร็อพเพอร์ตี้ระหว่างตัวยึดตำแหน่ง 3 รายการที่อยู่ในสไลด์ เลย์เอาต์ และมาสเตอร์

การรับช่วงพร็อพเพอร์ตี้รูปร่าง

พร็อพเพอร์ตี้ที่ใช้ในการแสดงผลรูปร่างตัวยึดตำแหน่งเป็นการรวมกันของพร็อพเพอร์ตี้ที่รูปร่างกำหนดและพร็อพเพอร์ตี้ที่สืบทอดมา ในตัวอย่างนี้ ค่าที่ได้สำหรับรูปร่างเหล่านี้มีดังนี้

  • ตัวยึดตำแหน่ง 1: พร็อพเพอร์ตี้ A แสดงผลเป็น "สีเหลือง" พร็อพเพอร์ตี้ B แสดงผลเป็น "สีเขียว"
  • ตัวยึดตำแหน่ง 2: พร็อพเพอร์ตี้ A แสดงผลเป็น "สีเหลือง" พร็อพเพอร์ตี้ B แสดงผลเป็น "สีม่วง"
  • ตัวยึดตำแหน่ง 3: พร็อพเพอร์ตี้ A แสดงผลเป็น "สีเหลือง" พร็อพเพอร์ตี้ B แสดงผลเป็น "สีม่วง"

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

"การซ่อน" พร็อพเพอร์ตี้โดยใช้ PropertyState

การแจงนับ PropertyState จะควบคุมว่าระบบจะใช้พร็อพเพอร์ตี้ของรูปร่างในการแสดงผลจริงหรือไม่ หรือจะใช้ค่าสำหรับการสืบทอดโดยรูปร่างลูกเท่านั้น ระบบจะไม่ใช้พร็อพเพอร์ตี้ที่มี สถานะพร็อพเพอร์ตี้ NOT_RENDERED เมื่อแสดงผลรูปร่างใน หน้า แต่ลูกที่มีสถานะพร็อพเพอร์ตี้ที่สอดคล้องกันเป็น RENDERED จะยังคงสืบทอดพร็อพเพอร์ตี้นี้ได้

แผนภาพต่อไปนี้แสดงการสืบทอดพร็อพเพอร์ตี้ระหว่างตัวยึดตำแหน่ง 3 รายการที่จัดการช่อง PropertyState

สถานะและการรับช่วงพร็อพเพอร์ตี้ต่อ

การแสดงผลพร็อพเพอร์ตี้ของรูปร่างอาจได้รับผลกระทบจากช่อง PropertyState ในตัวอย่างนี้ ค่าที่ได้สำหรับรูปร่างเหล่านี้มีดังนี้

  • ตัวยึดตำแหน่ง 1: พร็อพเพอร์ตี้ A แสดงผลเป็น "สีแดง"
  • ตัวยึดตำแหน่ง 2: พร็อพเพอร์ตี้ A ไม่แสดงผล หากเป็นพร็อพเพอร์ตี้โครงร่าง ตัวยึดตำแหน่ง 2 จะไม่มีโครงร่าง
  • ตัวยึดตำแหน่ง 3: พร็อพเพอร์ตี้ A ไม่แสดงผล

การแจงนับ PropertyState มีค่าที่เป็นไปได้อีก 1 ค่า นั่นคือสถานะพร็อพเพอร์ตี้ INHERIT หมายความว่าสถานะพร็อพเพอร์ตี้เองก็ สืบทอดมา และควรใช้ค่าของระดับบน รูปร่างที่ไม่มีระดับบนจะมีสถานะพร็อพเพอร์ตี้เป็น INHERIT ไม่ได้