Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Противостояние принтера   Найти похожие ветки 

 
XsID   (2007-03-22 09:20) [0]

Доброго времени!
Появился у нас на работе этикеточный принтер, и теперь пишу программу генерации этикеток и печати их на этот девайс.
Все бы хорошо, но печатает почему-то только небольшой кусок изобржения и очень растянутым.
Делалось так: предварительно в 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;


Подскажите пожалуйста в чем проблемма!
Заранее благодарен


 
clickmaker ©   (2007-03-22 09:26) [1]

глянь TCustomForm.Print в Forms.pas


 
Сергей М. ©   (2007-03-22 09:30) [2]


> Появился у нас на работе этикеточный принтер


А драйвер к нему ?


 
XsID   (2007-03-22 09:32) [3]

>А драйвер к нему ?
Куда ж без него :) Пока печатаю с CorelDraw - и все хорошо, да не то что надо


 
XsID   (2007-03-22 09:38) [4]

>глянь TCustomForm.Print в Forms.pas
сейчас постараюсь сделать так же :)


 
Сергей М. ©   (2007-03-22 09:42) [5]


> XsID   (22.03.07 09:32) [3]


> печатаю с CorelDraw - и все хорошо, да не то что надо


Мало ли кроме CorelDraw софта существует)

Более того, я подозреваю, что есть готовый спецсофт для дизайна этикеток под твой конретный принтер или их семейство


 
XsID   (2007-03-22 09:48) [6]

>Сергей М.
Да, программ различных море есть. Хороших и плохих. Но этикетку генерировать нужно "на лету". Вот.


 
Сергей М. ©   (2007-03-22 09:58) [7]


> этикетку генерировать нужно "на лету"


Не думаю, что для этого нужно рисовать прямо на канве.


 
clickmaker ©   (2007-03-22 10:02) [8]


> Не думаю, что для этого нужно рисовать прямо на канве

ну если это программируемый принтер, то можно непосредственно командами через COM / LPT печатать. Как на билетном.


 
XsID   (2007-03-22 10:12) [9]

>clickmaker
Написаным тобою методом отлично все печатает на обычном принтере, размер такой как и надо. Но на этикеточном сразу печатает настолько ужасно, что на прямоугольнике 55х40 влазит 7 букв всего-то.

>Сергей М.
А какие есть другие варианты?

>clickmaker
Принтер не програмируемый. Просто принтер :)


 
clickmaker ©   (2007-03-22 10:14) [10]


> на прямоугольнике 55х40 влазит 7 букв всего-то

а если уменьшить масштаб?


 
tesseract ©   (2007-03-22 10:17) [11]


> Куда ж без него :) Пока печатаю с CorelDraw - и все хорошо,
>  да не то что надо


Я напрямую в порт всегда писал. Проблем с масштабированием меньше.


 
XsID   (2007-03-22 10:17) [12]

Так а Printer.PageWidth Printer.PageHeight используются


 
tesseract ©   (2007-03-22 10:20) [13]


> >clickmakerПринтер не програмируемый. Просто принтер :)


Есть принтеры с поддержкой загрузки шаблонов, есть без.

Ни разу не видел принтера этикеток - не путать с чековыми, без поддержки печати штрихкодов.

Смотри мануал на сайте производителя.


 
XsID   (2007-03-22 10:34) [14]

>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:47) [15]


> Если изображение растягивается до заданного прямоугольника,
>  то я совсем не понимаю каким макаром оно при печати становится
> в раз 10 больше....


Как-то встречался с подобной фичёй именно с Tbitmap. И вроде если она Ч/Б.
Вроде CopyMode надо менять или что-то в этом роде, поскольку щас использую resize из GrpahicsEx проблема не возникает.


 
XsID   (2007-03-22 11:08) [16]

А что за GraphicsEx?



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.037 c
15-1175945059
Чапаев
2007-04-07 15:24
2007.05.20
Оцените резюме, плз


3-1172922633
---SerG---
2007-03-03 14:50
2007.05.20
Инсталятор для баз данных


9-1150106441
аматор
2006-06-12 14:00
2007.05.20
игра на лазаре


2-1176782161
vegarulez
2007-04-17 07:56
2007.05.20
Подскажите про использование CreateProcess...


15-1176820561
ANB
2007-04-17 18:36
2007.05.20
Чего с зарплатой будет ?