![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Противостояние принтера
XsID © (2007-03-22 09:20:00)Доброго времени!
Появился у нас на работе этикеточный принтер, и теперь пишу программу генерации этикеток и печати их на этот девайс.
Все бы хорошо, но печатает почему-то только небольшой кусок изобржения и очень растянутым.
Делалось так: предварительно в TImage на Canvas создавалось изображение, потом собственно и печаталось
...................
ypix := GetDeviceCaps(Printer.Handle,VertRes);
xpix := GetDeviceCaps(Printer.Handle,HorzRes);
...................
pRect.Top := 0;
pRect.Left := 0;
pRect.Right := xpix;
pRect.Bottom := ypix;
...................
Printer.BeginDoc;
Printer.Canvas.StretchDraw(iRect,Image1.Picture.Bitmap);
Printer.EndDoc;
Подскажите пожалуйста в чем проблемма!
Заранее благодарен
XsID (2007-03-22 11:08:00) [1]А что за GraphicsEx?
tesseract (2007-03-22 10:47:00) [2]
> Если изображение растягивается до заданного прямоугольника,
> то я совсем не понимаю каким макаром оно при печати становится
> в раз 10 больше....
Как-то встречался с подобной фичёй именно с Tbitmap. И вроде если она Ч/Б.
Вроде CopyMode надо менять или что-то в этом роде, поскольку щас использую resize из GrpahicsEx проблема не возникает.
XsID (2007-03-22 10:34:00) [3]>tesseract
Сайт производителя не при чем. Любая другая программа печатает корректно.
Ничего не с чем не путаю. Этикеточный принтер - принтер, печатающий на рулон этикеток на самоклейке. Там еще есть нож для отслаивания основы. Впрочем все это не важно :). Важно только одно - ПОЧЕМУ так получается?
Может быть Printer.PageWidth и Printer.PageHeight возвращают некорректные значения? Хотя проверял все правильно.
Разрешение принтера - 200 dpi
Формат бумаги: - 50х40
PageWidth - ~400
PageHeight - ~300
50/25,4*200 ~= 400
40/25,4*200 ~= 300
Таким образом видно, что формат определяется верно.
Если изображение растягивается до заданного прямоугольника, то я совсем не понимаю каким макаром оно при печати становится в раз 10 больше....
tesseract (2007-03-22 10:20:00) [4]
> >clickmakerПринтер не програмируемый. Просто принтер :)
Есть принтеры с поддержкой загрузки шаблонов, есть без.
Ни разу не видел принтера этикеток- не путать с чековыми, без поддержки печати штрихкодов.
Смотри мануал на сайте производителя.
tesseract (2007-03-22 10:17:00) [5]
> Куда ж без него :) Пока печатаю с CorelDraw - и все хорошо,
> да не то что надо
Я напрямую в порт всегда писал. Проблем с масштабированием меньше.
XsID (2007-03-22 10:17:00) [6]Так а Printer.PageWidth Printer.PageHeight используются
clickmaker (2007-03-22 10:14:00) [7]
> на прямоугольнике 55х40 влазит 7 букв всего-то
а если уменьшить масштаб?
XsID (2007-03-22 10:12:00) [8]>clickmaker
Написаным тобою методом отлично все печатает на обычном принтере, размер такой как и надо. Но на этикеточном сразу печатает настолько ужасно, что на прямоугольнике 55х40 влазит 7 букв всего-то.
>Сергей М.
А какие есть другие варианты?
>clickmaker
Принтер не програмируемый. Просто принтер :)
clickmaker (2007-03-22 10:02:00) [9]
> Не думаю, что для этого нужно рисовать прямо на канве
ну если это программируемый принтер, то можно непосредственно командами через COM / LPT печатать. Как на билетном.
Сергей М. (2007-03-22 09:58:00) [10]
> этикетку генерировать нужно "на лету"
Не думаю, что для этого нужно рисовать прямо на канве.
XsID (2007-03-22 09:48:00) [11]>Сергей М.
Да, программ различных море есть. Хороших и плохих. Но этикетку генерировать нужно "на лету". Вот.
Сергей М. (2007-03-22 09:42:00) [12]
> XsID (22.03.07 09:32) [3]
> печатаю с CorelDraw - и все хорошо, да не то что надо
Мало ли кроме CorelDraw софта существует)
Более того, я подозреваю, что есть готовый спецсофт для дизайна этикеток под твой конретный принтер или их семейство
XsID (2007-03-22 09:38:00) [13]>глянь TCustomForm.Print в Forms.pas
сейчас постараюсь сделать так же :)
XsID (2007-03-22 09:32:00) [14]>А драйвер к нему ?
Куда ж без него :) Пока печатаю с CorelDraw - и все хорошо, да не то что надо
Сергей М. (2007-03-22 09:30:00) [15]
> Появился у нас на работе этикеточный принтер
А драйвер к нему ?
clickmaker (2007-03-22 09:26:00) [16]глянь TCustomForm.Print в Forms.pas