AppScript Slides Get Hex Code of Text Box

Viewed 32

For Apps Script, I'm trying to print the Hex code of the fill of text box. Any ideas. I'm stuck once I get to .getSolidFill(). This line does not work for me: shape.getFill().getSolidFill().getColor().asRgbColor().asHexString())

function adjustFillColor() {


  // // Open the presentation and get the slides in it.
  let deck = SlidesApp.openById(masterDeckID);
  let slides = deck.getSlides();

  let masterSlide = slides[1];

  let slide = masterSlide.duplicate();

  slide.getShapes().forEach(shape => { // Iterate through every shape in the slide
          if (shape.getFill().getSolidFill()!== null){
              shape.getFill().setSolidFill("#000000");
          }
      
    });               
   
  };


1 Answers

In your script, how about the following modification?

From:

console.log("Color String: " +shape.getFill().getSolidFill());

To:

console.log("Color String: " + shape.getFill().getSolidFill().getColor().asRgbColor().asHexString());
  • When this modified script is run, you can retrieve the color of shapes as the HEX value.

  • Or, how about the following modification?

    • From

        slide.getShapes().forEach(shape => {
           if (shape.getFill().getSolidFill()!== null)
              console.log("Color String: " +shape.getFill().getSolidFill());
      
    • To

        masterSlide.getShapes().forEach(shape => {
          var solidFill = shape.getFill().getSolidFill();
          var color = solidFill && solidFill.getColor();
          var rgbColor = color && color.getColorType() == SlidesApp.ColorType.RGB ? color.asRgbColor() : null;
          if (solidFill && color && rgbColor) {
            console.log("Color String: " + rgbColor.asHexString());
          }
        });
      

References:

Related