Поделиться через


Функция StartDocPrinter

Функция StartDocPrinter уведомляет средство spooler печати о том, что документ должен быть скопирован для печати.

Синтаксис

DWORD StartDocPrinter(
  _In_ HANDLE hPrinter,
  _In_ DWORD  Level,
  _In_ LPBYTE pDocInfo
);

Параметры

hPrinter [in]

Дескриптор принтера. Используйте функцию OpenPrinter или AddPrinter для получения дескриптора принтера.

уровне [in]

Версия структуры, к которой указывает pDocInfo . Это значение должно быть 1.

pDocInfo [in]

Указатель на структуру DOC_INFO_1 , описывающую документ для печати.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение определяет задание печати.

Если функция завершается ошибкой, возвращаемое значение равно нулю.

Замечания

Замечание

Это блокирующая или синхронная функция, и может не возвращаться немедленно. Насколько быстро эта функция возвращается, зависит от таких факторов времени выполнения, как состояние сети, конфигурация сервера печати и факторы реализации драйвера принтера, которые трудно прогнозировать при написании приложения. Вызов этой функции из потока, который управляет взаимодействием с пользовательским интерфейсом, может привести к тому, что приложение, как представляется, не отвечает.

Типичная последовательность для задания печати выглядит следующим образом:

  1. Чтобы начать задание печати, вызовите StartDocPrinter.
  2. Чтобы начать каждую страницу, вызовите StartPagePrinter.
  3. Чтобы записать данные на страницу, вызовите WritePrinter.
  4. Чтобы завершить каждую страницу, вызовите EndPagePrinter.
  5. Повторите 2, 3 и 4 для максимально необходимых страниц.
  6. Чтобы завершить задание печати, вызовите EndDocPrinter.

Обратите внимание, что вызов StartPagePrinter и EndPagePrinter может не потребоваться, например, если тип данных печати содержит сведения о странице.

Если страница в spooled-файле превышает около 350 МБ, она может не печатать и не отправлять сообщение об ошибке. Например, это может произойти при печати больших EMF-файлов. Ограничение размера страницы зависит от многих факторов, включая объем доступной виртуальной памяти, объем памяти, выделенный процессами вызова, и объем фрагментации в куче процесса.

Примеры

Пример программы, использующего эту функцию, см. в разделе "Практическое руководство. Печать с помощью API печати GDI".

Требования

Требование Ценность
Минимальный поддерживаемый клиент
Windows 2000 Professional [только классические приложения]
Минимальный поддерживаемый сервер
Windows 2000 Server [только классические приложения]
Заголовок
Winspool.h (включая Windows.h)
Библиотека
Winspool.lib
Библиотека dll
Winspool.drv
Имена Юникода и ANSI
StartDocPrinterW (Юникод) и StartDocPrinterA (ANSI)

См. также

AddJob

DOC_INFO_1

DOC_INFO_2

EndDocPrinter

EndPagePrinter

ОткрытьПринтер

Печать

Функции API печати spooler

StartPagePrinter

WritePrinter