Home » 일러스트레이터 자동화 스크립트 – .ai 파일을 JPG로 일괄 변환

일러스트레이터 자동화 스크립트 – .ai 파일을 JPG로 일괄 변환

요즘 일러스트레이터 버전에서는 이런게 지원되는지 모르겠는데, 간혹 필요하시다는 분들이 있어서 다시 올립니다.  특정한 폴더 내의 모든 일러스트레이터 파일을 자동으로  JPG로 변환하여 다른 폴더에 저장해주는 스크립트입니다.

파일 다운로드 링크 : https://app.box.com/s/nefi9wjejb2jnsgfsh848abmiog7hvqz

사용방법

  1. 다운로드 받은 파일을 압축을 풀어둡니다.
  2. 일러스트레이터를 실행합니다.
  3. File > Script > Other Scripts… 를 선택하여 압축을 풀어서 나온 스크립트 선택
  4. 원본 .ai 파일들이 들어있는 폴더를 묻는 대화상자가 나옵니다. 원본 파일 폴더를 선택합니다.
  5. jpg 파일을 저장할 폴더를 묻는 대화상자가 나옵니다. 대상 폴더를 선택합니다.
  6. 자동으로 한 개씩 파일이 열리며 jpg 파일로 저장합니다. 저장되는 파일 이름은 원본 파일과 같은 대신에 .jpg 로 끝나게 됩니다.

예전에 작성했던 코드가 워낙에 엉망이어서 정리를 좀 했고,원본 파일명에 한글 등이 들어있는 경우에 경고 박스가 뜨면서 동작이 중지되는 문제를 해결했습니다.
참고로 실행중에는 상당히 많은 메모리를 쓰는데, 이 때 일러스트레이터를 최소화 시키면 메모리 부족으로 중단될 수 있습니다.그리고 원본 파일이 1000개를 넘는 경우에 중간에 일러스트레이터가 자동으로 꺼졌다가 재시작할 수 있습니다.
아래는 소스코드.


// 지정한 폴더내의 모든 .ai 파일을 JPG 파일로 변환하여 일괄 저장한다.
// coded by sooop – 2017.07.12
// 파일이름에 한글이 들어있더라도 경고를 표시하지 않는다.
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;
main();
function main(){
var sourceFiles = getSourceFiles();
if(sourceFiles != null){
var targetFolder = Folder.selectDialog("Select destination folder", new Folder('C:/'));
for(var i=0; i<sourceFiles.length; i++){
processFile(sourceFiles[i], targetFolder);
}
}
}
// 원본폴더로부터 처리할 파일의 배열을 리턴하는 함수
function getSourceFiles(){
var sourceFolder = Folder.selectDialog("Select source folder", new Folder('C:/')); // 폴더 지정 대화상자
if(sourceFolder != null){
var sfiles = sourceFolder.getFiles("*.ai");
if(sfiles != null && sfiles.length > 0){
alert(sfiles.length + " AI files found"); // ai 파일의 갯수를 보고한다.
return sfiles;
}
else{
alert("No AI file found. Process canceled."); //ai 파일이 없으면 장난치냐며 작업 종료.
}
}
return null;
}
// 파일 하나를 처리하는 함수
function processFile(aFile, destinationFolder) {
if(destinationFolder == undefined){
destinationFolder = Folder.selectDialog("Select destination folder", new Folder('C:/'));
}
var currentDoc = app.open(aFile, DocumentColorSpace.RGB);
var savingOptions = (function (){
var opts = new ExportOptionsJPEG();
opts.antiAliasing = true; //안티앨리어싱 적용
opts.artBoardClipping = false; //대지에 맞게 자르기 안함
opts.blurAmount = 0.0; //블러 없음
opts.qualitySetting = 100; //퀄리티는 100으로 (기본값이 30)
//opts.horizontalScale = 100; //가로크기지정
//opts.verticalScale = 100; //세로크기지정
return opts;
})();
var targetFile = makeFilePath(currentDoc.name, destinationFolder)
currentDoc.exportFile(targetFile, ExportType.JPEG, savingOptions);
currentDoc.close(SaveOptions.DONOTSAVECHANGES);
}
function makeFilePath(title, path){ //문서의 이름과 목적폴더를 파라메터로 받음
var newName = title.substring(0,title.lastIndexOf('.')) + '.jpg';
return new File(path + '/' + newName);
}

 

25 Comments
정은경 2019-08-20
| |
감사드립니다. 검색하다가 우연히 발견 유용하게 잘 사용하겠습니다.
Lock3rz 2018-08-01
| |
정말 도움 많이 되었습니다! DXF로 하나하나 변환하는 스크립트는 짰는데, 혹시 배치 스크립트가 있을까 해서 검색해보니, 이렇게 멋지게 작성해주셨네요. 감사합니다!
Adcom31 2012-07-04
| |
혹시 지금 질문 드려도 될지 모르겠습니다. 참 좋은 자료 우선 감사하구요... 저도 약 3000개의 파일을 JPg로 바꾸고자 하는데요 JPG 해상도가 더 높어야 해서 (72dpi더군요) 자바스크립트에 완전 문외한이라(오늘 처음 접했습니다) 가이드 북 보며 어떻게 분석해보니 function getJpgOptions(){   에서         opts.qualitySetting = 100; 으로 맥시멈이더군요. 그래서 혹시 ExportOptionsPhotoshop 으로 되지 않을까요? function getJpgOptions(){        if ( app.documents.length > 0 ){            var exportOptions = new ExportOptionsPhotoshop();            var type = ExportType.PHOTOSHOP;            var fileSpec = new File(dest);            exportOptions.resolution = 150;            app.activeDocument.exportFile( fileSpec, type, exportOptions );        }    }이렇게 무식하게 해봤는데 않되더라구요.흉보지 마시고 조금만 가르쳐 주시면 고맙겠습니다.감사합니다.http://blog.naver.com/adcom31
Hyeona Chang 2012-06-29
| |
해결했습니다 ..알았어요 ..;] AI 열고 거기에다가 실행한다는거 ..ㅠ_ㅠ 님 사랑합니다 ...ㅠㅠㅠㅠㅠㅠㅠㅠㅠ AI파일 수정엄청해야 하는거 많았는데 덕분에 ..ㅠㅠ 살았습니다!
Hyeona Chang 2012-06-29
| |
ㅠ_ㅠ 실행이 되지 않으면 ..어떻게 해결해야 하나요? ㅠ_ㅠ 링크해주신거 다운받았는데- 알수없는 파일이라고 떠요 ..ㅠ_ㅠ angelove33@naver.com << 메일로 주세요 ..ㅠㅠ
[...] 실제 작성된 자바스크립트가 어떻게 실행되는지를 살펴보며, 이를 통해 특정 폴더의 ai 파일들을 한꺼번에 jpg 파일로 변환하는 방법에 대해 살펴보겠습니다. illustrator, javascript, 일러스트레이터, [...]
Kikijuny2 2010-10-21
| |
죄송합니다 다른포스트에다가 덧글을 입력했네요; 이걸jpg변환스크립트를 일러스트10-preset/scripts/에서 복사하고 스트립트창에서 바로 실행하니 Folder selectdialog is not a function line:27 -->var sourcefolder= folder selectdialog("select folder contains ai files...,"dfltfolder); 이런 메시지가 나오네요 왜그러죠?
에이아이 2009-08-25
| |
유용한 스크립트 정말 감사합니다. 그런데 png 변환 스크립트도 함께 공유해주시면 안될까요? 부탁드립니다. ^^
미달검 2009-05-06
| |
포토샵의 배치만 써오다가 귀찮아 하기를 반복하던 찰나에 아주 잘 쓰고 있습니다. 감사합니다. ^^ 아참 그리고 스크립트 하면서 한가지 질문이 있는데 사용하기전 EPS포맷을 가장한 AI파일은 메세지가 하나 뜨더군요. " Your current color settings honor CMYK profiles in linked content but profiles were set to be ignored when this documents was created " 항상 Enter에 동전을 꼽아놓고 -_-;;;;; 하고는 있습니다만 어쮜 근본적인 해결책은 아닌듯 싶어서 -_-;;;; 어떻게 스크립트를 구성해야할 까요?
이민규 2008-12-05
| |
시각디자인 쪽으로 공부하면서 일하는 누나의 부탁으로 단순 노가다 일처리를 맡게되었네요. 약 1500개 가량 ai 파일을 jpg 파일로 변환하는거.. script for web 으로 하나하나씩 해서 500개 하다가.. 다른 방법이 없을까........생각해서 검색결과 여기까지 오게됐네요. 정말 좋았습니다..ㅜㅜ그동안의 시간이 안타깝지만.. 아무튼 사용해봤는데 .. 이상하게도 배경색이 검정색으로 바뀌더군요. 그래서 스크립트를 열어서 rgb 컬러를 확인했는데 분명 255.255.255로 되있고 어떤 현상인지 알려주실수 있나요.. 내일까지 해야되는데 이 글을 보실려는지 ㅜㅜ 보신다면 제발 부탁드립니다 메일로좀 보내주세요~~ leemingyu@nate.com
sooopd 2008-10-18
| |
김규복// 블로그에 답변 드렸습니다.
김규복 2008-10-15
| |
아~코드를 변경했는데 리플 남져주시면 자삭하겠습니다.
김규복 2008-10-15
| |
감사하구요 sooop님의 스크립스트 살짝 바꿔서 eps를 jpg로 변환되게 바꾸었습니다. 알씨쓰는데 eps도 안보여서 jpg썸네일이 필요하더라구요. http://blog.naver.com/ionflux/80056960885 자바쓰시는거 너무 부럽다~~