Автору однажды поручили наладить учёт подписки на отраслевой журнал. Номер на каждом экземпляре был один и тот же (ISSN), а нужно было различать выпуски по дате. Тогда и пришлось разбираться, как работает система идентификации периодики.
ISSN присваивается один раз всему изданию в целом. Он не меняется от номера к номеру. Для отдельного выпуска можно добавить дополнительный код — номер тома и выпуска, но сам ISSN остаётся основой. В статье объясняем, как генерировать штрихкод для журнала на основе ISSN.
Структура ISSN
ISSN всегда состоит из 8 цифр (7 значащих + контрольная), разделённых дефисом на две группы по 4. Пример: 1234-5678. Но в штрихкод превращается не сам ISSN, а его расширенная версия — ISSN-13 (добавляется префикс 977).
Как устроен ISSN-13:
- Префикс 977 — указывает на периодическое издание (по классификации EAN).
- Первые 7 цифр ISSN (без контрольной и без дефиса).
- Две цифры — код цены или дополнительной информации (например, 00 для обычного номера).
- Контрольная цифра — по алгоритму EAN-13 (модуль 10 с весами 1 и 3).
Также существует старый формат ISSN-8 (просто 8 цифр), но он используется только внутри библиотечной сферы, а для торговли нужен ISSN-13.
Как работает генератор штрихкода для ISSN
Основная задача инструмента — преобразовать обычный 8-значный ISSN в штрихкод EAN-13.
- Входные данные: 8 цифр ISSN (с дефисом или без, с контрольной цифрой или без — генератор должен её проверять).
- Формирование номера EAN-13: взять префикс 977, затем 7 цифр ISSN (без контрольной), затем 2 дополнительные цифры (обычно 00), затем рассчитать контрольную сумму EAN.
- Генерация изображения EAN-13.
- Удобочитаемая часть: под кодом нужно напечатать и ISSN-13 (в виде цифр), и оригинальный ISSN (например, ISSN 1234-5678). Это требование многих библиотечных стандартов.
Некоторые продвинутые генераторы позволяют менять две дополнительные цифры (иногда они кодируют номер выпуска или тип приложения). По умолчанию ставится 00.
Дополнительные параметры: цена, номер выпуска
В системе EAN для периодики существуют так называемые «дополнительные 2 цифры» (в позициях 10–11). Они могут означать:
- 00 — отсутствие информации (стандарт).
- 01–09 — резерв.
- 20–29 — периодичность или сезонность.
- Код цены — для стран, где цена на журнал зашифрована в штрихкоде (редко).
Если издание хочет кодировать номер выпуска, часто используют дополнительный код отдельно (дополнительный штрихкод Add-on 2 или 5). Генератор может поддерживать эту опцию, но в простейшем случае достаточно 00.
Где применяется ISSN
Все печатные периодические издания:
- Журналы и газеты (на обложке, обычно рядом с ценой).
- Научные альманахи и ежегодники.
- Бюллетени и информационные листки.
- Библиотечные системы каталогизации (требуют ISSN-8).
Ошибки при генерации и печати
На основе реальных кейсов:
- Использование 8-значного ISSN как есть. Это не EAN, сканеры в магазинах его не поймут. Нужен обязательно ISSN-13 с префиксом 977.
- Неправильный расчёт контрольной цифры. Для ISSN-13 используется модуль 10 с весами 1 и 3, а не модуль 11 как для ISSN-8.
- Путаница с ISBN. Журнал не может иметь ISBN на обложке (разве что у него отдельное книжное приложение).
- Слишком маленькая тихая зона — на обложках журналов много дизайна, но вокруг штрихкода нужно чистое поле.
Заключение
Коротко по делу:
- ISSN — это постоянный идентификатор периодического издания. Для штрихкода он преобразуется в ISSN-13 с префиксом 977.
- Генератор должен уметь принимать 8-значный ISSN, проверять его контрольную цифру (модуль 11) и создавать EAN-13 с префиксом 977.
- Дополнительные 2 цифры (обычно 00) могут настраиваться под нужды издателя.
Вопрос к издателям журналов: используете ли вы Add-on 2 или 5 для кодирования номера выпуска? Или обходитесь простым ISSN-13 с 00? Как это влияет на приёмку в сетях? Жду ваших комментариев.