Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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:
- Para iniciar um trabalho de impressão, chame StartDocPrinter.
- Para começar cada página, chame StartPagePrinter.
- Para gravar dados em uma página, chame WritePrinter.
- Para encerrar cada página, chame EndPagePrinter.
- Repita 2, 3 e 4 por quantas páginas forem necessárias.
- 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 |
|
| Biblioteca |
|
| DLL |
|
| Nomes Unicode e ANSI |
StartDocPrinterW (Unicode) e StartDocPrinterA (ANSI) |