반응형
혹시 이런 경험 있지 않으신가요?..

구글에서 제공하는 Apps Script 를 사용하면 이렇게 하나하나 폰트를 변경할 필요 없이 일괄적으로 폰트를 변경할 수 있습니다. 아래 처럼 [확장 프로그램] → [Apps Script] 클릭 해서 접속해주세요.

들어가시면 아래 스크립트를 입력할 수 있는 화면이 뜨면 됩니다.

모든 폰트를 변경하는 자바스크립트 코드
이제 모든 폰트를 변경하는 자바스크립트 코드를 입력해줍시다.
function changeFontInAllSlides() {
const NEW_FONT = "Roboto"; // 변경할 글꼴
const slides = SlidesApp.getActivePresentation().getSlides();
slides.forEach(slide => {
slide.getPageElements()
.filter(el => el.getPageElementType() === SlidesApp.PageElementType.SHAPE) // 텍스트 상자(Shape)만 필터링
.forEach(shapeEl => {
const text = shapeEl.asShape().getText();
if (text && text.asString().trim()) { // 비어 있지 않은 텍스트만 적용
text.getTextStyle().setFontFamily(NEW_FONT);
console.log("변경 완료:", text.asString());
}
});
});
Logger.log("폰트 변경 완료!");
}
입력 후 [Alt + S] 를 눌러 입력한 코드를 저장한 후 [실행] 버튼을 눌러줍니다.

그러면 모든 폰트가 본인이 설정한 글꼴로 변경된 것을 볼 수 있습니다.

자바스크립트 코드를 처음 보시는 분들을 위해서 간략하게 코드를 설명해보았습니다.
라인별 설명
함수 선언. Slides 문서에서 모든 슬라이드의 텍스트 폰트를 변경하는 기능.
function changeFontInAllSlides() {
변경할 글꼴 이름을 상수로 지정. 유지·보수 시 쉽게 바꿀 수 있음.
const NEW_FONT = "Roboto"; // 변경할 글꼴
현재 열려 있는 프레젠테이션의 모든 슬라이드를 배열로 가져옴.
const slides = SlidesApp.getActivePresentation().getSlides();
각 슬라이드에 대해 반복 실행.
slides.forEach(slide => {
슬라이드 안의 모든 페이지 요소(도형, 이미지, 표 등)를 가져옴.
slide.getPageElements()
그중 SHAPE(도형) 요소만 필터링. (텍스트 상자는 SHAPE 타입이므로 불필요한 try/catch 제거 가능)
.filter(el => el.getPageElementType() === SlidesApp.PageElementType.SHAPE)
필터링된 도형 요소마다 반복 실행.
.forEach(shapeEl => {
도형을 텍스트 상자로 변환하고, 텍스트 객체 가져오기.
const text = shapeEl.asShape().getText();
텍스트가 존재하고 비어 있지 않은 경우에만 실행. (공백만 있는 상자 제외)
if (text && text.asString().trim()) {
해당 텍스트의 폰트를 지정한 글꼴로 변경.
text.getTextStyle().setFontFamily(NEW_FONT);
변경된 텍스트 내용을 콘솔에 출력해 확인 가능.
console.log("변경 완료:", text.asString());
모든 슬라이드 처리 후 로그 출력. 실행 로그에서 확인 가능
Logger.log("폰트 변경 완료!"); }
반응형