Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.043 c
14-1129345447
Brother
2005-10-15 07:04
2005.11.06
На тему эмуляторов и пр.


14-1129295460
matt
2005-10-14 17:11
2005.11.06
Программирование наладонников.


14-1129151578
Gero
2005-10-13 01:12
2005.11.06
Выбор группы в InnoSetup


2-1129097058
Smolin
2005-10-12 10:04
2005.11.06
Строковые функции


11-1110474132
Ans
2005-03-10 20:02
2005.11.06
DB, индексы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский