인디자인 파일 자동 저장 스크립트

인디자인(Indesign) 작업을 진행하다보면 특정 디렉토리에만 파일을 저장할 때가 있다.
(예를 들면 파일 서버의 공유 디렉토리나 작업물 보관 디렉토리 등)

Ctrl + S 눌러서 기본 저장으로 처리해도 되지만 인디자인에서 열기/저장 메뉴를 이용할 때마다 최근 사용 디렉토리를 시작점으로 띄우기 때문에 목적 디렉토리까지 클릭의 연속을 수행해야 할 때가 있다. 사실 ‘뭐 이런 걸 귀찮아 해?’ 할 수도 있겠지만 이런 사소한 것 하나하나에 귀차니즘을 느껴야 업무를 간소화 시킬 수 있는 방법에 대해 심도있게(..인지는 잘 모르겠다) 고민하게 된다.

Adobe 계열 프로그램은 Adobe ExtendScript Toolkit 을 이용하여 원하는 기능을 추가할 수 있다. 인디자인의 경우 자바스크립트(JavaScript)와 VB스크립트(VBScript)로 기능을 구성할 수 있다. VB 쪽은 내가 잘 사용하지 않고 좋아하지도 않다보니 자연스레 자바스크립트를 사용하고 있다. 약간의 아쉬움이 있다면 자바스크립트 최신 문법이 적용되지 않다보니 가끔씩 ‘이게 왜 안 돼??’ 하는 경우가 발생한다. 자바스크립트 엔진 업데이트 좀 해줬으면 좋겠다..

여튼 각설하고 직접 작성한 파일 자동 저장 스크립트를 올린다.

#target indesign

const scrName = "인디자인 자동 저장";
const scrName_Ver = scrName + " 0.1";

try {
    const doc = app.activeDocument;
} catch(err) {
    alert(err, scrName_Ver, true);
    exit();
}

function auto_save() {
    var save_dir = "D:/경로/";

    if(!confirm("파일을 저장하시겠습니까?", false, scrName_Ver)) return false;

    // 현재 도큐멘트명에 .indd 가 있으면 이미 파일 저장된 것으로 간주하고 일반 저장
    if(doc.name.indexOf(".indd") !== -1) doc.save(File(save_dir + doc.name));

    // 없으면 새로 저장
    else {
        var timestamp = + new Date();  // int 처리
        var timeflag = String(timestamp).slice(3, -2);
        var curr_name = doc.name.slice(0, -2);  // 뒤에 붙는 "-1" 제거
        var new_save_name = curr_name + "-" + timeflag + ".indd";
        var file_check = new File(save_dir + new_save_name);
        if(file_check.exists) {
            alert("이미 파일이 존재함", scrName_Ver, true);
            return false;
        }
        doc.save(file_check);
    }
    return true;
}

function run() {
    try {
        var result = auto_save();
        if(!result) return false;
        if(!confirm("파일을 닫으시겠습니까?", false, scrName_Ver)) return false;
        doc.close(SaveOptions.yes);  // 파일 닫기 (강제 저장)
    } catch(err) {
        alert(err, scrName_Ver, true);
        return false;
    }
    return true;
}

// 실행
run();

위 내용을 작성한 뒤 ‘파일명.jsx’ 으로 저장하여 인디자인 스크립트 디렉토리에 넣으면 됨!

아.. 갑자기 급격하게 글쓰기 귀찮아진다..

답글 남기기