powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Принтер этикеток, сетевой. Как напечатать.
40 сообщений из 40, показаны все 2 страниц
Принтер этикеток, сетевой. Как напечатать.
    #40125453
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть принтер этикеток Honeywell PC42D с ethernet-интерфейсом.
При установке драйверов, можно печатать из "родного" дизайнера этикеток BarTender UltraLite .
Но это не то что нужно.
Печатать нужно из приложения на Delphi7, на этот принтер, через сеть.

Принтер понимает несколько языков, в т.ч. ZPL II.
Как формировать этикетку на этом языке - примерно понятно, и если тестовую этикетку на ZPL послать на принтер через его web-интерфейс, через раздел "Службы" - "Отправить команды принтера" - то получается такая же этикетка как ее можно проверить на сервисе http://labelary.com/viewer.html

Проблема в том что этот же код этикетки непонятно как отправить из Delphi.

Печатаю таким кодом:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
uses
  ... Printers;

procedure TFrmTest.Label_Print;
var
  F: system.text;
  i: integer;
begin
  Printer.PrinterIndex := 0; // это нужный нам принтер
  Printer.Title := 'Этикетка';
  AssignPrn(F);
  //
  Rewrite(F);
  for i := 0 to Memo2.Lines.Count-1 do begin
    WriteLn(F, Memo2.Lines[i]);
  end;//for
  CloseFile(F);
  //
  ShowMessage('Ok');
end;


но драйвер добавляет всякой отсебятины, в результате на принтере вылазит не этикетка а ее код, в виде текста.
Плюс к этому, в ряде случаев, (но прочему-то не в 100%), портятся настройки сделанные на принтере, заменяясь на те которые сделаны в драйвере.

Если в драйвере сделать печать в файл, то в файле оказывается такая фигня:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
'Seagull:2.1:DP
INPUT OFF
VERBOFF
INPUT ON
SYSVAR(48) = 0
ERROR 15,"FONT NOT FOUND"
ERROR 18,"DISK FULL"
ERROR 26,"PARAMETER TOO LARGE"
ERROR 27,"PARAMETER TOO SMALL"
ERROR 37,"CUTTER DEVICE NOT FOUND"
ERROR 1003,"FIELD OUT OF LABEL"
SYSVAR(35)=0
OPEN "tmp:setup.sys" FOR OUTPUT AS #1
PRINT#1,"Printing,Media,Print Area,Media Margin (X),0"
PRINT#1,"Printing,Media,Clip Default,On"
CLOSE #1
SETUP "tmp:setup.sys"
KILL "tmp:setup.sys"
CLIP ON
CLIP BARCODE ON
LBLCOND 3,2
CLL
OPTIMIZE "BATCH" ON
PP42,232:PRBUF 2034
@ ¦ Мю ю}	}	||	| 		{ю
{юz	z
z	y	yx
xvу 'у 0
J
		H

G	
	G
	G
G 	H
IHGFF
F
F			G

HIу 'у 0'



&		%
			%		
				$		
	!	$ 		 	$
		$				$
	
	$
		$			$


	
	$


%
%



&			'WLVMюVNюч 'ч A






	 !ю
		 	 	ю 	(			#				!		!	 		!	!	!	!		
!	!		
	


	

		


50;40<ю41=юч 'ч XG



7		6
		5			5			
 	



			


	





	
								
	

 ь ь ш 'шю ю

y	y
	yю			yю 		‚
Ѓ|zyyю

yю
z
z|у 'ую ю
y	y		z	{	
{ 		|}ю~юy
y	yy
	yy
LAYOUT RUN ""
PF
PRINT KEY OFF


Как бы воспользоваться "драйвером без драйвера", т.е. что бы от него брался только спулер и протокол передачи по сети, и все что я посылаю на принтер передавалось бы 1:1 без отсебятины.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125454
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде бы этот принтер умеет в lpr , но попытка открыть его по самбе ничего не открывает, и совершенно непонятно где узнать имя очереди.

Есть еще какой-то протокол Net1 в котором дефолтный пор 9100, но ничего про него найти не смог.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125455
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печатать из Word, FastReport и прочего - не предлагать :)
Нужно закинуть задание на языке ZPL на принтер, из Delphi.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125457
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
Вроде бы этот принтер умеет в lpr , но попытка открыть его по самбе ничего не открывает, и совершенно непонятно где узнать имя очереди.

В свойствах драйвера или в документации обычно. Кроме того, некторые принтеры умеют включать/отключать протоколы в настройках.
fraks
Есть еще какой-то протокол Net1 в котором дефолтный пор 9100, но ничего про него найти не смог.

Порт 9100 похож на Raw.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125463
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
Печатать из Word, FastReport и прочего - не предлагать :)

Ну и зря.

ЗЫ. Нужно перевести принтер в нужный режим. Или там посмотри https://github.com/TheDelphiCoder/Zebra
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125465
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел как поставить драйвер "Generic/Next Only".
Уже лучше, но все равно не работает. :)
С этим драйвером код на ZPL передается в принтер без отсебятины.
Но:
- ничего не печатается, даже пустая этикетка
- в веб-интерфейсе принтера просмотр буфера изображения показывает что несмотря на отсутствие отсебятины, код на ZPL так же как и при родном драйвере, воспринимается как текст.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125471
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принтере переключил режим языка с "Autosense" на "ZSim" (аналог ZPL II) и наконец-то заработало.

Осталось разобраться с кодировкой русских букв, и набрать не обходимый минимум ZPL-команд, для дизайна этикеток.
Ну и разобраться как туда графику подкидывать, при нужде. Типа лого какого-нибудь.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125491
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

Печать из fastreport в ZPL II будет работать если выбрать режим "матричный принтер"
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125511
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

имел дело с принтером этикеток вот таким примерно (были два разные модели, точно не помню какие): https://tml.lt/ru/tovar/printer-jetiketok-cab-mach2-300/
Он тоже поддерживает, как написано на странице, zpl, но у него есть драйверы, по-моему отдельно USB и сетевой интерфейс, и он работает, как обычный принтер, только нужно правильно задавать размеры листа и того, что выводишь на него. Коллега печатал прямо из CorelDraw вроде что-то, что ему было нужно. Я в программе учёта, когда купили эти принтеры, печатал на нём через FastReport. Так же, как на обычных принтерах A4.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125518
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В уголке :)
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125555
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печатал на Зебрах, Элтронах и Датамаксах из Фастрепорта еще 20 лет назад.
И сейчас печатаю.
Ни разу не прибегал к печати на спецязыке. Зачем ?
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125558
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo,

У меня некоторые зебры при печати штрихкода через ZPL давали лучшее разрешение и качество печати по сравнению с растром
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125563
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
fraks
Печатать из Word, FastReport и прочего - не предлагать


отрисуй всё, что надо, на канве, и отправь на принтер как картинку
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125564
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator
fraks
Печатать из Word, FastReport и прочего - не предлагать


отрисуй всё, что надо, на канве, и отправь на принтер как картинку

А потом, как с гридом , будет спрашивать: "как узнать, что там печатает принтер"...
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125569
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator
fraks
Печатать из Word, FastReport и прочего - не предлагать

отрисуй всё, что надо, на канве, и отправь на принтер как картинку

Т.е. чем сложнее тем лучше что-ли??
Все что мне нужно - принтер умеет печатать самостоятельно, получая задание на несложном текстовом языке.
Разобраться с этим языком существенно проще чем научиться рисовать все эти элементы на канвасе.

ZPL поддерживают все принтеры этикеток.

Этикетка - простой элемент, там нет заморочек как в сложных отчетах.

Зачем тянуть в систему то что не требуется? (Дизайнер, графику и т.п.)

Кроме того, мне нужно печатать такие же этикетки из веб-сервиса на питоне. Там фастрепорта не будет.

Напомню что у принтеров этикеток разрешение 203 dpi.
У лазерных принтеров минимум 600dpi.

Пока нам нужно было печатать много этикеток - мы печатали их на обычном лазерном принтере, на самоклейке. И естественно, это было через FastReport.
Сейчас нам нужно печатать этикетки по одной штуке, и информация на каждой из них - уникальна. Мы не можем напечатать лист или рулон этикеток сразу, они требуются по одной штуке, на самоклейке. Поэтому принтер этикеток.

У принтеров этикеток некоторая проблемность с драйверами. По крайней мере к нашему дрова нашлись не сразу, и было много непоняток, зачем что-то настраивать в самом принтере если настройки в драйвере их потом сносят.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125570
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация примерно так: зачем писать запросы на sql если есть ORM и QueryBuilder.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125573
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FastReport с некоторой версии тоже умеет в ZPL, и у них на сайте нашлась пара статеек по этому поводу.

https://www.fastreport.ru/ru/blog/show/zpl-language/
https://www.fastreport.ru/ru/blog/show/create-ZPL-file-in-Delphi-CBuilder-Lazarus/

правда у меня более старая версия, еще не умеет этого.

Сам ZPL язык, если кто не видел - выглядит так:
https://habr.com/ru/post/266677/

Используя ZPL, этикетки можно формировать хоть на батниках, хоть на bash-скриптах.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125576
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62
В уголке :)

Если что, дизайнер FastReport позволяет выставлять вид гораздо более чем 100%. Для мелких деталей, в данном случае этикеток, было бы гораздо удобнее выставить 200-300% или "по ширине"
:)
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125582
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.zebra.com/content/dam/zebra/manuals/printers/common/programming/zpl-zbi2-pm-en.pdf

http://labelary.com/viewer.html

Онлайн для простых и в общем подойдет макет наклепать.

Еще дизайнер можно скачать с их сайта.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125584
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы кириллица была, надо шрифт в принтер устанавливать. В некоторых идет из коробки. Название уточню завтра у коллег.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125586
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks
s62
В уголке :)

Если что, дизайнер FastReport позволяет выставлять вид гораздо более чем 100%. Для мелких деталей, в данном случае этикеток, было бы гораздо удобнее выставить 200-300% или "по ширине"
:)
Это делалось сколько-то лет назад. Возможно, что когда делал макет, то масштаб и был 200-300%, не помню. Это я просто показал, что на принтере этикеток можно печатать из FastReport.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125593
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite
http://labelary.com/viewer.html
Онлайн для простых и в общем подойдет макет наклепать.

Спасибо, но я эту ссылку писАл в первом же посте темы :)

X-Cite
Еще дизайнер можно скачать с их сайта.

Надо глянуть, что за дизайнер.

X-Cite
Что-бы кириллица была, надо шрифт в принтер устанавливать. В некоторых идет из коробки. Название уточню завтра у коллег.

У меня кириллица искарпоки, что подтверждается печатью ZPL через веб-интерфейс.

Проблема с кириллицей была при печати через драйвер Generic / Text Only .
Оказалось что он, похоже, не умеет в юникод. Впрочем мне и не нужно.
А кодировкой по умолчанию в нем почему-то было выставлено win1252. Поменял на win1251 и кириллица появилась.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125595
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62
fraks
пропущено...
Если что, дизайнер FastReport позволяет выставлять вид гораздо более чем 100%. Для мелких деталей, в данном случае этикеток, было бы гораздо удобнее выставить 200-300% или "по ширине"
:)
Это делалось сколько-то лет назад. Возможно, что когда делал макет, то масштаб и был 200-300%, не помню.
Это я просто показал, что на принтере этикеток можно печатать из FastReport.

Из приведенного скриншота никак не следует умение/неумение печатать на принтере этикеток :)
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125597
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
Печатал на Зебрах, Элтронах и Датамаксах из Фастрепорта еще 20 лет назад.
И сейчас печатаю.
Ни разу не прибегал к печати на спецязыке. Зачем ?

Что бы получить максимально доступное качество штрихкодов.
Что бы не тащить в приложение лишнего кода (принтер все нужное умеет печатать сам).
Что бы ускорить печать (при тонких каналах).
Что бы упростить программу печати.
Что бы отвязаться от каких-либо специфических драйверов.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125598
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
Печатал на Зебрах, Элтронах и Датамаксах из Фастрепорта еще 20 лет назад.
И сейчас печатаю.
Ни разу не прибегал к печати на спецязыке. Зачем ?


Печатать на зебре не на ZPL а растром, ну это как пользоваться микроскопом для забивания гвоздей.
Сравните, за сколько принтер сможет отпечатать 10.000 этикеток из растра. И за сколько если отправить через ZPL. А также качество.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125603
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отправлять в печать надо как-то так...
Мы используем шрифт и печать в UTF-8
автор^CW T,E:TT0003M_.FNT^CI 28
Выдержка кусков...

P.S. Естественно это все в цикле пускает до 10.000 этикеток.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
var
  PrinterName: string;
  PrinterHandle: THandle;
  DocumentNumber: string;
  DocInfo: TDocInfo1;
  Command: string;
  BytesWritten: Cardinal;
  Bytes: TBytes;
begin
            if not OpenPrinter(PChar(PrinterName), PrinterHandle, nil) then
              RaiseLastOSError();
            try
              DocInfo.pDocName := PChar(DocumentNumber);
              DocInfo.pOutputFile := nil;
              DocInfo.pDataType := 'RAW';
              if StartDocPrinter(PrinterHandle, 1, @DocInfo) = 0 then
                RaiseLastOSError();
              try
                // for k := 1 to 10000 do    Если надо в цикле печатать этикетки - пускаем тут цикл..
                  if not StartPagePrinter(PrinterHandle) then
                    RaiseLastOSError();
                  try
                    BytesWritten := 0;

                    Command := '^XA^CW T,E:TT0003M_.FNT^CI 28.........^XZ';

                    Bytes := TEncoding.UTF8.GetBytes(Command);
                    if not WritePrinter(PrinterHandle, @Bytes[0], Length(Bytes), BytesWritten) then
                      RaiseLastOSError();
                  finally
                    if not EndPagePrinter(PrinterHandle) then
                      RaiseLastOSError();
                  end;
                end;
              finally
                if not EndDocPrinter(PrinterHandle) then
                  RaiseLastOSError();
              end;
            finally
              if not ClosePrinter(PrinterHandle) then
                RaiseLastOSError();
            end;
end;
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125615
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksУ принтеров этикеток некоторая проблемность с драйверами.

А зачем дрова если не печатать через GDI? Поток данных просто отправляется в
LPT1/COM2/USB2 и т.д. и т.п. простым WriteLn.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125651
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

fraksУ принтеров этикеток некоторая проблемность с драйверами.

А зачем дрова если не печатать через GDI? Поток данных просто отправляется в
LPT1/COM2/USB2 и т.д. и т.п. простым WriteLn.

Прекрасный вопрос.
Только принтер сетевой.

От драйвера нужно:
- преобразовать физический интерфейс принтера в абстракцию в которую можно сделать WriteLn
- реализовать промежуточный буфер между приложением и принтером, что бы проблемы наличия/отсутствия принтера не затыкали мое однопоточное приложение.

Ну и, собственно, это всё.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125652
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

fraksУ принтеров этикеток некоторая проблемность с драйверами.

А зачем дрова если не печатать через GDI? Поток данных просто отправляется в
LPT1/COM2/USB2 и т.д. и т.п. простым WriteLn.

А примерчики есть? Ни разу не занимался таким на винде.

И еще интересует как отправить на печать через TCP/9100 по RAW. Что бы уж вообще без принтера в системе.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125677
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fraks
И еще интересует как отправить на печать через TCP/9100 по RAW. Что бы уж вообще без принтера в системе.

createsocket, connect, send ?
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125696
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite
L_argo
Печатал на Зебрах, Элтронах и Датамаксах из Фастрепорта еще 20 лет назад.
И сейчас печатаю.
Ни разу не прибегал к печати на спецязыке. Зачем ?


Печатать на зебре не на ZPL а растром, ну это как пользоваться микроскопом для забивания гвоздей.
Сравните, за сколько принтер сможет отпечатать 10.000 этикеток из растра. И за сколько если отправить через ZPL. А также качество.
Микроскоп это скорее про С#, жабу и прочие тормозные питоны.
Печатал как то около 200 тыс. этикеток на элтроне. Ушло неск. коробок этикеток. Для леденцов в розницу.
Про качество соглашусь. Иногда качество ниже желаемого. Но хорошо помогает подъем температуры головки.

ФастРепорт универсален. Работает с любым принтером. Хотя бывает неодинаковое смещение, которое иногда зависит даже от прозрачности бумаги.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125744
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutalcreatesocket, connect, send ?

Ну или всё то же самое в кривой обёртке TClientSocket.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125953
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печать через драйвер "Generic / Text only"

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TFrmTest.Label_Print;
var
  F: TextFile;
  i: integer;
begin
//Printer.PrinterIndex := 0; // выбираем нужный принтер из списка Printer.Printers
  Printer.Title := 'Этикетка';
  AssignPrn(F);
  //
  Rewrite(F);
  for i := 0 to Memo_ZPL.Lines.Count-1 do begin
    WriteLn(F, AnsiToUTF8(Memo_ZPL.Lines[i]))
  end;//for
  CloseFile(F);
end;


и, в принципе, вполне рабочий вариант.

Перекодировка в UTF особо и не нужна, сделана только лишь потому что этикетка дизайнится с помощью
http://labelary.com/viewer.html
а там исходник в UTF передается, поэтому если в коде указать что это 1251 то русского языка ТАМ не будет.
Поэтому, ТАМ пишем в UTF, скрипт этикетки сохраняем себе в 1251, но указав в нем что это UTF, и при отправе на принтер он конвертируется в UTF и таким образом совпадает и команда ^CI 28 и сама кодировка.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40125956
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печать через TCP, без всяких драйверов.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TFrmTest.Label_Print_TCP;  // напечатать этикетку через TCP-socket
var
  i: integer;
begin
  // TTcpClient с вкладки Internet в Delphi7
  TcpClient1.RemoteHost := '10.0.0.222';
  TcpClient1.RemotePort := '9100';
  TcpClient1.Open;
  for i := 0 to Memo_ZPL.Lines.Count-1 do begin
    TcpClient1.Sendln(AnsiToUTF8(Memo_ZPL.Lines[i]))
  end;//for
  TcpClient1.Close;
end;


этот вариант работает, но в реальной работе использовать нельзя, ибо любая проблема с сетью или принтером - и программа встала.
Это если запускать по дефолту, с
Код: pascal
1.
TcpClient1.BlockMode := bmBlocking;


Ну а если делать по нормальному, то это будет уже не эти 5 строк.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40126007
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksНу а если делать по нормальному, то это будет уже не эти 5 строк.

Ну да, строк 10 будет. Это если ещё и сообщения от принтера читать, а не только
писать. WSAAsyncSelect отлично ложится на гуевые приложения. С консолью или
сервисом было бы сложнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40127339
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжаю биться с принтером Honeywell PC42d .
Разрабатывая этикетку на ZPL столкнулся с тем что команда ^TB работает неправильно - не переносит строку и не обрезает текст по рамке.
Решил обновить прошивку т.к. в релизноте было сказано про что-то подобное.

T10.15.017559 - была в принтере исходно.
T10.17.019825 - обновил до этой.

В итоге, ^TB все так же работает неправильно, зато принтер теперь стал глотать пробелы, лепит все подряд.
Даунгрейд прошивки невозможен :(

Начинаю понимать почему люди не используют ZPL .
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40127418
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks

Начинаю понимать почему люди не используют ZPL .


Начинаю понимать почему надо использовать zebrовские принтеры а не бюджетные аналоги.

Вы не поверите, но по маркировке молочки/лекарств/шин/лп/обуви, в специальном техночате, только и топят за zpl и истово не понимают зачем печатать растр.
Кстати принтеры используются соответственно зебровские.
У нас zebra zm400 и Zebra GK420t
Проблем с zpl никаких.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40127432
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы сильно удивился если бы на зебрах были проблемы с ZPL. Впрочем ничего нет невозможного.
Но у меня принтер не зебра, и ZPL ему не родной.

Попробую родной для хонивела "директ принт", надеюсь на родном языке он лучше будет работать.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40127603
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite
fraks

Начинаю понимать почему люди не используют ZPL .


Начинаю понимать почему надо использовать zebrовские принтеры а не бюджетные аналоги.

Это многогранный вопрос.
Однако, зебра стоит в 2 раза дороже хонивела. Это тоже аргумент.
Ну и кроме зебры с хонивелом есть еще несколько десятков брендов принтеров этикеток.
...
Рейтинг: 0 / 0
Принтер этикеток, сетевой. Как напечатать.
    #40127684
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кому интересно, то некоторое обуждение этого вопроса происходит вот там:

https://olegon.ru/showthread.php?t=36483
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Принтер этикеток, сетевой. Как напечатать.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]