NDemia Новости CashMatic Рубли Форум

Шаблоны печати


Шаблоны печати применяются для организации вида выходных документов (чеков, квитанций и т.п. - обобщённо выходные печатные документы называются чеками). Прикладная программа (java-скрипт внутри HTML-страницы) передаёт объектам печати всю информацию о принятом платеже и полностью освобождается от необходимости управлять составом, расположением и форматом полей на чеке. Всё доступное прикладной программе управление в этом случае сводится к выбору шаблона печати (см.
Чек по шаблону).

Шаблоны печати (или шаблоны чеков) представляют собой заготовки текста, в который вставлены некоторые специальные указания по разметке выходного документа.
Непосредственно перед печатью выполняется программное преобразование шаблона в конечный выходной текст для печати. Одни фрагменты текста шаблона удаляются из выходного текста, другие - заменяются на программно вычисляемые текстовые значения, некоторые фрагменты могут быть размножены и вставлены несколько раз, с разными подстановками значений. В целом процесс вычисления конечного текста путём различных программных преобразований текста шаблона называется макрообработкой шаблона.
Макрообработка выполняется над особо размеченными фрагментами текста шаблона - макроименами и макроблоками.
Макроимена - это некоторые специальные комбинации знаков, которые при печати заменяются программно вычисляемыми значениями (эта замена называется макроподстановкой). Например, "%t" заменяется на текущее время, "%(cash)" - на принятую сумму наличных денег, и т.д. Разработчик шаблона печати может использовать целый ряд предопределённых (заранее предусмотренных) макроимён, а также может вставлять в шаблон ссылки на переменные сеанса приёма платежа.
Макроблоки - это целые куски текста шаблона, которые обрабатываются в зависимости от типа макроблока - либо удаляются из выходного текста, либо остаются в выходном тексте, либо копируются и вставляются несколько раз (например, чек продажи может содержать несколько товарных позиций, с разными наименованиями и ценами, блок продажи описывается в обобщённом виде для одной товарной позиции, а вставляется в выходной текст в нескольких экземплярах, по одному для каждой товарной позиции, каждый раз с соответствующими макроподстановками наименования и цены товара).
Макроблоки могут содержать внутри себя другие (вложенные) макроблоки. Если макроблок удаляется из выходного текста, то и все вложенные макроблоки удаляются без обработки. Иначе, если макроблок остаётся в выходном тексте (или вставляется дополнительный экземпляр, построенный на основании макроблока), то все вложенные в него макроблоки обрабатываются в соответствии с их типами.
Макроимена и типы макроблоков могут иметь несколько альтернативных имён. Например, сумма принятых наличных денег может быть записана в шаблоне чека как "%m", "%(нал)", "%(nal)" или "%(cash)" - разработчик может выбирать любую форму по своему усмотрению. Аналогично, макроблок позиции продажи может называться "прод", "prod" и "sale" - можно использовать любой вариант, как будет удобнее.
Шаблоны печати могут содержать знаки форматирования шрифта. Для фискального регистратора поддерживается только выбор шрифта строки целиком (а также режим штрих-кода для строки целиком) - для этого разработчик шаблона должен вставить соответствующую команду как макроимя в первой позиции выходной строки.

Шаблоны печати создаются и загружаются как текстовые файлы, поддерживаются следующие форматы:
  • простой 8-битный текстовый формат, кодировка русского языка: Windows cp1251;
  • Юникод, преобразованный UTF8.

    Совместимость: Юникод (UTF-8) в шаблонах печати поддерживается в NDemia CashMatic, начиная с версии 2.7.0


Файлы шаблонов содержат разметку документов и полей на языке описания шаблонов печати NDemia CashMatic.
По умолчанию шаблоны чеков располагаются в папке PrintTemplates внутри папки установки программного продукта NDemia CashMatic ("\Program Files\NDemia\CashMatic"). При установке программы эта папка создаётся и в ней размещаются примеры шаблонов (все примеры полнофункциональны и могут использоваться без модификаций).



тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com