Пользовательские имена экспортируемых файлов

По умолчанию Barcode использует содержимое (данные) штрих-кода для именования экспортируемых файлов. Это можно изменить в настройках, но тогда остальная часть урока не будет применима.

Формат генерируемого имени зависит от символики, наличия дополнения и т.д. Программа старается создать подходящее имя, но иногда требуется больше гибкости.

Именование файлов с помощью JavaScript

Приложение Barcode позволяет предоставить JavaScript-код, который будет генерировать имена экспортируемых файлов.

Скрипт получает всю информацию о данных и параметрах штрих-кода и генерирует имя файла, идеально соответствующее вашим требованиям. Хотя это требует некоторых навыков программирования, вы получаете очень гибкий инструмент для именования файлов.

Создание простого скрипта

Щёлкните правой кнопкой по любому штрих-коду в списке и выберите Reveal in Finder/Explorer. Вы попадёте в папку штрих-кодов; перейдите в родительскую папку. Именно там нужно создать файл скрипта.

Вам понадобится простой текстовый редактор. MS Word или Apple Pages не подойдут, так как они не сохраняют простой текст. Нужен редактор кода, такой как Visual Studio Code, Sublime Text, Блокнот или аналог.

Установив редактор, создайте пустой файл “export.js” в этой папке.

Откройте файл в редакторе и поместите в него следующий код:

function exportName(params) {
    return "My File Name";
}

Если код выше выглядит пугающе — просто свяжитесь с нами и опишите ваши потребности, чтобы мы сделали скрипт за вас. Так будет быстрее и проще для обеих сторон.

Если код выглядит просто, убедитесь, что файл сохранён, и попробуйте экспортировать штрих-код из Barcode. В окне сохранения вы должны увидеть имя “My File Name”. Обратите внимание: расширение файла настраивается в параметрах и не затрагивается скриптом.

Если “My File Name” не отображается, убедитесь, что опция Use last exported file name выключена в секции Export настроек. Если выключена, проверьте, нет ли ошибок в скрипте и правильно ли сохранён файл. Проверьте лог через Help → Open System Folder в главном меню. Ошибки скрипта будут отражены в логе.

Если ничего не помогает — свяжитесь с нами.

Когда всё заработает, можно приступать к настоящему делу :)

Простые скрипты именования

Функция exportName() имеет единственный параметр params. Это словарь с информацией о штрих-коде, которую можно использовать для именования файлов. Вот что там есть:

Последние два параметра опциональны и присутствуют, только если штрих-код их поддерживает. Например, для EAN-13 вы получите оба, для EAN-8 — только data-fixed, для QR-кода — ни одного. Особенность этих полей в том, что они содержат добавленную контрольную цифру и правильно дополнены нулями. Barcode позволяет пропустить контрольную цифру при вводе, но не при сохранении, поэтому если вы хотите опустить её при вводе, но иметь в имени файла — используйте этот параметр. Попробуем.

Именование файлов по данным штрих-кода

Вот скрипт для именования по данным. Это можно сделать и без скрипта, но это хороший пример:

function exportName(params) {
    return params["data"];
}

Скрипт просто возвращает поле data из словаря параметров, содержащее исправленную версию данных.

Пользовательский префикс и высота

Другой распространённый сценарий — добавить высоту штрих-кода в имя файла. Добавим ещё пользовательский префикс для сложности:

function exportName(params) {
    const height_mm = params["barcode-height"]; // получаем высоту
    const height_inches = height_mm / 25.4; // в дюймы
    const height_formatted = height_inches.toFixed(2); // два знака

    const base = params["data"]; // основа имени

    const prefix = "MyBarcode"; // префикс

    // собираем всё вместе
    return prefix + "_" + base + "_" + height_formatted + " in";
}

При сохранении с этим скриптом вы должны получить что-то вроде “MyBarcode_1234567890_1.22in” в качестве предлагаемого имени.

Доступ к данным штрих-кода

Можно пойти глубже и получить доступ к исходным данным из скрипта. Тем же, что редактируются на правой панели редактора. Для этого используется переменная model.

Проверка индикатора светлого поля

Сделаем скрипт, выводящий состояние индикатора светлого поля в имя файла, если символика его поддерживает.

function exportName(params) {
    // сначала основа имени
    let res = params["data"];

    // доступ к параметру светлого поля, если есть
    const lm = model.lightMarginIndicator;
    if (lm != undefined) {
        const lm_enabled = lm.enabled;
        if (lm_enabled) {
            res += "_LM"; // добавляем _LM
        } else {
            res += "_NOLM"; // добавляем _NOLM
        }
    }

    // возвращаем результат
    return res;
}

Код проверяет, поддерживает ли модель опцию индикатора светлого поля, и получает его состояние. Затем добавляет суффикс в имя в зависимости от состояния.

Информация о масштабе

Другой распространённый сценарий — масштаб штрих-кода в имени файла:

function exportName(params) {
    // основа имени
    const base = params["data"];

    // масштаб, всегда присутствует
    const scale = model.scale;

    let suffix = "";
    if (scale == 1.0) {
        suffix = "Normal";
    } else if (scale < 1.0) {
        suffix = "Small";
    } else {
        suffix = "Large";
    }

    // форматируем и возвращаем
    return `{base}_{suffix}`;
}

Код получает масштаб (1.0 означает 100%) и добавляет суффикс в зависимости от значения.

Добавление информации о клиенте

Добавим имя клиента как префикс к имени файла:

function exportName(params) {
    // основа имени
    let res = params["data"];

    // пытаемся получить имя клиента
    const customer = model.notes ? model.notes.customer : "";

    // добавляем префикс, если указан
    if (customer != "") {
        res = `{customer}_{res}`;
    }

    return res;
}

Код проверяет, есть ли поле notes и содержит ли оно непустое имя клиента. Если да — оно используется как префикс.

Нужно что-то ещё?

Существует гораздо больше параметров штрих-кода для настройки имени файла. Свяжитесь с нами с вашими требованиями, и мы поможем сделать скрипт и добавим его сюда, чтобы другие тоже могли им воспользоваться.

Больше Информации о Barcode

Инсталляция

Основы

Штрих-коды EAN

Штрих-коды UPC

Штрих-коды NDC

QR Коды

Другие Штрих-коды

Экспорт

Автоматизация

Другое