Función StartDocPrinter

La función StartDocPrinter notifica al colador de impresión que se va a poner en cola un documento para imprimirlo.

Sintaxis

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

Parámetros

hPrinter [in]

Identificador de la impresora. Use la función OpenPrinter o AddPrinter para recuperar un identificador de impresora.

Nivel [in]

Versión de la estructura a la que apunta pDocInfo . Este valor debe ser 1.

pDocInfo [in]

Puntero a una estructura de DOC_INFO_1 que describe el documento que se va a imprimir.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto identifica el trabajo de impresión.

Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

Nota

Se trata de una función de bloqueo o sincrónica que podría no devolverse inmediatamente. La rapidez con la que devuelve esta función depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y los factores de implementación del controlador de impresora que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.

La secuencia típica de un trabajo de impresión es la siguiente:

  1. Para iniciar un trabajo de impresión, llame a StartDocPrinter.
  2. Para comenzar cada página, llame a StartPagePrinter.
  3. Para escribir datos en una página, llame a WritePrinter.
  4. Para finalizar cada página, llame a EndPagePrinter.
  5. Repita 2, 3 y 4 para tantas páginas como sea necesario.
  6. Para finalizar el trabajo de impresión, llame a EndDocPrinter.

Tenga en cuenta que es posible que no sea necesario llamar a StartPagePrinter y EndPagePrinter , como si el tipo de datos de impresión incluye la información de la página.

Cuando una página de un archivo en cola supera aproximadamente 350 MB, puede no imprimir y no enviar un mensaje de error. Por ejemplo, esto puede ocurrir al imprimir archivos EMF grandes. El límite de tamaño de página depende de muchos factores, como la cantidad de memoria virtual disponible, la cantidad de memoria asignada mediante la llamada a procesos y la cantidad de fragmentación en el montón del proceso.

Ejemplos

Para ver un programa de ejemplo que usa esta función, consulte How To: Print Using the GDI Print API.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Winspool.h (incluye Windows.h)
Biblioteca
Winspool.lib
Archivo DLL
Winspool.drv
Nombres Unicode y ANSI
StartDocPrinterW (Unicode) e StartDocPrinterA (ANSI)

Consulte también

AddJob

DOC_INFO_1

DOC_INFO_2

EndDocPrinter

EndPagePrinter

OpenPrinter

Impresión

Funciones de la API del administrador de trabajos de impresión

StartDocPrinter

StartPagePrinter

WritePrinter