Скрипт экспорта для Adobe Illustrator, отсекающий мое изображение - PullRequest
0 голосов
/ 01 августа 2020

Как и многие другие, я пытаюсь сэкономить время и пишу скрипт для Adobe Illustrator. Я был довольно успешным. Я написал функцию ниже, которая экспортирует 4 артборда в PNG в отдельные папки. Однако когда я открываю файлы, они не на 100% правильно обрезаны. Мне не хватает 1 или 2 пикселей снизу и сверху по бокам. Есть идеи, что я делаю не так? Как будто функция artBoardClipping немного отключена.

// Actief document in variabele.
var docRef = app.activeDocument;    

if (docRef.artboards.length == 4) {
  main();  
} else {
  Window.alert("Geen 4 artboards");
}

function main() {

var docRef = app.activeDocument;
// Pand naar AI bestand
var path = docRef.path;

    //Logo map maken als deze niet bestaat
    var exportFolder1 = Folder(path + "/Logo");
    if(!exportFolder1.exists){
        exportFolder1.create();
    }
    
    //Logo reverse map maken als deze niet bestaat
    var exportFolder2 = Folder(path + "/Logo_reverse");
    if(!exportFolder2.exists){
        exportFolder2.create();
    }
    
    //Icoon maken als deze niet bestaat
    var exportFolder3 = Folder(path + "/Icoon");
    if(!exportFolder3.exists){
        exportFolder3.create();
    }
    
    //Icoon reverse map maken als deze niet bestaat
    var exportFolder4 = Folder(path + "/Icoon_reverse");
    if(!exportFolder4.exists){
        exportFolder4.create();
    }
    
    // Elk artboard actief maken, objecten selecteren en artboard resizen
    for (i=0; i<docRef.artboards.length; i++) {
    
    docRef.artboards.setActiveArtboardIndex(i);
    docRef.selectObjectsOnActiveArtboard();
    docRef.fitArtboardToSelectedArt(i);
        
    }
    
    // Alles outlinen
    app.executeMenuCommand('selectall');
    app.executeMenuCommand('outline');      
    
    
    // Artboards opslaan 1-voor-1
    for (i=0; i<docRef.artboards.length; i++) {
        
    var scaleTo = 1024/docRef.width*100.0;  
    
    var options = new ExportOptionsPNG24();
    options.antiAliasing = false;
    options.transparency = true;
    options.artBoardClipping = true;
    options.horizontalScale = scaleTo;
    options.verticalScale = scaleTo;    
    
    docRef.artboards.setActiveArtboardIndex(i); 
    
    if(i==0) {
    var destFile = new File(exportFolder1 + '/logo.png');
    } else if(i == 1){
    var destFile = new File(exportFolder2 + '/logo_reverse.png');   
    } else if(i == 2){
    var destFile = new File(exportFolder3 + '/icoon.png');  
    } else if(i == 3){
    var destFile = new File(exportFolder4 + '/icoon_reverse.png');  
    }
    
    docRef.exportFile(destFile, ExportType.PNG24 , options);
    
    }
    
    
    Window.alert("Exporteren is klaar!");
    
}

Любая помощь приветствуется!

...