Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Enfocus PitStop | PitStop Server | Switch

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8

Открыть новую тему     Написать ответ в эту тему

astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В данной ветке только обсуждение использования! Взять программу можно в Варезнике




Enfocus Switch - Программа, которая в первую очередь предназначена для полиграфии, но также подойдет и для использования и в других сферах.
Позволяет автоматизировать рутинные процессы. Имеет модульную структуру, позволяющую использовать как встроенные модули, так и запускать внешние программы через командную строку. Высочайшая степень автоматизации достигается благодаря встроенной поддержке javascript (Node.js) и метаданных.
Имеющиеся модули связи позволяют принимать и отправлять файлы через горячие папки, почту, ftp, веб-хуки и встроенный веб-сервер. Есть возможность архивировать и запаковывать в архив файлы, обмениваться данными с базами данных.
 
Это программное обеспечение, которое уменьшает число ошибок и автоматизирует повторяющиеся процессы, такие как сортировка и получение файлов. Автоматизация с помощью Enfocus Switch высвобождает время специалистов, чтобы они могли концентрироваться на более важной работе.  Enfocus Switch – это модульное решение, интегрируемое с существующими системами и сторонними приложениями в целях ускорения обработки задач.
 
Enfocus Switch автоматически загружает файлы из одного или более FTP-серверов, получает файлы в качестве вложений в письма электронной почты или обрабатывает загружаемые файлы. Затем данные автоматически сортируются по различным папкам или передаются в нужное место, где каждый файл готов для обработки и архивации.
 
Продукт Enfocus Switch, также способен отправлять уведомления по электронной почте менеджерам по продажам или клиентам тогда, когда это необходимо. Enfocus Switch предоставляет опции автоматизации и интеграции сторонних приложений из индустрии графического дизайна. Решение легко взаимодействует с Enfocus PitStop Server и PitStop Connect.
 
Enfocus Switch – это надежная система, масштабы и решения которой можно расширять за счет подключения модулей сценариев, баз данных и метаданных.


Пользовательские скрипты мы собираем на меге
Руководство по написанию скрипта для Switch на примере XLSXtoCSV

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 13:57 23-04-2023 | Исправлено: shrmn, 12:27 05-12-2023
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.
Выложил на мегу новый скрипт NormalizeSpotPDFbox.
Он предназначен для 2 вещей:
* Транслитерировать имена сепараций внутри pdf файла. При этом можно указать путь к файлу с правилами транслитерации (образец transliteration.json для кириллицы на меге). Символы, отсутствующие в transliteration.json и не добавленные в список разрешенных симоволов будут заменены на выбранный вами символ (либо удалены, если вы не выберете символ для замены).
* Нормализовать написание сепараций. Не будет кучи отдельных сепараций типа "Лак", "lak" и "LAK" - они все будут схлопнуты в одну "Lak". "пантон 293" будет транслитерирован и превратится в "PANTONE 293 C", "187cvu" в " "PANTONE 187 CVU", "warm gray" в "Warm Gray".
 
Скрипт написан на java с использованием библиотеки Apache PDFBox, которая позволяет удобно редактировать внутренности PDF. К сожалению, на Node.JS аналога не нашлось. А в Enfocus pitstop, до вышедшего на днях pitstop 24.11, не было возможности передавать имя сепараций в модуль Rename Spot Color в виде переменной. В 24.11 такая возможность появилась, но я пока не тестировал.
 
Для работы скрипта должна быть либо установлена java, либо можно скачать JRE в виде zip архива (с сайта Oracle или опенсорсный Adoptium), распаковать его и указать путь к папке в настройках скрипта.
 
В общем, если что-то непонятно - пишите, спрашивайте.
Если кому-то интересно, могу накатать статью, как это сделано, опубликовать код.
 
PS
Я немного поторопился с выкладыванием скрипта: в ходе тестирования обнаружилось, что файлы записанные из некоторых программ, например Signa или Agfa Apogee PDFImposer, обрабатываются некорректно. Они записывают информацию о сепарациях на уровне объекта, а скрипт ищет её на уровне страницы, не находит, и поэтому ничего не происходит. В общем, буду дорабатывать...
 
 
xcapture
спасибо.

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 16:26 06-11-2024 | Исправлено: astranavt, 19:10 06-11-2024
NIGG18rus

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexgav103
 
начните вот с этого, все остальное придет с опытом
 
#pitstop
 
 
#switch

Всего записей: 20 | Зарегистр. 21-11-2023 | Отправлено: 21:25 13-11-2024
xcapture



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья, есть вопрос.  
Наверное по асинхронности кода. Есть такой тестовый скрипт. Функция first()отправляет в определенное соединение входящий файл, вторая и третья пишут в лог и ничего больше. По факту отправка работы начинается только после выполнения третьей функции. И если для примера активировать функцию задержки (delay(), которая сейчас закомментирована) между первой и второй, то отправка начнётся после задержки, выполнения второй и третьей функции. Мне хотелось бы получить следующий результат. Выполнение функции afterFirst() только после того как задание фактически будет отправлено из функции first().
 

Код:
 
async function jobArrived(s: Switch, flowElement: FlowElement, job: Job) {
    async function first() {
        await job.log(LogLevel.Warning, 'Первая функция');
        let newJob = await job.createChild(jobPath);
        for (const connection of outConnections) {
            if (connection.getName() === 'first') {
               await newJob.sendTo(connection, 'newName.pdf')
            }
        }
    }
    async function afterFirst() {
        await job.log(LogLevel.Warning, 'Вторая функция');
    }
 
    async function afterSecond() {
        await job.log(LogLevel.Warning, 'Третья функция');
    }
 
    async function delay(intreval: number) {
        await job.log(LogLevel.Warning, `Задержка ${intreval} секунд`);
        return new Promise(resolve => setTimeout(resolve, intreval * 1000));
    }
 
    const outConnections = await flowElement.getOutConnections();
    const jobPath = await job.get(AccessLevel.ReadOnly);
 
    await first();
    // await delay(30);
    await afterFirst();
    await afterSecond();
    await job.sendToNull();
}
 

Всего записей: 118 | Зарегистр. 30-01-2007 | Отправлено: 15:26 14-11-2024 | Исправлено: xcapture, 16:15 14-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xcapture
попробуй завернуть first в try{}, а остальные в finally{}
  try {
    await first();
    } finally {
    await afterFirst();
    await afterSecond();
    await job.sendToNull();
    }
 
Добавлено:
xcapture
а вообще проблема, наверное, в том, что в этой строке нет await
newJob.sendTo(connection, 'newName.pdf')

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 15:36 14-11-2024
xcapture



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
astranavt
await был потерян в процессе подготовки кода к копированию на форум. На поведение скрипта не повлиял. try... finally тоже не повлиял

Всего записей: 118 | Зарегистр. 30-01-2007 | Отправлено: 16:18 14-11-2024 | Исправлено: xcapture, 16:19 14-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xcapture
такого быть не должно. если выложишь весь набор (флоу, скрипт, файл), могу посмотреть.

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 16:32 14-11-2024
xcapture



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
astranavt

Цитата:
могу посмотреть.

Был бы очень признателен.
#
 

Всего записей: 118 | Зарегистр. 30-01-2007 | Отправлено: 16:46 14-11-2024 | Исправлено: xcapture, 16:47 14-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xcapture
не знаю, у меня корректно работает, попробовал файлы разного размера:
16:56:51 Третья функция
16:56:51 Вторая функция
16:56:21 Задержка 30 секунд
16:56:20 Первая функция

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 17:01 14-11-2024
xcapture



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
astranavt
Это да... Лог вполне себе. Но фактическая передача работы в следующий коннектор происходит в последнюю очередь
16:13:55    Job _01PH8_newName.pdf was placed in folder Folder 5
16:13:55    File ‘_01PH7_job.pdf’ was sent to null; it will be deleted when the entry point finishes
16:13:55    Третья функция
16:13:55    Вторая функция
16:13:25    Задержка 30 секунд
16:13:25    Первая функция
 
Вторую функцию хочу использовать для поверки существования JPEG-файла, который выйдет через некоторое время из верхней ветки.

Всего записей: 118 | Зарегистр. 30-01-2007 | Отправлено: 17:09 14-11-2024 | Исправлено: xcapture, 17:14 14-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xcapture
надо читать мануал, сходу в нем не нашел как именно реализовано перемещение файлов, но похоже, что в реальности файлы внутри флоу двигаются встроенными методами sendTo только после отработки всего скрипта.
Попробуй перекладывать файл не с помощью  
  await newJob.sendTo(connection, 'newName.pdf')
а
  await fs.copyFile(jobPath, 'new-path-to-folder\newName.pdf');
 
Добавлено:
Но вообще сам подход неверный. Если я правильно понял, ты хочешь с помощью imagemagick сделать джипег и потом его залогировать?
Если так, то ты можешь  это сделать внутри скрипта, без дополнительных шагов в флоу.
С помощью модуля для ноды "child_process" можно запустить imagemagick c нужными параметрами, дождаться выполнения, положить джипег куда надо, залогировать результат

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 18:21 14-11-2024
xcapture



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
astranavt
c fs.copyFile интересно получается, что файл копируется сразу, но дальнейшие движения скопированного файла нет.
 
В итоге реализовал это через использование двух точек входа  в одном скрипте jobArrived отправляет файл куда  надо, а timerFired проверяет результат и все остальное.
 
Про неверный подход я соглашусь. Спасибо за совет и за подсказку про "child_process". Буду работать в этом направлении.
 

Всего записей: 118 | Зарегистр. 30-01-2007 | Отправлено: 14:19 18-11-2024
alexgav103

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверное банальный вопрос, но перерыл всё: в SW22 Fall нет Execute command. Доку по нему нашёл, всё супер. Но где взять его, в панельках нет. Остальные все элементы есть, может смотрю "не туда". Заранее спасибо!

Всего записей: 70 | Зарегистр. 20-10-2018 | Отправлено: 20:52 23-11-2024 | Исправлено: alexgav103, 20:52 23-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexgav103
ставить надо с отключенным интернетом, тогда модули пропадать не будут.
Можешь попробовать этот архив распаковать в c:\ProgramData\Enfocus\
Если не поможет, то переустанавливать.

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 21:06 23-11-2024
alexgav103

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я, видимо, что-то не понимаю.
Проверил ваш пак, там действительно есть ExecuteCommand. Положил к себе.  
Но во Flow search (да и просто по списку элементов) её нет.  
Софт встал нормально, у меня работает PS connector, acrobat, QI и прочее. А exec нету =) Магия.
 
UPD:
Посмотрел, у меня часть Flow элементов есть, а часть присутствует в установленных, но нет в списке в самом SW. Ключи все горят зелёным. Всё запуски были с отключенным интернетом.
 
UPD2:
Ну а кто бы перезапустил сервер после замены, надо не забывать.  
Спасибо, всё появилось!

Всего записей: 70 | Зарегистр. 20-10-2018 | Отправлено: 22:02 23-11-2024 | Исправлено: alexgav103, 23:10 23-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так, я наконец допилил свое приложение normalize_spot_color для транслитерации и нормализации имен сепараций в пдф-файлах. Теперь рекурсивно обрабатываются formXobjects, поддерживаются patterns, shadings, imageXobjects, DeviceN и Nchannel.
Все мои тестовые файлы обработались корректно (и очень быстро).
Залил на мегу новую версию normalize_spot_color-1.1.jar
А сюда положил описание + исходный код:
https://telegra.ph/normalize-spot-color-11-23
Исходный код состоит из двух частей:
- код на Java для основной программы (я честно говоря очень впечатлен библиотекой PDFBox, с её помощью можно реализовать если не весь, то наверное почти весь функционал Pitstop)
- код для скрипта Switch. Там я в частности использую child_process для исполнения кода Java из среды node.js. Но с помощью такого подхода можно реализовать запуск любых консольных приложений, по сути сделать свою замену модулю Execute command.
 
alexgav103
а, вижу, хорошо что получилось

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 00:13 24-11-2024 | Исправлено: astranavt, 13:36 26-11-2024
alexgav103

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересно, а если получить по существующей подписке Free app, она потом в поломанном SW приживётся? Не было ли у кого-нибудь опыта?

Всего записей: 70 | Зарегистр. 20-10-2018 | Отправлено: 22:56 24-11-2024
xcapture



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexgav103
Пытался. Результат отрицательный. Не приживается.
Со временем пришел к выводу, что без сервисного контракта имеет смысл тратить время на изучение Switch Spring Scripting Guide (Node.js). Сам будешь делать вещи не хуже Free App.
 
astranavt
Спасибо за приложение! Только по ссылке с поста не получается скачать. Из шапки можно забрать.

Всего записей: 118 | Зарегистр. 30-01-2007 | Отправлено: 12:14 25-11-2024 | Исправлено: xcapture, 14:30 25-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xcapture
а можешь поделиться этим приложением из стора? интересно глянуть

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 13:37 26-11-2024
xcapture



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
astranavt
Не совсем понял чем поделиться?

Всего записей: 118 | Зарегистр. 30-01-2007 | Отправлено: 15:04 26-11-2024
astranavt

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xcapture
О чем alexgav103 спрашивал - приложение из стора с бесплатной подпиской.

Всего записей: 184 | Зарегистр. 11-10-2006 | Отправлено: 15:14 26-11-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8

Компьютерный форум Ru.Board » Компьютеры » Программы » Enfocus PitStop | PitStop Server | Switch


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru