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");
}
});
};
CodePudding user response:
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()); } });