我可以将多个illustrator ai文件更改为svg文件并保留图层吗?



我在adobeillustrator CS3中准备了多个.ai文件。我想转换所有这些。ai文件在一个去。svg文件-但保留我原来在。ai文件的分层?

我可以很容易地在Adobe Illustrator中打开我的。ai文件,并从Adobe Illustrator中将它们单独导出为。svg格式。但这将花费相当多的时间来处理100多个.ai文件。

我从。svg文件读取软件(如InkScape)打开。ai文件没有问题。但是我可以看到,在InkScape中,原始ai文件中的所有图层都被融合到一个单一的图层中。

我不想手动打开每一个。ai文件从一个。svg读取软件和手动选择和移动元素到新的图层。在我所有的。ai文件上做这个要花很长时间。我的许多.ai文件都有相当多的图层。

我很确定在StackFolder上没有这样的问题。大多数问题似乎与svg到ai文件的方向相反。但如果我忽略了什么,请重定向到另一个帖子。

提前感谢您的帮助

我知道过了六年再回答这个问题没什么意义…但无论如何。以下是在选定文件夹及其子文件夹中查找所有AI文件并以SVG格式导出它们的脚本:

main();
function main() {
    var folder = Folder.selectDialog('Select folder');
    if (!(folder instanceof Folder)) return;
    var files = get_ai_files(folder, []);
    if (files.length == 0) {
        alert('The folder contains no AI files')
        return;
    }
    for (var i = 0; i < files.length; i++) {
        var doc = app.open(files[i]);
        var file = File(doc.fullName.fsName.replace(/.ai$/i, '.svg'))
        doc.exportFile(file, ExportType.SVG);
        doc.close(SaveOptions.DONOTSAVECHANGES);
    }
    alert('Number of saved SVG files: ' + files.length);
}
function get_ai_files(folder, files_array) {
    var files = folder.getFiles('*');
    if (files.length == 0) return files_array;
    for (var i = 0; i < files.length; i++) {
        var file = files[i];
        if (/.+.ai$/i.test(file.name)) files_array.push(file);
        if (file instanceof Folder) files_array.concat(get_ai_files(file, files_array));
    }
    return files_array;
}

您可以编写一个脚本来打开每个.ai文件并导出为svg。脚本指南

将是一个相当简单的脚本,如果所有你需要做的是打开和导出和所有你的。ai文件在同一个文件夹。

最新更新