प्रज़ेंटेशन में आइटम चुनना

चुना गया कॉन्टेंट वह कॉन्टेंट होता है जो किसी खुले प्रज़ेंटेशन पेज में चुना गया हो. जैसे, हाइलाइट किया गया टेक्स्ट या टेबल. इस गाइड में, Apps Script का इस्तेमाल करके किसी चालू प्रज़ेंटेशन में चुने गए टेक्स्ट को पाने और सेट करने का तरीका बताया गया है.

चुना गया डेटा, स्क्रिप्ट शुरू होने के समय का स्नैपशॉट होता है. अगर स्क्रिप्ट चलने के दौरान उपयोगकर्ता क्लिक करता है और चुना गया विकल्प बदल जाता है, तो वे बदलाव नहीं दिखेंगे.

चुनने का तरीका और चुने गए आइटम

Selection क्लास का इस्तेमाल करके, चुने गए हिस्से को पढ़ा जा सकता है. चुने गए ऑब्जेक्ट के टाइप के आधार पर, क्लास में चुने गए ऑब्जेक्ट पाने के लिए कई तरीके होते हैं.

SelectionType एनम, चुने गए ऑब्जेक्ट के खास टाइप को दिखाता है. उदाहरण के लिए, अगर उपयोगकर्ता ने किसी आकार में कुछ टेक्स्ट चुना है, तो चुने गए टेक्स्ट का टाइप TEXT होगा. इस मामले में, selection.getTextRange() तरीके का इस्तेमाल करके, चुने गए टेक्स्ट की रेंज को वापस पाया जा सकता है.

आपके पास चुने गए ऑब्जेक्ट को भी वापस पाने का विकल्प है. ऊपर दिए गए उदाहरण के आधार पर, selection.getPageElementRange().getPageElements()[0] का इस्तेमाल करके, चुने गए टेक्स्ट वाले आकार को वापस पाया जा सकता है. इसी तरह, जिस पेज पर घेरने वाला आकार है वह मौजूदा ऐक्टिव पेज है. उस पेज को वापस पाने के लिए, selection.getCurrentPage() का इस्तेमाल करें.

चुने गए टेक्स्ट को पढ़ना

चुने गए टेक्स्ट को पढ़ने के लिए, Presentation.getSelection() मैथड का इस्तेमाल करें, जैसा कि इस उदाहरण में दिखाया गया है:

slides/selection/selection.gs
const selection = SlidesApp.getActivePresentation().getSelection();

मौजूदा पेज को पढ़ना

उपयोगकर्ता जिस मौजूदा पेज को देख रहा है उसे वापस पाने के लिए, getSelection() और getCurrentPage() तरीकों का इस्तेमाल इस तरह करें:

slides/selection/selection.gs
const currentPage = SlidesApp.getActivePresentation().getSelection().getCurrentPage();

ध्यान दें कि मौजूदा पेज इनमें से किसी भी तरह का हो सकता है:

मौजूदा पेज पर एक या उससे ज़्यादा ऑब्जेक्ट चुने जा सकते हैं. साथ ही, SelectionType से चुने गए ऑब्जेक्ट का टाइप तय होता है.

चुने गए विकल्प के टाइप के आधार पर, चुना गया टेक्स्ट पढ़ना

यहां दिए गए उदाहरण में बताया गया है कि चुने गए आइटम को सही तरीके से पढ़ने के लिए, चुने गए आइटम के टाइप के हिसाब से, चुने गए आइटम के टाइप का इस्तेमाल कैसे किया जा सकता है.

slides/selection/selection.gs
const selection = SlidesApp.getActivePresentation().getSelection();
const selectionType = selection.getSelectionType();
let currentPage;
switch (selectionType) {
  case SlidesApp.SelectionType.NONE:
    console.log('Nothing selected');
    break;
  case SlidesApp.SelectionType.CURRENT_PAGE:
    currentPage = selection.getCurrentPage();
    console.log('Selection is a page with ID: ' + currentPage.getObjectId());
    break;
  case SlidesApp.SelectionType.PAGE_ELEMENT:
    const pageElements = selection.getPageElementRange().getPageElements();
    console.log('There are ' + pageElements.length + ' page elements selected.');
    break;
  case SlidesApp.SelectionType.TEXT:
    const tableCellRange = selection.getTableCellRange();
    if (tableCellRange !== null) {
      const tableCell = tableCellRange.getTableCells()[0];
      console.log('Selected text is in a table at row ' +
        tableCell.getRowIndex() + ', column ' +
        tableCell.getColumnIndex());
    }
    const textRange = selection.getTextRange();
    if (textRange.getStartIndex() === textRange.getEndIndex()) {
      console.log('Text cursor position: ' + textRange.getStartIndex());
    } else {
      console.log('Selection is a text range from: ' + textRange.getStartIndex() + ' to: ' +
        textRange.getEndIndex() + ' is selected');
    }
    break;
  case SlidesApp.SelectionType.TABLE_CELL:
    const tableCells = selection.getTableCellRange().getTableCells();
    const table = tableCells[0].getParentTable();
    console.log('There are ' + tableCells.length + ' table cells selected.');
    break;
  case SlidesApp.SelectionType.PAGE:
    const pages = selection.getPageRange().getPages();
    console.log('There are ' + pages.length + ' pages selected.');
    break;
  default:
    break;
}

चुने गए टेक्स्ट को पढ़ना

चुने गए टेक्स्ट को पढ़ने के लिए, Selection.getTextRange() तरीके का इस्तेमाल किया जा सकता है. टेक्स्ट चुनने के दो तरीके हैं:

  • रेंज चुनना: अगर किसी आकार में "नमस्ते" टेक्स्ट है और "नमस्ते" चुना गया है, तो दिखाई गई रेंज में startIndex=0 और endIndex=2 होगा.
  • कर्सर से चुना गया टेक्स्ट: अगर किसी आकार में "नमस्ते" टेक्स्ट है और कर्सर "ह" ("ह|नमस्ते") के बाद है, तो दिखाई गई रेंज खाली होगी. इसमें startIndex=1 और endIndex=1 होगा.

चुने गए हिस्से में बदलाव करना

स्क्रिप्ट, उपयोगकर्ता के चुने गए विकल्प में बदलाव कर सकती है. स्क्रिप्ट की मदद से प्रज़ेंटेशन में चुने गए आइटम में किए गए बदलाव, स्क्रिप्ट के चलने के दौरान चुने गए आइटम में दिखते हैं.

चुने गए विकल्प में हुए बदलाव, उपयोगकर्ता के ब्राउज़र पर सिर्फ़ तब दिखते हैं, जब स्क्रिप्ट का रन होना पूरा हो जाता है या Presentation.saveAndClose() को कॉल किया जाता है.

मौजूदा पेज चुनना

selectAsCurrentPage() तरीके को कॉल करके, चालू प्रज़ेंटेशन में किसी पेज को मौजूदा पेज के तौर पर चुना जा सकता है. इस तरीके से, पेज का कोई भी पिछला एलिमेंट, पेज या चुना गया टेक्स्ट हट जाता है. इसलिए, मौजूदा पेज पर इस तरीके का इस्तेमाल करके, पेज पर चुने गए किसी भी विकल्प से चुने हुए का निशान हटाया जा सकता है. उदाहरण के लिए:

slides/selection/selection.gs
// Select the first slide as the current page selection and remove any previous selection.
  const selection = SlidesApp.getActivePresentation().getSelection();
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.selectAsCurrentPage();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.CURRENT_PAGE
// selection.getCurrentPage() = slide
//

पेज एलिमेंट चुनना

किसी पेज में मौजूद पेज एलिमेंट को चुनने के लिए, PageElement.select() तरीके का इस्तेमाल करें. इससे, पहले से चुने गए पेज एलिमेंट भी अनचुने हो जाते हैं.

उदाहरण के लिए:

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const pageElement = slide.getPageElements()[0];
  // Only select this page element and remove any previous selection.
  pageElement.select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = pageElement
//

एक से ज़्यादा पेज एलिमेंट चुनना

चुने गए पेज एलिमेंट में और एलिमेंट जोड़ने के लिए, PageElement.select(false) तरीके का इस्तेमाल करें. सभी पेज एलिमेंट, मौजूदा पेज में होने चाहिए.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // First select the slide page, as the current page selection.
  slide.selectAsCurrentPage();
  // Then select all the page elements in the selected slide page.
  const pageElements = slide.getPageElements();
  for (let i = 0; i < pageElements.length; i++) {
    pageElements[i].select(false);
  }
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = pageElements
//

चुने गए हिस्से को बदलना

आपकी स्क्रिप्ट में किए गए बदलाव, मौजूदा चुनी गई वैल्यू को बदल सकते हैं. इससे, बदलाव के बाद चुनी गई वैल्यू बदल जाती है. उदाहरण के लिए:

  1. मान लें कि आपने दो आकार A और B चुने हैं.
  2. इसके बाद, आपकी स्क्रिप्ट आकार A को हटा देती है.
  3. इस वजह से, चुने गए आइटम में बदलाव किया जाता है, ताकि सिर्फ़ आकार B चुना जा सके.

नीचे दिए गए उदाहरण में दिखाया गया है कि चुने गए पेज एलिमेंट में बदलाव करके, चुने गए एलिमेंट को कैसे बदला जा सकता है.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape1 = slide.getPageElements()[0].asShape();
  const shape2 = slide.getPageElements()[1].asShape();
  // Select both the shapes.
  shape1.select();
  shape2.select(false);
  // State of selection
  //
  // selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
  // selection.getCurrentPage() = slide
  // selection.getPageElementRange().getPageElements() = [shape1, shape2]
  //
  // Remove one shape.
  shape2.remove();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = [shape1]
//

टेक्स्ट चुनना

किसी आकार या टेबल सेल में मौजूद टेक्स्ट को चुनने के लिए, TextRange.select() तरीके का इस्तेमाल किया जा सकता है. अगर टेक्स्ट किसी आकार में है, तो वह आकार भी चुना जाता है. अगर टेक्स्ट किसी टेबल सेल में है, तो उस टेबल सेल और उससे जुड़ी टेबल, दोनों को चुना जाता है.

इससे पैरंट पेज को भी मौजूदा पेज के तौर पर सेट किया जाता है.

किसी आकार में रेंज चुनना

नीचे दिए गए उदाहरण में, किसी आकार में मौजूद टेक्स्ट में रेंज चुनने का तरीका बताया गया है.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  shape.getText().setText('Hello');
  // Range selection: Select the text range 'He'.
  shape.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

किसी आकार में कर्सर से चुना गया हिस्सा

नीचे दिए गए उदाहरण में, किसी आकार में मौजूद टेक्स्ट में कर्सर से टेक्स्ट चुनने का तरीका बताया गया है.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  shape.getText().setText('Hello');
  // Cursor selection: Place the cursor after 'H' like 'H|ello'.
  shape.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

टेबल सेल में रेंज चुनना

यहां दिए गए उदाहरण में, टेबल सेल में मौजूद टेक्स्ट में से रेंज चुनने का तरीका बताया गया है.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const table = slide.getPageElements()[0].asTable();
  const tableCell = table.getCell(0, 1);
  tableCell.getText().setText('Hello');
  // Range selection: Select the text range 'He'.
  tableCell.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

TableCell में कर्सर से चुनना

नीचे दिए गए उदाहरण में, टेबल सेल में मौजूद टेक्स्ट में कर्सर चुनने का तरीका बताया गया है.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const table = slide.getPageElements()[0].asTable();
  const tableCell = table.getCell(0, 1);
  tableCell.getText().setText('Hello');
  // Cursor selection: Place the cursor after 'H' like 'H|ello'.
  tableCell.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

टेक्स्ट में बदलाव करके, चुने गए हिस्से में बदलाव करना

नीचे दिए गए उदाहरण में बताया गया है कि चुने गए टेक्स्ट में बदलाव करके, चुने गए टेक्स्ट को कैसे बदला जा सकता है.

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  const textRange = shape.getText();
  textRange.setText('World');
  // Select all the text 'World'.
  textRange.select();
  // State of selection
  //
  // selection.getSelectionType() = SlidesApp.SelectionType.TEXT
  // selection.getCurrentPage() = slide
  // selection.getPageElementRange().getPageElements()[0] = shape
  // selection.getTextRange().getStartIndex() = 0
  // selection.getTextRange().getEndIndex() = 6
  //
  // Add some text to the shape, and the selection will be transformed.
  textRange.insertText(0, 'Hello ');

// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 12
//

चुने हुए का निशान हटाना

टेक्स्ट या पेज एलिमेंट से चुने हुए का निशान हटाने के लिए, कोई खास तरीका नहीं है. हालांकि, Page.selectAsCurrentPage() या pageElement.select() तरीकों का इस्तेमाल करके भी यह नतीजा मिल सकता है.

कोई मौजूदा पेज चुनना

नीचे दिए गए उदाहरण में, किसी पेज को मौजूदा पेज के तौर पर सेट करके, उस पर चुने गए किसी भी विकल्प को अनचुना करने का तरीका बताया गया है.

slides/selection/selection.gs
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected, setting the
// same (or any other) slide page as the current page would do the unselect.
//
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.selectAsCurrentPage();

कोई पेज एलिमेंट चुनना

नीचे दिए गए उदाहरण में, किसी पेज के किसी एलिमेंट को चुनकर, पेज पर चुने गए किसी भी मौजूदा विकल्प को हटाने का तरीका बताया गया है. इससे, चुने गए अन्य सभी आइटम हट जाते हैं.

slides/selection/selection.gs
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected,
// selecting any pageElement in the first slide (or any other pageElement) would
// do the unselect and select that pageElement.
//
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.getPageElements()[0].select();