Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.068 c
6-1163627850
skiner
2006-11-16 00:57
2007.05.20
Как передать текст с ServerSocket на ClientSocket?


1-1174544437
XsID
2007-03-22 09:20
2007.05.20
Противостояние принтера


3-1172993659
AlexLines
2007-03-04 10:34
2007.05.20
По поводу инсталяции InterBase


3-1173159322
Atanas
2007-03-06 08:35
2007.05.20
Структура таблиц


2-1178031459
maksimus
2007-05-01 18:57
2007.05.20
ftp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский