Partilhar via


Função StartDocPrinter

A função StartDocPrinter notifica o spooler de impressão de que um documento deve ser colocado em spool para impressão.

Sintaxe

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

Parâmetros

hPrinter [em]

Uma alça para a impressora. Use a função OpenPrinter ou AddPrinter para recuperar uma alça de impressora.

Nível [in]

A versão da estrutura para a qual o pDocInfo aponta. Esse valor deve ser 1.

pDocInfo [em]

Um ponteiro para uma estrutura DOC_INFO_1 que descreve o documento a imprimir.

Valor de retorno

Se a função for bem-sucedida, o valor de retorno identificará o trabalho de impressão.

Se a função falhar, o valor de retorno será zero.

Observações

Observação

Esta é uma função de bloqueio ou síncrona e pode não retornar imediatamente. A rapidez com que essa função retorna depende de fatores de tempo de execução, como status da rede, configuração do servidor de impressão e fatores de implementação do driver de impressora que são difíceis de prever ao escrever um aplicativo. Chamar essa função a partir de um thread que gerencia a interação com a interface do usuário pode fazer com que o aplicativo pareça não estar respondendo.

A sequência típica de um trabalho de impressão é a seguinte:

  1. Para iniciar um trabalho de impressão, chame StartDocPrinter.
  2. Para começar cada página, chame StartPagePrinter.
  3. Para gravar dados em uma página, chame WritePrinter.
  4. Para encerrar cada página, chame EndPagePrinter.
  5. Repita 2, 3 e 4 por quantas páginas forem necessárias.
  6. Para terminar o trabalho de impressão, chame EndDocPrinter.

Observe que chamar StartPagePrinter e EndPagePrinter pode não ser necessário, como se o tipo de dados de impressão incluir as informações da página.

Quando uma página em um arquivo spooled excede aproximadamente 350 MB, ele pode falhar ao imprimir e não enviar uma mensagem de erro. Por exemplo, isso pode ocorrer ao imprimir arquivos EMF grandes. O limite de tamanho de página depende de muitos fatores, incluindo a quantidade de memória virtual disponível, a quantidade de memória alocada por processos de chamada e a quantidade de fragmentação no heap do processo.

Exemplos

Para obter um programa de exemplo que usa essa função, consulte Como imprimir usando a API de impressão GDI.

Requerimentos

Requisito Valor
Cliente mínimo suportado
Windows 2000 Professional [apenas aplicações de ambiente de trabalho]
Servidor mínimo suportado
Windows 2000 Server [apenas aplicações de ambiente de trabalho]
Cabeçalho
Winspool.h (inclui Windows.h)
Biblioteca
Winspool.lib
DLL
Winspool.drv
Nomes Unicode e ANSI
StartDocPrinterW (Unicode) e StartDocPrinterA (ANSI)

Ver também

AddJob

DOC_INFO_1

DOC_INFO_2

EndDocPrinter

EndPagePrinter

OpenImpressora

Impressão

Funções da API do Spooler de Impressão

StartPagePrinter

EscreverNaImpressora