Медленная печать в vfp на матричном принтере (LQ-1170)

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

Я недавно попросил изменить отчет, написанный в vfp. Он использует такие команды, как fputs и т. д. Пользователь распечатывает этот отчет на матричном принтере и, конечно же, никаких проблем. Но пользователь попросил добавить столбец и какой-то сложный расчет в отчете. Мы старались избегать изменения размера бумаги. Поэтому моим первоначальным решением было переработать отчет с помощью дизайнера отчетов и установить альбомную ориентацию страницы. Результат очень медленный при печати. ​​Когда я открываю очередь печати, она даже показывает ошибку - статус печати!

Я попытался установить драйвер принтера на свой локальный компьютер (компьютер, на котором я скомпилировал exe) и выбрал этот принтер, как с установленным, так и со снятым флажком «сохранить среду принтера». Все тот же результат.

Какие-либо предложения? Другие приемы для моего случая приветствуются. Заранее спасибо.


person wong chung yie    schedule 27.04.2012    source источник


Ответы (4)


Иногда, и не уверен, что это ваш случай, при создании отчета в VFP он сохраняет среду принтера на основе компьютера, который использовался для его разработки (т.е. вашего компьютера). Чтобы проверить, и поскольку все отчеты представляют собой не что иное, как переименованные таблицы .DBF, попробуйте следующее. Откройте отчет в виде таблицы

USE YourReport.frx   (you have to explicitly include the .frx extension)
BROWSE

Первая строка в отчете — это информация о вашей среде, которая включает в себя информацию о размере бумаги, ориентации и даже информацию о принтере. Дважды щелкните в столбце «Expr». Единственное, что вам, вероятно, нужно в этой колонке, это

ОРИЕНТАЦИЯ=1 (или 0)

он может иметь другие данные и выглядеть примерно так: DRIVER=winspool DEVICE=\some\printershare OUTPUT=IP_192.168.1.22 ORIENTATION=1 PAPERSIZE=1 SCALE=100 ASCII=0 COPIES=1 DEFAULTSOURCE=15 PRINTQUALITY=600 COLOR=2 DUPLEX =2 YРАЗРЕШЕНИЕ=600 TTOPTION=3 РАЗБОРКА=0

Вы можете удалить все остальное. Затем закройте этот столбец и перейдите еще примерно на 10 столбцов к «Tag» и «Tag2». Они также являются полями типа MEMO. Откройте их. Удалите ВСЕ данные из этих двух столбцов... НО ТОЛЬКО ДЛЯ ПЕРВОЙ СТРОКИ!!!! Если вы откроете их, вы увидите больше встроенных вещей о принтере, просто удалите их полностью. НЕ выполняйте глобальную замену на пустую для всех строк, так как это уничтожит содержимое отчета... ТОЛЬКО первая строка.

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

person DRapp    schedule 27.04.2012

Попытка распечатать отчет из конструктора отчетов через драйвер Windows на матричном принтере никогда не будет приемлемо быстрой.

Вот почему они изначально делали отчет с помощью команд.

Вы можете либо изменить принтер на лазерный принтер (вероятно, это невозможно, я предполагаю), либо изменить отчет обратно на старый стиль.

person Swordblaster    schedule 29.04.2012

Печатать быстро на матричном принтере отчетами VFP вряд ли сложно, надо делать это на сыром режиме, а не на ?? или ??? Кстати, я имею в виду такие вызовы API:

--- RawPrint VCX ---

http://www.universalthread.com/ViewPageNewDownload.aspx?ID=9556

Вы можете использовать оболочку с поддержкой «Форматов», это коммерческое программное обеспечение, но оно того стоит, если вам нужно делать много отчетов с помощью такого принтера:

--- ДосПринт 4 ---

http://www.victorespina.com.ve/hs/es/index.php/DOSPrint4_%28VFP%29

(отказ от ответственности: разработчик DosPrint 4 — мой друг, и я работал с ним, тестируя и поддерживая предыдущую версию DosPrint 3 в группах новостей MS-VFP на испанском языке и http://Portalfox.com)

person Esparta Palma    schedule 03.05.2012
comment
Спасибо за ответ.. Попробую. Я расскажу вам, как это происходит. Бог благословил. - person wong chung yie; 09.05.2012

Попробуйте использовать драйвер печати Microsoft Generic Text only

person Caltor    schedule 07.11.2012