Вниз
Скачать: CL | DM;

Принтер замедляет печать   Найти похожие ветки 

 
ndn ©   (2005-08-27 09:21) [0]

Здравствуйте Уважаемые мастера, у меня появилась проблема с печатью на принтер. Печать происходит из приложения с помощью функций Windows SDK: DrawText (можно центрировать и разбивать слова автоматически), Lineto и MoveTo (рисование линий). Делаю  Escape(hdcPrint, STARTDOC(hdcPrint,lpdi), 8, Pansichar("Документ"), NiL);
далее рисую на Hdc, а затем
Escape(hdcPrint, ENDDOC(hdcPrint), 8, "", NiL);
Не использую STARTPAGE, ENDPAGE, NEWFRAME  так как результат без них аналогичен тому  что и с ними. Но в процессе печати проявляется непонятная мне закономерность: если печать идет в левом верхнем углу документа, то все протекает довольно шустро даже для матричного принтера, печатающего в графическом режиме. Но стоит мне задать начальное смещение (5-10 см.) без разницы что вниз, что в право скорость печати резко падает в несколько раз, хотя печатается тоже самое (перед печатью каждой новой строчки принтер задумывается на несколько секунд, хотя раньше, до смещения, печать этого же документа не вызывала у него такого умственного напряжения). Если убираю смещение, то все происходит опять с нормальной скоростью. Принтер установлен как IBM Proprinter II, обработчик печати  –  winprint, тип данных – RAW, печать идет через порт COM1. Ставил родные драйвера (Olivetti PR2)- результат тот же, то есть я так понял проблема не в неправильной работе драйвера принтера.
Подскажите пожалуйста в чем проблема и как от этого избавиться, так как в день планируется печатать до 300 документов, а с такой скоростью это не возможно.


 
tesseract ©   (2005-08-27 11:44) [1]

Как задаёшь смещение? Да и вообще Com-принтеры вещь тормозная.


 
ndn ©   (2005-08-27 18:21) [2]

Перевожу HdcPrint в режим Lowmetrics и получаю все в 0.1 мм теперь определяю смещение от 0 точки непечатной зоны и вношу корректировку в координаты. Com принтеры хоть и тормозные, но символы в левой половине он печатает с нормальной скоростью.


 
tesseract ©   (2005-08-29 10:27) [3]

>>> STARTPAGE, ENDPAGE, NEWFRAME

Используй это ускоряет печать. Я на EZ-2 так делал. Тормозов ни туда ни обратно не было.
Ты печатаешь в графическом режиме и посылаешь данные построчно?
Или создаёшь картинку только потом отправляешь на печать?


 
ndn ©   (2005-08-31 18:58) [4]

Создаю контекст устройства CreateDC, в нем рисую , а затем по EndDoc  печатается. Попробую использовать эти функции, а можно ли как нибудь указать принтеру что ему надо печатать не с начала листа, а с середины, а то как я понял, при задании координат печатаемой точки, например х=100,у=100, передача данных на порт происходит примерно так = 0000000.....0000001000..., т.е. передаются все предыдущие пустые точки, засчет этого и происходит замедление. Правильна ли моя догадка?
Можно ли задать начало координат в точке х=100, у=0, и теперь на порт надо будет подать всего лишь один нуль, что при передаче по ком порту значительно сэкономит время, и как это сделать?


 
tesseract ©   (2005-08-31 21:29) [5]

На принтер всегда идёт картинка. Если конечно не используется программа с поддержкой печати PCL или Postscript.

Я не знаком с твоим принтером, но как правило по скорости быстрее посмтореть что там пишет драйвер и реализовать прямую передачу в порт. Т.к. не будет задержки и обработки драйвером.


>>Попробую использовать эти функции, а можно ли как нибудь указать принтеру что ему надо печатать не с начала листа, а с середины,

Да принтер через свой язык такую возможность поддерживает.  но насчёт драйвера - ему нужна картинка.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.124 c
8-1118391383
seregka
2005-06-10 12:16
2005.11.06
Объединение нескольких изображений в одно с добавлением текста


14-1129193739
Kolan
2005-10-13 12:55
2005.11.06
Объясните разницу между SDK и Драйвером.


14-1129551136
syte_ser78
2005-10-17 16:12
2005.11.06
чек в ДБриде


4-1125553929
Ola
2005-09-01 09:52
2005.11.06
Как писать и читать из реестра?


1-1129726945
Dush
2005-10-19 17:02
2005.11.06
Excel и Stringgrid




   Наверх