Форум: "WinAPI";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизПринтер замедляет печать Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.064 c