Печать этикеток

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Аватара пользователя
saratovout
Сообщения: 260
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Печать этикеток

Сообщение saratovout » 26 окт 2020, 20:19

esklad24_2 писал(а):
26 окт 2020, 20:00
Нужна картинка Type: "Image", FieldName: "Картинка",
Можно просто указать: { FieldName: "Картинка", Value: "5449000012203" } ???
Или же нужно передавать само изображение в формате BMP?
Если вы хотите напечатать штрих-код, то вам нужно указать
Type: "Barcode" //тип штрих-код
TypeBarCode: "EAN13", //вид штрих-кода, см. документацию
Left: 1, Top: 1, Width: 40, Height: 20, //размер и позиция
Value: "4823063108867", //цифры вашего штрихкода
FieldName: "field-barcode-no-1" //что угодно, не напечатает, это механика для шаблона
PrintHRI: true, //если нужно чтобы он сам напечатал текст под штрихом, но это поддерживается не всеми вариантами
Static: true, //если в пуле вы печатаете одно и тоже, т.е. на 1 задание все такие блоки одинаковы

Если принтер НЕ поддерживает выбранный вид штрих-кода, то тогда вам нужно будет делать картинку "на стороне" и передавать ее уже с Type: "Image". Но обработка будет дольше.
Последний раз редактировалось saratovout 26 окт 2020, 20:51, всего редактировалось 2 раза.
good films make your life better..

Аватара пользователя
saratovout
Сообщения: 260
Зарегистрирован: 08 авг 2019, 23:52
Откуда: Boston
Контактная информация:

Re: Печать этикеток

Сообщение saratovout » 26 окт 2020, 20:33

вот вам кусок боевого примера, чтобы вы понимали логику:

Код: Выделить всё

{
	"IdCommand":"***",
	"Command":"PrintLabels",
	"NumDevice":"5",
	"PackageStatus":"last",
	"LabelFormattings":{
		"Width":101,"Height":50,"Fields":[    /* шаблон задаёт позиции и размеры блоков, типы блоков; если одинаковый для всех, то указываете Static=true и заполняете Value */
			{"Type":"Barcode","FieldName":"f6244882","TypeBarCode":"Qrcode","PrintHRI":false,"CheckSymbol":false,"Top":14,"Left":26,"Width":21,"Height":21,"Orientation":0,"FontSize":2,"Static":false,"Value":" "},
			{"Type":"Barcode","FieldName":"f6315212","TypeBarCode":"Datamatrix","PrintHRI":false,"CheckSymbol":false,"Top":42,"Left":39,"Width":7,"Height":7,"Orientation":0,"FontSize":2,"Static":false,"Value":" "},
			{"Type":"Text","FieldName":"f6244679","Top":47,"Left":89,"Width":2,"Height":2,"Orientation":0,"FontSize":5,"Static":true,"Value":"+"},
		]
	},
	"Labels":[    /* сами этикетки: по FieldName мы понимаем какой блок, в Value изменяемый текст/штрих/иллюстрация; статические блоки (одинаковые) уже заданы в шаблоне выше, их здесь повторять не нужно */
		{
			"Quantity":1,"Fields":[
				{"FieldName":"f6244882","Value":"t=20200103T105900&s=260.00&fn=8711000100002200&i=24358&fp=373380839&n=1"},
				{"FieldName":"f6315212","Value":"2020065585203"},
			]
		},
		{
			"Quantity":1,"Fields":[
				{"FieldName":"f6244882","Value":"t=20200103T105900&s=260.00&fn=8711000100002200&i=24358&fp=373380839&n=1"},
				{"FieldName":"f6315212","Value":"2020064830311"},
			]
		}
	]
,"KeySubLicensing":"***"
}
В примере: размер этикетки 101х50, печатается 2 бланка по одной копии, в каждом 3 блока (блоки по позиции и по размеру должны влазить в вашу этикетку) - один текстовый "статический" с "плюсиком" (в Labels его соотв. нет) и два штрих-кода - QR и Datamatrix.

:idea: Отстраивайте позиционирование печати/бумаги/обрезки на принтере с помощью драйверного теста ДО экспериментов с Unitserver, иначе вам потом, скорее всего, придется всё передвигать.

LabelFormattings - шаблон, задаёте структуру для всех,
Labels - динамика по шаблону, здесь указываете все этикетки.

Теперь по вашей задаче:
если вам нужно напечатать по одному шаблону разные штрихи, то в LabelFormattings вы задаете все блоки, а в Labels только меняете Value.
good films make your life better..

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Печать этикеток

Сообщение Audim » 26 окт 2020, 21:52

В kkmserver подключено как Windows Принтер?

Ответить