A saída impressa é enviada a porta da impressora em vez do arquivo de saída solicitado quando você tenta imprimir um arquivo por meio de programação no Windows XP

Support for Windows XP has ended

Microsoft ended support for Windows XP on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 907299
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Quando você tenta imprimir um arquivo por meio de programação no Microsoft Windows XP, a saída impressa é enviada a porta da impressora em vez do arquivo de saída solicitada. Esse problema ocorre quando todas as seguintes condições forem verdadeiras:
  • Configurar a impressora para documentos de spool.
  • Você usar o membro da estrutura DOCINFO.lpszOutput para especificar um arquivo de saída para o trabalho de impressão.
  • O arquivo que você especifica no membro DOCINFO.lpszOutput estrutura está bloqueado por outro processo ou segmento.
Como Contornar
Para contornar esse problema, execute estas etapas:
  1. Certifique-se de que o arquivo que você especificou não está bloqueado por outro processo ou segmento.
  2. Configure a impressora para imprimir diretamente para uma porta em vez de spool dos documentos.
  3. Aplicar o hotfix descrita no seguinte artigo da Base de dados de Conhecimento Microsoft (KB):
    905519Você tiver problemas ao tentar imprimir em um arquivo por meio de programação no Windows XP
Mais Informações

Etapas para reproduzir o problema

  1. Adicione uma impressora local que usa uma nova porta local. Por exemplo, defina a porta local para um caminho de arquivo como o seguinte:
    Drive: \ path \ test_output.txt
  2. Na caixa de diálogo Propriedades da impressora, clique em Avançado , clique em efetuem spool de impressão de documentos para que o programa conclua a impressão mais rápida e, em seguida, clique em OK .
  3. Determine um nome de arquivo para um segundo arquivo que você deseja receber o trabalho de impressão. Por exemplo, você pode atribuir um nome de arquivo para o membro da estrutura DOCINFO.lpszOutput da seguinte maneira:
    DOCINFO.lpszOutput = Drive: \ path \ test2_output.prn
    Observação Um valor para o membro da estrutura DOCINFO.lpszOutput é especificado se você desejar imprimir em um arquivo.
  4. Use um thread separado ou um processo para abrir o arquivo Test2_output.prn e para manter o arquivo aberto.
  5. Enquanto o arquivo test2_output.prn estiver aberto, tente imprimir para o arquivo usando o membro da estrutura DOCINFO.lpszOutput e a função StartDoc no primeiro thread ou processo.
A saída do trabalho de impressão é enviada para a porta que você configurou na etapa 1 em vez de para o arquivo que você especificou no membro da estrutura DOCINFO.lpszOutput .

Propriedades

ID do Artigo: 907299 - Última Revisão: 12/09/2015 03:14:21 - Revisão: 1.0

Microsoft Windows XP Home Edition, Microsoft Windows XP Professional

  • kbnosurvey kbarchive kbmt kbtshoot kbprb KB907299 KbMtpt
Comentários