โครงสร้างและการจัดรูปแบบข้อความ

ส่วนใน Slides API คุณสามารถใส่ข้อความในรูปร่างหรือในเซลล์ของตารางได้ คุณต้องเข้าใจโครงสร้างก่อนจึงจะจัดการและจัดรูปแบบข้อความได้ และการจัดรูปแบบ

หน้านี้จะอธิบายวิธีแสดงข้อความใน Slides API

ลำดับขององค์ประกอบข้อความ

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

เช่น ลองพิจารณาเนื้อหาของสไลด์นี้ ซึ่งทั้งหมดรวมอยู่ใน กล่องข้อความ:

ภาพหน้าจอของสไลด์ธรรมดา

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

แผนภาพที่แสดงลำดับองค์ประกอบข้อความ

เพื่อให้เป็นรูปธรรมมากขึ้น ลำดับข้อความนี้จะแสดงใน Slides API เป็น ดังต่อไปนี้:

"textElements": [ {
    "endIndex": 224,
    "paragraphMarker": { "style": {} }
  }, {
    "endIndex": 130,
    "textRun": { "content": "Li lingues differe in li grammatica e li vocabules. Omnicos directe al desirabilite de un nov ", "style": {} }
  }, {
    "endIndex": 143,
    "startIndex": 130,
    "textRun": { "content": "lingua franca", "style": { "italic": True } }
  }, {
    "endIndex": 224,
    "startIndex": 143,
    "textRun": { "content": ": solmen va esser necessi far:\n", "style": {} }
  }, {
    "endIndex": 243,
    "startIndex": 224,
    "paragraphMarker": {
      "style": { "indentStart": { "magnitude": 36, "unit": "PT" }, "direction": "LEFT_TO_RIGHT", "indentFirstLine": { "magnitude": 18, "unit": "PT" }, "spacingMode": "COLLAPSE_LISTS" },
      "bullet": { "listId": "foo123", "glyph": "\u25cf" }
    }
  }, {
    "endIndex": 243,
    "startIndex": 224,
    "textRun": { "content": "uniform grammatica\n", "style": {} }
  }, {
    "endIndex": 257,
    "startIndex": 243,
    "paragraphMarker": {
        "style": { "indentStart": { "magnitude": 36, "unit": "PT" }, "direction": "LEFT_TO_RIGHT", "indentFirstLine": { "magnitude": 18, "unit": "PT" }, "spacingMode": "COLLAPSE_LISTS" },
        "bullet": { "listId": "foo123", "glyph": "\u25cf" }
    }
}, {
    "endIndex": 257,
    "startIndex": 243,
    "textRun": { "content": "Pronunciation\n", "style": {} }
}, {
    "endIndex": 277,
    "startIndex": 257,
    "paragraphMarker": {
        "style": { "indentStart": { "magnitude": 36, "unit": "PT" }, "indentFirstLine": { "magnitude": 18, "unit": "PT" }, "spacingMode": "COLLAPSE_LISTS" },
        "bullet": { "listId": "foo123", "glyph": "\u25cf" }
    }
}, {
    "endIndex": 277,
    "startIndex": 257,
    "textRun": { "content": "plu sommun paroles.\n", "style": {} }
}, {
    "endIndex": 500,
    "startIndex": 277,
    "paragraphMarker": { "style": {} }
}, {
    "endIndex": 500,
    "startIndex": 277,
    "textRun": { "content": "Ka swu thefognay, tay waddeant varpa u inzo.\n", "style": {} }
}]

เนื้อหา TextElement

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

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

ย่อหน้าอาจเป็นรายการสัญลักษณ์หัวข้อย่อยหรือรายการที่เรียงลำดับเลขก็ได้ หากมี เนื้อหาในช่อง ParagraphMarker.bullet จะมีรหัสรายการ รหัสนี้อ้างอิงองค์ประกอบรายการที่มีอยู่ภายใน TextContent ควบคู่ไปกับลำดับ TextElement ย่อหน้าภายในรายการเชิงตรรกะเดียวกันจะอ้างถึงรหัสรายการเดียวกัน
TextRun องค์ประกอบข้อความนี้แสดงสตริงข้อความต่อเนื่องกัน โดยทั้งหมดมีรูปแบบข้อความเดียวกัน ข้อความจะไม่ข้ามขอบเขตของย่อหน้า แม้ว่าข้อความปิดท้าย 1 ย่อหน้าจะมีการจัดรูปแบบเหมือนกับข้อความที่เริ่มย่อหน้าถัดไป แต่เนื้อหาจะถูกแยกออกหลังอักขระขึ้นบรรทัดใหม่เพื่อสร้างข้อความแยกต่างหาก

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

การแก้ไขเนื้อหาข้อความ

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

การแทรกข้อความ

คุณสามารถแทรกข้อความที่ดัชนีโดยใช้ InsertTextRequest ในการโทรหา batchUpdate. ช่วงเวลานี้ ช่อง insertionIndex ของเมธอดจะระบุตำแหน่งที่จะแทรกข้อความ คุณสามารถ ประมวลผลดัชนีนี้โดยใช้ช่องดัชนีเริ่มต้นและสิ้นสุดภายในเอลิเมนต์ข้อความ

การแทรกข้อความมีผลข้างเคียงบางอย่างที่แสดงถึงลักษณะการทำงานของสไลด์ ตัวแก้ไข:

  • การแทรกอักขระขึ้นบรรทัดใหม่จะสร้างย่อหน้าใหม่โดยปริยาย สร้างองค์ประกอบของข้อความ ParagraphMarker ที่เริ่มต้นที่ดัชนีของบรรทัดใหม่ และสิ้นสุดที่บรรทัดใหม่ถัดไป รูปแบบย่อหน้า รวมถึงสัญลักษณ์หัวข้อย่อย และแสดงรายละเอียด — ถูกคัดลอกจากย่อหน้าปัจจุบันไปยังย่อหน้าใหม่ ย่อหน้า
  • โดยทั่วไปแล้ว รูปแบบของอักขระที่แทรกจะได้รับการกำหนดโดยอัตโนมัติ และเก็บรูปแบบข้อความแบบเดียวกับที่มีอยู่ในดัชนีการแทรก ด้วยเหตุนี้ ข้อความมักจะแทรกอยู่ใน TextRun ที่มีอยู่ ดัชนี คุณอัปเดตสไตล์นี้ในภายหลังได้โดยใช้ UpdateTextStyle อีกครั้ง

กำลังลบข้อความ

คุณสามารถลบข้อความเป็นช่วงได้โดยใช้ DeleteTextRequest ข้อความในการโทรถึง batchUpdate. การลบข้อความมีข้อจำกัดบางอย่างดังนี้

  • การลบที่ข้ามขอบเขตของย่อหน้าจะรวม 2 ย่อหน้าเข้าด้วยกัน กำลังลบองค์ประกอบของข้อความ ParagraphMarker ที่ใช้แยกกัน
  • ย่อหน้าที่ผสานใหม่จะใช้ลักษณะย่อหน้าแบบรวม กล่าวคือ ในเครื่องมือแก้ไขสไลด์
  • การลบที่มีช่วงครอบคลุมถึงการเรียกใช้ข้อความจะนำเนื้อหาทั้งหมดออกจาก และจะลบข้อความที่เรียกใช้เองด้วย
  • การลบที่มีช่วงครอบคลุมเอลิเมนต์ AutoText จะลบ องค์ประกอบ AutoText

กำลังอัปเดตรูปแบบข้อความ

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

  • ระบบจะกำหนดลักษณะของย่อหน้า เช่น การเยื้อง การจัดข้อความ และสัญลักษณ์หัวข้อย่อย ตามคุณสมบัติบนเครื่องหมายย่อหน้า
  • รูปแบบอักขระ เช่น ตัวหนา ตัวเอียง และขีดเส้นใต้ จะกำหนดโดย คุณสมบัติพิเศษในการเรียกใช้ข้อความแต่ละข้อความ

กำลังอัปเดตรูปแบบตัวละคร

คุณสามารถอัปเดตรูปแบบอักขระได้โดยใช้ UpdateTextStyleRequest ข้อความในการโทรถึง batchUpdate.

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

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

กำลังอัปเดตรูปแบบย่อหน้า

คุณอัปเดตรูปแบบย่อหน้าได้โดยใช้ UpdateParagraphStyleRequest ข้อความในการโทรถึง batchUpdate.

Slides API รองรับ CreateParagraphBulletsRequest ที่มีฟังก์ชันการทำงานเหมือนกับชุดค่าที่กำหนดล่วงหน้าในเครื่องมือแก้ไขสไลด์ สร้างรายการสัญลักษณ์หัวข้อย่อยและรายการที่เรียงลำดับเลข ในทำนองเดียวกัน DeleteParagraphBulletsRequest นำสัญลักษณ์หัวข้อย่อยที่มีอยู่ในย่อหน้าออก

รูปแบบที่รับช่วงมา

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

ส่วนนี้เน้นไปที่วิธีการทำงานของการสืบทอดสไตล์เพื่อสร้าง ในรูปแบบข้อความที่แสดงผลในสไลด์

การนำเสนอรูปแบบในตัวยึดตำแหน่ง

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

  • คุณสมบัติของ ParagraphMaker องค์ประกอบของข้อความจะกำหนดการจัดรูปแบบย่อหน้า
  • คุณสมบัติของ TextRun องค์ประกอบข้อความจะกำหนดการจัดรูปแบบอักขระ
  • เนื้อหาของตัวยึดตำแหน่งระดับบนสุดมี ParagraphMarker/TextRun 8 รายการ คู่กัน (เพื่อรองรับการซ้อนรายการ 8 ระดับ)
  • ตัวยึดตำแหน่งย่อยจะรับคุณสมบัติข้อความเริ่มต้นมาจากข้อความเหล่านี้ องค์ประกอบในเนื้อหาข้อความระดับบนสุด

แผนภาพต่อไปนี้แสดงวิธีหนึ่งในการแสดงภาพความสัมพันธ์เหล่านี้

แผนภาพของรูปร่างย่อยที่รับช่วงคุณสมบัติของข้อความ

ParagraphMarker/TextRun แรกในรูปร่างหลักกำหนด การจัดรูปแบบข้อความที่รับมา การจัดรูปแบบใน 7 คู่ที่เหลือจะส่งผลต่อ ย่อหน้าในระดับหัวข้อย่อยที่ซ้อนกันมากขึ้นทีละชั้น

คู่องค์ประกอบของข้อความระดับบนสุด การจัดรูปแบบย่อยที่ควบคุมได้
แรก ParagraphMarker
TextRun แรก
รูปแบบข้อความของรายการระดับ 0 (ด้านนอกสุด) และย่อหน้าที่ไม่อยู่ในรายการทั้งหมด
ที่ 2 ParagraphMarker
2 TextRun
รูปแบบข้อความของ ที่เหลืออยู่ รายการระดับ (ที่ซ้อนกัน) 1-7
วันที่ 3 ParagraphMarker
ที่ 3 TextRun
ที่ 4 ParagraphMarker
4 TextRun
วันที่ 5 ParagraphMarker
ที่ 5 TextRun
ที่ 6 ParagraphMarker
ที่ 6 TextRun
ที่ 7 ParagraphMarker
7 TextRun
ที่ 8 ParagraphMarker
8 TextRun

หากต้องการเข้าถึงองค์ประกอบข้อความคู่เหล่านี้ ให้ใช้ดัชนีที่ชัดเจนภายในองค์ประกอบ textElements ตามที่แสดงในข้อมูลโค้ดด้านล่าง ซึ่งแสดงการตั้งค่า การจัดรูปแบบเริ่มต้น (รับค่าได้) สำหรับย่อหน้าระดับ 0 และย่อหน้าที่ไม่มีในรายการ:

"text": {
  "textElements": [  {
     "startIndex": 0,
     "endIndex": 1,
     "paragraphMarker": {
       "style": {  "alignment": "START",  ...  },
       "bullet": {  "nestingLevel": 0,  ...  }
     }
   },{
     "startIndex": 0,
     "endIndex": 1,
     "textRun": {
       "content": "\n",
       "style": {  "foregroundColor": {  "opaqueColor": {  "themeColor": "DARK1"  }  },  }
     }
   },{
     ...
   } ]
 }

โปรดทราบว่าช่อง content ของ TextRun ของรูปร่างหลักประกอบด้วยค่าเสมอ อักขระขึ้นบรรทัดใหม่ 1 ตัว

สามารถลบล้างรูปแบบที่รับช่วงมาได้

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

การนำคุณสมบัติของรูปแบบที่ชัดเจนออกจากรูปร่างย่อยเพื่อไม่ให้เป็นรูปร่างนั้นอีกต่อไป จะทำให้รับค่าจากระดับบน

ตัวอย่าง

สมมติว่าสืบทอดค่าที่แสดงในแผนภาพด้านบน สมมติว่าเป็นรูปร่าง ParentPlaceholder มีเนื้อหาข้อความต่อไปนี้

"text": {
  "textElements": [
    { "startIndex": 0,  "endIndex": 1,
      "paragraphMarker": {
        "style": {"alignment": "START", ...},
        "bullet": {"nestingLevel": 0, ...}
      }
    },
    { "startIndex": 0,  "endIndex": 1,
      "textRun": {
        "content": "\n",
        "style": {"foregroundColor": {"opaqueColor": {"themeColor": "DARK1"} }, }
        ...
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "paragraphMarker": {
        "style": {"alignment": "END", ...},
        "bullet": {"nestingLevel": 1, ...}
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "textRun": {
        "content": "\n",
        "style": {"foregroundColor": {"opaqueColor": {"themeColor": "LIGHT1"} }, ...}
      }
    },
   ...
  ]
}

และสมมติว่ารูปร่าง ChildPlaceholder มีเนื้อหาข้อความต่อไปนี้

"text": {
  "textElements": [
    { "startIndex": 0,  "endIndex": 1,
      "paragraphMarker": {
        "style": {},
      }
    },
    { "startIndex": 0,  "endIndex": 1,
      "textRun": {
        "content": "This is my first paragraph\n",
        "style": {},
      }
      ...
    },
    {  "startIndex": 1,  "endIndex": 2,
      "paragraphMarker": {
        "style": {},
        "bullet": {
          "nestingLevel": 1,
          "listId": "someListId",
          "glyph": "●"
        }
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "textRun": {
        "content": "This paragraph is in a list\n",
        "style": {},
        ...
      }
    }
  ]
}

ซึ่งจะทำให้เกิดผลลัพธ์ที่อธิบายไว้ในย่อหน้าต่อไปนี้

การสืบทอดรูปแบบสำหรับย่อหน้าธรรมดา

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

  • ข้อความ: "นี่คือย่อหน้าแรกของฉัน" คือข้อความที่แสดงผล ตัวข้อความจะไม่เป็น ที่รับช่วงมา
  • การจัดข้อความ: ข้อความจะแสดงผลโดยมีการจัดข้อความ START ซึ่งรับค่ามาจาก ParagraphMarker แรกของผู้ปกครอง
  • สีพื้นหน้า: ข้อความแสดงผลด้วยสีพื้นหน้า DARK1 รับค่าจาก TextRun รายการแรกของระดับบนสุด

การสืบทอดรูปแบบสำหรับย่อหน้ารายการ

ย่อหน้าถัดไปซึ่งมีข้อความ "ย่อหน้านี้อยู่ในรายการ" อยู่ใน รายการสัญลักษณ์หัวข้อย่อยในระดับที่ 1 เนื่องจาก ParagraphMarker ที่เกี่ยวข้อง ตั้งค่าฟิลด์ bullet เป็นระดับนี้ ผลที่เกิดขึ้นคือ จึงรับค่าข้อความและ รูปแบบย่อหน้าจากระดับที่ 1 ซ้อนกันในระดับบนสุด ซึ่งส่งผลให้เกิด การแสดงภาพต่อไปนี้:

  • ข้อความ: "ย่อหน้านี้อยู่ในรายการ" คือข้อความที่แสดงผล ตัวข้อความจะไม่เป็น ที่รับช่วงมา
  • การจัดข้อความ: ข้อความจะแสดงผลด้วย "END" โดยสืบทอดมาจาก ParagraphMarkerที่ 2 ของผู้ปกครอง
  • สีพื้นหน้า: ข้อความแสดงผลด้วยสีพื้นหน้าของข้อความ LIGHT1 รับมาจาก TextRun รายการที่ 2 ของระดับบนสุด

การโต้ตอบระหว่างการอัปเดตและการรับรูปแบบข้อความและย่อหน้า

รูปแบบข้อความที่ไม่ได้ตั้งค่าในรูปร่างย่อยจะรับค่าจาก หลัก รูปแบบข้อความที่กำหนดไว้ในรายการย่อยจะ "ลบล้าง" ค่าระดับบนสุด ในขอบเขตภายในบางอย่าง

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

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

ตัวอย่าง

ลองพิจารณาคำจำกัดความในตัวอย่างก่อนหน้านี้สำหรับ ChildPlaceholder และ ParentPlaceholder

สมมติว่าคุณส่ง UpdateTextStyleRequest นี้

{ "updateTextStyle": {
    "objectId": "ChildPlaceholder",
    "style": {"foregroundColor": {"opaqueColor": {"themeColor": "DARK1"} }, },
    "textRange": { "type": "ALL" },
    "fields": "foregroundColor"
  }
}

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

  • ย่อหน้าแรก: foregroundColor ใหม่ตรงกับรายการที่รับช่วงมา foregroundColor ดังนั้นรูปแบบนี้จะไม่มีการเปลี่ยนแปลงและยังคงรับค่าเดิม
  • ย่อหน้าที่ 2: foregroundColor ใหม่ไม่ตรงกับที่รับช่วงมา foregroundColor ดังนั้นสีพื้นหน้าของย่อหน้าที่ 2 จะได้รับการอัปเดตเป็น DARK1

เนื้อหาข้อความของตัวยึดตำแหน่งเด็กตอนนี้คือ

"text": {
  "textElements": [
    { "startIndex": 0,  "endIndex": 1,
      "paragraphMarker": {
        "style": {},
      }
    },
    { "startIndex": 0,  "endIndex": 1,
      "textRun": {
        "content": "This is my first paragraph\n",
        "style": {},
      }
      ...
    },
    { "startIndex": 1,  "endIndex": 2,
      "paragraphMarker": {
        "style": {},
        "bullet": {"nestingLevel": 1, "listId": "someListId", "glyph": "●" }
      }
    },
    { "startIndex": 1,  "endIndex": 2,
      "textRun": {
        "content": "This paragraph is in a list\n",
        "style": {"foregroundColor": {"opaqueColor": {"themeColor": "DARK1"} }, },
        ...
      }
    }
  ]
}

รูปแบบข้อความสัญลักษณ์หัวข้อย่อย

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

รูปแบบข้อความสัญลักษณ์หัวข้อย่อยมีลำดับขั้นการสืบทอดค่าที่แตกต่างจากการสืบทอดค่าเล็กน้อย รูปแบบข้อความปกติ

  1. หัวข้อย่อยในระดับที่ซ้อนบางระดับจะรับค่าจากชุด TextStyle ก่อน ในช่อง NestingLevel.bullet_style ภายในออบเจ็กต์ List ของหัวข้อย่อย
  2. ถัดไปจะรับค่าจาก NestingLevel.bullet_style ที่เกี่ยวข้องใน List ของตัวยึดตำแหน่งระดับบนสุด
  3. สุดท้ายก็ต้องการรับค่าจากออบเจ็กต์ตัวยึดตำแหน่งระดับบนสุด