টেক্সট এডিটিং এবং স্টাইল করা

আপনি টেক্সট রেঞ্জ ব্যবহার করে টেক্সট এডিট এবং স্টাইল করতে পারেন, যা TextRange প্রকার দ্বারা উপস্থাপিত হয়। একটি TextRange একটি আকারের মধ্যে বা একটি টেবিল ঘরের মধ্যে পাঠ্যের একটি অংশকে উপস্থাপন করে। একটি আকৃতি বা টেবিল কক্ষে getText() কল করা একটি পাঠ্য পরিসর প্রদান করে যা সমগ্র পাঠকে কভার করে।

আপনি যদি এমন পদ্ধতিগুলি ব্যবহার করেন যা সম্পাদনা করে কীভাবে পাঠ্য একটি আকারের মধ্যে ফিট করে, আকৃতিতে প্রয়োগ করা যেকোন অটোফিট সেটিংস নিষ্ক্রিয় করা হয়।

টেক্সট রেঞ্জ ব্যবহার করে

একটি পাঠ্য পরিসরে দুটি সূচী রয়েছে যা পাঠ্য পরিসর দ্বারা আচ্ছাদিত পাঠ্যের অংশকে সীমাবদ্ধ করে: সূচনা সূচক এবং শেষ সূচক । আপনি getStartIndex() এবং getEndIndex() ফাংশন ব্যবহার করে এই সূচীগুলি নির্ধারণ করতে পারেন।

একটি পাঠ্য পরিসরের বিষয়বস্তু পড়তে, asString() বা asRenderedString() ফাংশন ব্যবহার করুন।

একটি পাঠ্য পরিসর থেকে একটি সাবরেঞ্জ পুনরুদ্ধার করতে, getRange() ফাংশনটি ব্যবহার করুন।

নিম্নলিখিত স্ক্রিপ্টটি প্রথম স্লাইডে একটি পাঠ্য বাক্স তৈরি করে এবং এর পাঠ্য বিষয়বস্তুকে "হ্যালো ওয়ার্ল্ড!" এ সেট করে। এটি তখন একটি সাবরেঞ্জ পুনরুদ্ধার করে যা শুধু "হ্যালো" জুড়ে বিস্তৃত।

slides/style/style.gs
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
  const textRange = shape.getText();
  // Set text in TEXT_BOX
  textRange.setText('Hello world!');
  console.log('Start: ' + textRange.getStartIndex() + '; End: ' +
    textRange.getEndIndex() + '; Content: ' + textRange.asString());
  const subRange = textRange.getRange(0, 5);
  console.log('Sub-range Start: ' + subRange.getStartIndex() + '; Sub-range End: ' +
    subRange.getEndIndex() + '; Sub-range Content: ' + subRange.asString());
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

একটি আকৃতি বা টেবিল ঘর দ্বারা প্রত্যাবর্তিত পাঠ্য পরিসর সর্বদা সমগ্র পাঠ্যকে কভার করবে, এমনকি পাঠ্য সন্নিবেশিত এবং মুছে ফেলা হলেও। সুতরাং উপরের উদাহরণটি নিম্নলিখিত লগ বিবৃতি তৈরি করে:

Start: 0; End: 13; Content: Hello world!
Start: 0; End: 5; Content: Hello

টেক্সট সন্নিবেশ করা এবং মুছে ফেলা

আপনি একটি পাঠ্য ব্যাপ্তি ব্যবহার করে পাঠ্য আকার এবং টেবিল ঘর সন্নিবেশ এবং মুছে ফেলতে পারেন।

  • insertText() এবং appendText() আপনাকে পাঠ্য সন্নিবেশ করতে দেয়।
  • setText() প্রদত্ত পাঠ্যের সাথে একটি পাঠ্য পরিসরের পাঠ্য প্রতিস্থাপন করে।
  • clear() একটি পাঠ্য পরিসরের মধ্যে থেকে পাঠ্য মুছে দেয়।

নিম্নলিখিত স্ক্রিপ্ট এই ফাংশন ব্যবহার প্রদর্শন করে:

slides/style/style.gs
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
  const textRange = shape.getText();
  textRange.setText('Hello world!');
  textRange.clear(6, 11);
  // Insert text in TEXT_BOX
  textRange.insertText(6, 'galaxy');
  console.log('Start: ' + textRange.getStartIndex() + '; End: ' +
    textRange.getEndIndex() + '; Content: ' + textRange.asString());
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

এই স্ক্রিপ্টটি প্রথম স্লাইডে একটি পাঠ্য বাক্স তৈরি করে এবং এর পাঠ্য বিষয়বস্তুকে "হ্যালো ওয়ার্ল্ড!" এ সেট করে। তারপর এটি 6 থেকে 11 অক্ষর মুছে দেয় ("ওয়ার্ল্ড"), এবং পরিবর্তে সূচী 6-এ "গ্যালাক্সি" টেক্সট সন্নিবেশ করায়। উপরের উদাহরণটি নিম্নলিখিত লগ বিবৃতি তৈরি করে:

Start: 0; End: 14; Content: Hello galaxy!

অনুসন্ধান এবং প্রতিস্থাপন

সমগ্র উপস্থাপনা বা একটি নির্দিষ্ট পৃষ্ঠা জুড়ে একটি বিশ্বব্যাপী অনুসন্ধান এবং প্রতিস্থাপন করতে উপস্থাপনা বা পৃষ্ঠায় replaceAllText() ফাংশন ব্যবহার করুন।

TextRange-এ find() ফাংশন রেঞ্জের মধ্যে একটি স্ট্রিংয়ের উদাহরণ প্রদান করে। এটি একটি আকৃতি বা টেবিল ঘরের মধ্যে সন্ধান এবং প্রতিস্থাপন করার জন্য setText() এর সাথে ব্যবহার করা যেতে পারে।

অনুচ্ছেদ, তালিকা আইটেম, এবং রান

TextRange টেক্সট সত্তার দরকারী সংগ্রহ ফেরত দেওয়ার জন্য ফাংশন প্রদান করে। এই ফাংশনগুলির মধ্যে কয়েকটি অন্তর্ভুক্ত:

  • getParagraphs(), যা পাঠ্য পরিসরকে ওভারল্যাপ করে এমন সমস্ত অনুচ্ছেদ প্রদান করে। একটি অনুচ্ছেদ পাঠ্যের একটি ক্রম যা নতুন লাইন অক্ষর, "\n" দিয়ে শেষ হয়।
  • getListParagraphs(), যা বর্তমান পাঠ্য পরিসরে তালিকা আইটেমগুলি প্রদান করে।
  • getRuns(), যা বর্তমান পাঠ্য পরিসরকে ওভারল্যাপ করে এমন টেক্সট রান প্রদান করে। একটি টেক্সট রান টেক্সটের একটি সেগমেন্ট যেখানে সমস্ত অক্ষর একই টেক্সট শৈলী আছে।

টেক্সট স্টাইলিং

পাঠ্য শৈলী ফন্ট, রঙ এবং হাইপারলিঙ্কিং সহ আপনার উপস্থাপনায় পাঠ্য অক্ষরের রেন্ডারিং নির্ধারণ করে।

একটি টেক্সট রেঞ্জের getTextStyle() ফাংশন একটি TextStyle অবজেক্ট প্রদান করে যা টেক্সট স্টাইল করার জন্য ব্যবহৃত হয়। TextStyle অবজেক্টটি তার মূল TextRange এর মত একই টেক্সট কভার করে।

slides/style/style.gs
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
  const textRange = shape.getText();
  // Set text in TEXT_BOX
  textRange.setText('Hello ');
  // Append text in TEXT_BOX
  const insertedText = textRange.appendText('world!');
  // Style the text with url,bold
  insertedText.getTextStyle()
      .setBold(true)
      .setLinkUrl('www.example.com')
      .setForegroundColor('#ff0000');
  const helloRange = textRange.getRange(0, 5);
  console.log('Text: ' + helloRange.asString() + '; Bold: ' + helloRange.getTextStyle().isBold());
  console.log('Text: ' + insertedText.asString() + '; Bold: ' +
    insertedText.getTextStyle().isBold());
  console.log('Text: ' + textRange.asString() + '; Bold: ' + textRange.getTextStyle().isBold());
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

উপরের উদাহরণটি প্রথমে প্রথম স্লাইডে একটি টেক্সট বক্স তৈরি করে এবং এর বিষয়বস্তু "হ্যালো" এ সেট করে। তারপর এটি "বিশ্ব!" পাঠ্য যুক্ত করে। নতুন সংযোজিত পাঠ্যটি বোল্ড করা হয়েছে, www.example.com এর সাথে লিঙ্ক করা হয়েছে এবং এর রঙ লাল সেট করা হয়েছে৷

শৈলী পড়ার সময়, শৈলীর জন্য পরিসরে একাধিক মান থাকলে ফাংশনটি শূন্য প্রদান করে। সুতরাং উপরের নমুনা নিম্নলিখিত লগ বিবৃতি উত্পাদন করে:

Text: Hello; Bold: false
Text: world!; Bold: true
Text: Hello world!; Bold: null

আরও অনেক স্টাইল আছে যা টেক্সটে প্রয়োগ করা যেতে পারে। আরও বিশদ বিবরণ TextStyle রেফারেন্স ডকুমেন্টেশনে পাওয়া যাবে।

অনুচ্ছেদ স্টাইলিং

অনুচ্ছেদ শৈলী সমগ্র অনুচ্ছেদে প্রযোজ্য, এবং পাঠ্য সারিবদ্ধকরণ এবং লাইন ব্যবধানের মতো বিষয়গুলি অন্তর্ভুক্ত করে। TextRange এ getParagraphStyle() ফাংশন প্যারেন্ট টেক্সট পরিসরকে ওভারল্যাপ করে এমন সমস্ত অনুচ্ছেদ স্টাইল করার জন্য একটি ParagraphStyle অবজেক্ট প্রদান করে।

নিম্নলিখিত উদাহরণটি প্রথম স্লাইডে চারটি অনুচ্ছেদ সহ একটি পাঠ্য বাক্স তৈরি করে, তারপর প্রথম তিনটি অনুচ্ছেদকে কেন্দ্রে সারিবদ্ধ করে।

slides/style/style.gs
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 50, 50, 300, 300);
  const textRange = shape.getText();
  // Set the text in the shape/TEXT_BOX
  textRange.setText('Paragraph 1\nParagraph2\nParagraph 3\nParagraph 4');
  const paragraphs = textRange.getParagraphs();
  // Style the paragraph alignment center.
  for (let i = 0; i <= 3; i++) {
    const paragraphStyle = paragraphs[i].getRange().getParagraphStyle();
    paragraphStyle.setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER);
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

তালিকা স্টাইলিং

অনুরূপ ParagraphStyle , ListStyle প্যারেন্ট টেক্সট পরিসীমা ওভারল্যাপ করা সমস্ত অনুচ্ছেদ স্টাইল করার জন্য ব্যবহার করা যেতে পারে।

slides/style/style.gs
try {
  // Get the first slide of active presentation
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // Insert shape in the slide with dimensions
  const shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 50, 50, 300, 300);
  // Add and style the list
  const textRange = shape.getText();
  textRange.appendText('Item 1\n')
      .appendText('\tItem 2\n')
      .appendText('\t\tItem 3\n')
      .appendText('Item 4');
  // Preset patterns of glyphs for lists in text.
  textRange.getListStyle().applyListPreset(SlidesApp.ListPreset.DIGIT_ALPHA_ROMAN);
  const paragraphs = textRange.getParagraphs();
  for (let i = 0; i < paragraphs.length; i++) {
    const listStyle = paragraphs[i].getRange().getListStyle();
    console.log('Paragraph ' + (i + 1) + '\'s nesting level: ' + listStyle.getNestingLevel());
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with an error %s ', err.message);
}

উপরের উদাহরণটি প্রথম স্লাইডে একটি পাঠ্য বাক্স তৈরি করে, যেখানে চারটি অনুচ্ছেদ রয়েছে: দ্বিতীয় অনুচ্ছেদটি একবার ইন্ডেন্ট করা হয়েছে এবং তৃতীয় অনুচ্ছেদটি দুবার ইন্ডেন্ট করা হয়েছে৷ তারপর এটি সমস্ত অনুচ্ছেদে একটি তালিকা প্রিসেট প্রয়োগ করে। অবশেষে, প্রতিটি অনুচ্ছেদের নেস্টিং স্তর লগ করা হয়। (অনুচ্ছেদের নেস্টিং স্তরটি অনুচ্ছেদের পাঠ্যের আগে ট্যাবের সংখ্যা থেকে আসে।) তাই উপরের স্ক্রিপ্ট নিম্নলিখিত লগ স্টেটমেন্ট তৈরি করে:

Paragraph 1's nesting level: 0
Paragraph 2's nesting level: 1
Paragraph 3's nesting level: 2
Paragraph 4's nesting level: 0