Пользовательские имена экспортируемых файлов
По умолчанию 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. Это
словарь с информацией о штрих-коде, которую можно использовать для
именования файлов. Вот что там есть:
- name — имя экспортируемого файла по умолчанию, как если бы скрипта не было;
- barcode — имя штрих-кода, как в списке;
- data — “исправленные” данные штрих-кода;
- use-data-for-naming — флаг, определяющий, использовать ли data или barcode для имени по умолчанию;
- symbology — символика, как во всплывающем меню кнопки Plus;
- canvas-width, canvas-height — размер холста в мм;
- barcode-width, barcode-height — размер штрих-кода в мм без дополнительных отступов и рамок.
Последние два параметра опциональны и присутствуют, только если штрих-код их поддерживает. Например, для 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
Инсталляция
- Инсталляция — как установить Barcode;
- Активация Лицензии — как активировать Barcode.
Основы
- Интерфейс — подробное описание интерфейса Barcode;
- Управление штрих-кодами — добавление, переименование, клонирование и удаление;
- Импорт штрих-кодов — импорт изображений штрих-кодов;
- Пользовательские тексты — добавление текстовых элементов к штрих-кодам;
- Панель меток — настройка рамки, полей и холста;
- Ширина штрихов — компенсация растекания краски;
- Свободная зона — обеспечение хорошего сканирования;
- Использование Цветов — раскрашиваем штрих-коды и тексты.
Штрих-коды EAN
- Создание Штрих–кодов EAN–13 — типовые коды для магазинов;
- Калькулятор EAN–13 — как вычислить контрольную цифру EAN–13.
Штрих-коды UPC
- Создание Штрих–кодов UPC–A — как создавать штрих–коды UPC–A;
- Создание UPC-E — как создавать штрих-коды UPC-E;
- Калькулятор UPC–A — вычисление контрольного разряда UPC–A.
Штрих-коды NDC
- Штрих-коды NDC — о штрих-кодах NDC и их создании;
- Калькулятор NDC — вычисление контрольной цифры NDC.
QR Коды
- QR-код — как создавать и настраивать популярные 2D-коды;
- QR-код с картинкой — добавление изображения в QR-код.
Другие Штрих-коды
- Генератор ISBN — как создавать штрих-коды ISBN;
- Штрих-код BC412 — для идентификации кремниевых пластин;
Экспорт
- Прозрачные штрих-коды — штрих-коды с прозрачным фоном;
- Штрих-коды PNG — экспорт в формат PNG;
- Векторные штрих-коды — экспорт в векторные форматы;
- Имена файлов — пользовательские имена для экспорта.
Автоматизация
- Пакетная Генерация — создаем много штрих–кодов разом;
- Работа из Командной Строки — создание штрих–кодов из консоли.
Другое
- Саморисующийся SVG — рисование QR-кодов в браузере одним SVG-файлом;
- Ненастоящие штрих-коды — нужен случайный штрих-код-заглушка?
- Другие типы штрих-кодов — история и особенности менее известных форматов;
- Локализация — учим Barcode говорить на вашем языке.