Функция StartDocPrinter

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

Синтаксис

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

Параметры

hPrinter [in]

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

Level [in]

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

pDocInfo [in]

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

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

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

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

Комментарии

Примечание

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

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

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

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

Если размер страницы в файле, вложенной в файл, превышает примерно 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

OpenPrinter

Вывод на печать

Функции API очереди печати принтера

StartDocPrinter

StartPagePrinter

WritePrinter