На цій сторінці
PalmOrder для Android друкує документи через Bluetooth-принтер, який приймає текст по Bluetooth Classic SPP. Інтегратор готує print_forms.xml і шаблони .prn, а на Android-пристрої вибирають принтер і кодування.
Налаштування принтера доступні для пристрою з ліцензією FULL. Тип ліцензії задається під час парування із сервером.
Що підготувати
- Принтер із підтримкою Bluetooth Classic SPP і текстового друку.
- Інструкцію принтера з його кодуваннями, таблицями символів і кількістю символів у рядку.
- Папір і заряджений або підключений до живлення принтер.
- Файли друкованої форми для потрібного документа.
Сумісність залежить від способу підключення, команд і кодування конкретної моделі. Перед використанням власної форми надрукуйте вбудовану тестову сторінку PalmOrder.
Підключення принтера
- Увімкніть принтер і Bluetooth на Android-пристрої.
- У налаштуваннях Bluetooth Android знайдіть принтер і виконайте спарування. Якщо потрібен PIN, використайте код з інструкції принтера.
- У PalmOrder відкрийте Налаштування → Друк → Принтер.
- Натисніть виберіть пристрій та оберіть принтер зі списку. PalmOrder показує пристрої, які вже спаровані з Android.
- Якщо Android запитає доступ до пристроїв поблизу, надайте його PalmOrder. На Android 12 і новіших він потрібен для Bluetooth-з'єднання. Дозволи Bluetooth в Android.
- Задайте кодування відповідно до принтера та натисніть Надрукувати тестову сторінку.
- Перевірте текст і українські літери, після чого збережіть налаштування принтера.
Параметри принтера
| Налаштування | Як використовувати |
|---|---|
| Пристрій друку | Вибраний спарований Bluetooth-принтер. Після заміни принтера виберіть новий пристрій. |
| Кодування | Кодування байтів, які застосунок надсилає принтеру. Початкове значення — Cp1251. Воно має відповідати таблиці символів, увімкненій у самому принтері. |
| Затримка в кінці (мс) | Пауза після надсилання даних перед закриттям потоку. Початкове значення — 500. Якщо кінець документа не друкується, перевірте налаштування й поведінку принтера та за потреби збільште паузу. |
| Використовувати незахищене з’єднання | Вибір іншого режиму Bluetooth RFCOMM. Застосовуйте відповідно до вимог конкретного принтера, якщо звичайне підключення з ним не працює. |
Шаблон .prn зберігайте у UTF-8. Після підстановки даних застосунок перетворює готовий текст на кодування з налаштувань принтера. Вибір Cp1251 у PalmOrder сам по собі не перемикає таблицю символів принтера.
Якщо використовується Cp866, клієнт застосовує власне перетворення, зокрема замінює І/і на латинські I/i, а Ґ/ґ на Г/г. Для друку цих літер без замін виберіть підтримуване принтером кодування з відповідними символами.
Готовий приклад на 32 символи
Завантажте архів форми замовлення для текстового друку. Він містить:
| Файл | Призначення |
|---|---|
print_forms.xml | Перелік форм із формою «Замовлення, 32 символи». |
order_32_uk.prn | Текстовий шаблон із товарами, коефіцієнтами фасовки та сумами. |
exchange-profile.xml | Профіль завантаження цих файлів. |
README.txt | Порядок встановлення та пояснення ширини й валюти прикладу. |
Форма розрахована на моноширинний текст у 32 символи. У прикладі довгі назви товарів обрізаються до 32 символів, а числові значення вирівнюються пробілами. Перевірте ширину на вашому принтері та змініть шаблон, якщо потрібно.
Перелік форм — print_forms.xml
<?xml version="1.0" encoding="utf-8"?>
<print-forms>
<document name="order">
<forms>
<form lang="uk">
<presentation>Замовлення, 32 символи</presentation>
<file>order_32_uk.prn</file>
</form>
</forms>
</document>
</print-forms>
<document name="order"> задає документ, а <form> — одну форму. У <file> вказуйте точне ім'я шаблону з розширенням, без шляху до теки. Для іншого документа використайте його ім'я, наприклад invoice для оплати або storecheck для стор-чеку.
print_forms.xml визначає повний перелік форм для друку. Щоб зберегти наявні форми, додайте запис прикладу до свого файла й залиште записи решти форм.
Правила вибору за lang такі самі, як для PDF-форм. Для української використовуйте uk. Якщо доступно кілька форм для документа, застосунок запропонує вибір.
Шаблон .prn
У .prn використовуються звичайний текст, перенесення рядків і теги Chunk. Рядки табличної частини перебираються через table:
{% loop in $table as $row %}
{$row.name|sprintf(%-32.32s)}
{$row.count|number|sprintf(%8s)} {$row.price|decimal|sprintf(%10s)} {$row.sum|decimal|sprintf(%12s)}
Коеф. фасовки: {$row.koef|number}
{% onEmpty %}
У документі немає товарів
{% endloop %}
count — введена кількість, koef — кількість базових одиниць у вибраній фасовці, price — ціна базової одиниці. Поле sum містить суму рядка з урахуванням розрахунків застосунку.
Для числового рядка приклад відводить 8, 10 і 12 символів та два пробіли між колонками — разом 32. Ширина в sprintf є мінімальною, тому дуже великі числа можуть вийти за її межі. Перевіряйте форму з типовими для вашої роботи кількостями й сумами.
Синтаксис підстановок, умов, фільтрів та вирівнювання описано на сторінці Мова шаблонів — Chunk.
Команди принтера
Для керувальних послідовностей у .prn підтримується протокол escp. Наприклад, {% escp.0A %} додає символ переведення рядка з кодом 0A, а {% escp.esc E %} — символ ESC і літеру E.
Дію послідовності визначає команда у вашій моделі принтера. Використовуйте коди з її інструкції та перевіряйте результат на принтері. Архівний приклад містить текст із перенесеннями рядків і використовує поточний режим принтера.
Передавання форми й друк
- Розпакуйте архів. Якщо вже використовуєте
print_forms.xml, об'єднайте записи форм. - Покладіть
print_forms.xmlтаorder_32_uk.prnбезпосередньо вoutboxпотрібного пристрою. - Якщо використовуєте профіль Завантажити форми для друку зі стандартного
exchange.xml, він уже отримуєprint_forms.xmlі*.prn. Або додайте профіль ізexchange-profile.xmlусередину<palm-client>свогоexchange.xml. - Після зміни
exchange.xmlвиконайте Завантажити файл обміну. Потім виконайте профіль завантаження форм і перевірте журнал обміну. - Заповніть реквізити компанії в Налаштування → Друк → Реквізити.
- Відкрийте замовлення з товарами й виберіть Друк у меню документа. За наявності кількох форм виберіть потрібну.
- Перевірте українські літери, кількість, коефіцієнти, ціни, знижку, підсумок і завершення друку.
Після оновлення шаблону повторіть завантаження форм і друк. Перевірка фізичного друку потрібна для кожної моделі принтера та її режиму.
Якщо друк не працює
| Симптом | Що перевірити |
|---|---|
| Немає налаштувань принтера | Тип ліцензії пристрою FULL. |
| Список принтерів порожній | Bluetooth, спарування в Android і дозвіл PalmOrder на пристрої поблизу. |
| Помилка підключення | Живлення, відстань до принтера, вибраний пристрій, підтримку SPP та відсутність з'єднання з іншим телефоном. |
| Вбудована тестова сторінка друкується, а форма недоступна | Отримання print_forms.xml і .prn, ім'я документа та запис <form>. |
| Замість літер інші символи | Кодування PalmOrder та таблицю символів принтера. |
| Колонки зміщені або рядки переносяться | Кількість символів у рядку, поточний шрифт і довгі значення в шаблоні. |
| Кінець документа не друкується | Завершення шаблону перенесеннями рядків, стан принтера та затримку в кінці. |
На папері залишилися теги {$…} | Назви й наявність полів, умови або заміни для необов'язкових значень. |
