Скрипт для сохранения слоев Photoshop в PDF

Задание закрыто
Статус рабочей области:
Стоимость:3 000 рублей
Срок выполнения:15 дней
Варианты оплаты:Планируется использовать Безопасную сделку
Дата публикации:2024-12-12 23:19
Обновлено:2024-12-12 23:43
Был на сайте:2024-12-25 00:23

Скрипт для сохранения слоев Photoshop в PDF

 
Задача

Скрипт на Adobe ExtendScript CS6

1. Скрипт вызывается для текущего открытого файла PSD в Photoshop (могут быть другие открытые файлы PSD, которые не должны мешать процессу). В начальном диалоге спрашивает, хотим ли мы что-то добавить к имени файла (см. пункт 4); там же кнопка запуска скрипта на исполнение.
2. Скрипт экспортирует каждый слой (независимо от того, видимый он, или нет) в файл jpg в папке, в которой лежит и сам текущий файл PSD, давая им названия 00.jpg, 01.jpg, ..., начиная с самого нижнего слоя (текущий путь назначать по умолчанию, изменять не предлагать) [В Photoshop такой скрипт уже есть, export layers to files, меня устроит, если его часть будет использована]
3. Скрипт объединяет полученные файлы jpg в многостраничный документ PDF, где первая страница будет получена из файла 00.jpg и всех последующих по номерам
4. Скрипт сохраняет полученный из слоёв файл PDF в текущую папку, имя по умолчанию - Notes (не спрашивать), с возможностью добавить символы к названию с клавиатуры в окне (маска...

Видеть полную информацию и оставлять заявки могут только авторизованные пользователи.
Исполнитель по этому заданию выбран.
Stanislav Ricci
Основная специализация: Веб-разработка и IT
    #target photoshop

    app.bringToFront();

    function main() {
    // Проверяем, открыт ли документ
    if (!app.documents.length) {
    alert("Нет открытых документов.");
    return;
    }

    var doc = app.activeDocument;

    // Получаем путь и имя текущего файла
    var docPath = doc.path;
    var baseName = "Notes";

    // Создаем диалоговое окно
    var dlg = new Window('dialog', 'Сохранение слоев в PDF');
    dlg.orientation = 'column';
    dlg.alignChildren = ['fill','top'];

    var grp = dlg.add('group');
    grp.orientation = 'row';
    grp.alignChildren = ['left','center'];
    grp.add('statictext', undefined, 'Добавить к имени файла:');
    var addName = grp.add('edittext', undefined, '');
    addName.characters = 20;

    dlg.add('button', undefined, 'Запустить', {name: 'ok'});
    dlg.add('button', undefined, 'Отмена', {name: 'cancel'});

    if (dlg.show() != 1) {
    return;
    }

    var suffix = addName.text.trim();
    if (suffix.length > 0) {
    baseName += suffix;
    }

    var pdfName = baseName + ".pdf";
    var pdfFile = new File(docPath + "/" + pdfName);

    // Папка для временных JPG
    var tempFolder = new Folder(docPath + "/temp_layers_jpg");
    if (!tempFolder.exists) {
    tempFolder.create();
    }

    // Функция для экспорта слоев
    function exportLayersToJPG() {
    var layers = getAllLayers(doc);
    // Сортируем слои снизу вверх
    layers = layers.reverse();

    var jpgFiles = [];

    for (var i = 0; i < layers.length; i++) {
    var layer = layers[i];
    doc.activeLayer = layer;

    // Скрываем все слои
    toggleAllLayers(false);
    // Отображаем текущий слой
    layer.visible = true;

    // Создаем дубликат документа с одним видимым слоем
    var dup = doc.duplicate();
    dup.flatten();

    Оставлять заявки могут только авторизованные пользователи.

    Другие открытые задания:

    поиск заданий