Удалить текстовое поле в Google Slide с помощью скрипта приложения

#javascript #google-apps-script #google-slides

#javascript #google-apps-script #google-слайды

Вопрос:

Как удалить текстовое поле в Google слайдах с помощью скрипта приложения?

После этого я сохраняю его в формате pdf. Я должен удалить текстовое поле для следующего потока.

 var s = SlidesApp.getActivePresentation()
  var slide = s.getSlides()[0];

//Student Name
  slide
    .insertTextBox('Sai',100,100,100,10,10)
    .getText()
    .getTextStyle()
    .setFontSize(StudentName.fontSize);
  

Ответ №1:

Я считаю, что ваша цель заключается в следующем.

  • Как How to remove the text box in google slides using App script? я понял, вы хотите удалить текстовое поле в Google Slides с помощью скрипта Google Apps.

В вашем скрипте текстовое поле будет вставлено. В этом случае текстовое поле не удаляется. Чтобы удалить текстовое поле, я хотел бы предложить следующий пример сценария.

Модифицированный скрипт:

 function myFunction() {
  var s = SlidesApp.getActivePresentation()
  var slide = s.getSlides()[0];
  slide.getShapes().forEach(shape => {
    if (shape.getShapeType() == SlidesApp.ShapeType.TEXT_BOX) {
      shape.remove();
    }
  });
}
  
  • В этом скрипте все текстовые поля удаляются на 1-м слайде в Google Slides.

  • Если вы хотите удалить все текстовые поля на всех слайдах в Google Slides, вы можете использовать следующий скрипт.

       function myFunction() {
        var s = SlidesApp.getActivePresentation()
        var slides = s.getSlides();
        slides.forEach(slide => {
          slide.getShapes().forEach(shape => {
            if (shape.getShapeType() == SlidesApp.ShapeType.TEXT_BOX) {
              shape.remove();
            }
          });
        });
      }
      

Примечание:

  • В After this I am saving it to pdf. I have to remove the text box for next flow. вашей ситуации, хотя я не уверен во всем вашем скрипте, перед тем, как слайды Google будут экспортированы в формате PDF, чтобы отразить последние слайды Google, может потребоваться поместить SlidesApp.getActivePresentation().saveAndClose() . Ссылка Пожалуйста, будьте осторожны с этим.

Ссылки:

Комментарии:

1. Большое вам спасибо. Он работает в соответствии с моими требованиями. Да, я использую «s.saveAndClose();» и var blob = DriveApp.getFileById(«1zkIsdiSaVaK6W_R4du6VuyvK2leC3lBTg8fSzNCN6Zc»).getBlob(); DriveApp.CreateFile (blob); Теперь я использую ваш код для удаления текстового поля. Но он не работает после saveAndClose(). Я проверяю это сейчас.