Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Противостояние принтера


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо