RequestPrinterStatus
Рендеринг и печать
Описание
Включает альтернативную систему печати, умеющую возвращать состояние принтера; многие коды статуса даёт драйвер, и осмысленность значений для всех принтеров не гарантируется
Сначала вызовите функцию с StatusCommand=101, чтобы включить мониторинг состояния принтера. При желании запустите задание печати на паузе повторным вызовом с StatusCommand=103 — это может понадобиться для мелких заданий, которые иначе закончатся раньше, чем удастся прочитать статус
Затем задание печати запускается как обычно одной из функций печати: PrintDocument, PrintDocumentToFile или
PrintDocumentToPrinterObject.
После старта задания печати функцию можно вызывать повторно, чтобы получать статус задания со временем. Если задание стартовало на паузе, реальная печать начнётся только после вызова с StatusCommand=402
Синтаксис
Delphi
Function TPDFlib.RequestPrinterStatus(StatusCommand: Integer): Integer;
ActiveX
Function PDFlib::RequestPrinterStatus(StatusCommand As Long) As Long
DLL
int DLRequestPrinterStatus(int InstanceID, int StatusCommand);
Параметры
| StatusCommand | 100 = выключить мониторинг состояния принтера. 101 = включить мониторинг состояния принтера. 102 = возвращает 1, если мониторинг активен. 103 = запустить задание печати на паузе. 104 = начать печать немедленно. 105 = возвращает 1, если задание стартует на паузе. 200 = возвращает 1, если данные задания существуют. 201 = возвращает Windows Spooler JobID. 202 = возвращает приоритет задания от 1 до 99. 203 = возвращает позицию задания в очереди печати. 204 = возвращает общее число страниц. 205 = возвращает число уже напечатанных страниц; при типе данных "RAW" обычно ноль. 206 = возвращает миллисекунды с момента старта задания. 207 = возвращает тип данных задания: 1, если тип содержит "RAW"; 2 — "EMF"; 3 — "TEXT"; 4 — "XPS". 300 = возвращает закодированный статус задания. 301 = возвращает 1, если задание на паузе. 302 = возвращает 1 при ошибке. 303 = возвращает 1, если задание удаляется. 304 = возвращает 1, если задание буферизуется. 305 = возвращает 1, если задание печатается. 306 = возвращает 1, если принтер офлайн. 307 = возвращает 1, если в принтере кончилась бумага. 308 = возвращает 1, если задание напечатано. 309 = возвращает 1, если задание удалено. 310 = возвращает 1, если драйвер не может напечатать задание. 311 = возвращает 1, если у принтера ошибка, требующая действий пользователя. 312 = возвращает 1, если задание перезапущено. 313 = для Windows XP и новее возвращает 1, если задание отправлено на принтер (ещё не факт, что напечатано). 314 = для Windows Vista и новее возвращает 1, если задание удерживается в очереди и не может быть удалено. 401 = приостановить задание печати. 402 = возобновить приостановленное задание. 403 = удалить задание печати |
|---|