Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2903 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Amigos,

Tenho a seguinte situação.

A) Um computador com uma impressora Bematech MP 4200 th

B) Outro computador que manda imprimir na impressora citada acima

Aqui no nosso escritorio tambem temos uma bematech mp 4200 th que esta instalada num pc e os demais pcs imprimem nela qdo precisa ser feito algum teste

Ocorre que neste cliente qdo o nosso software manda imprimir pelo posprinter da erro "FIle Acess Denied" ou "Impressora Não encontrada [\\Caixa02\mp4200]"

Nossos sistemas estao usando o acbr baixado em Julho/2017

O interessante é que aqui  na nossa rede funciona, mas no cliente da "file acces denied"

Para fazer outro teste eu acabei de atualiar meu acbr, baixei as atualizacoes do svn em outra pasta

Fechei o delphi, executei o apaga acbr

Renomeei minha pasta de acbr dez 2016 para acbr 

Executei a instalacao de todos os componente

Abri o projeto acbr posprinter teste.exe dei um build no projeto

Agora aparece impressora nao encontrada [\\projeto-pc\mp-4200 th]

Deixei com RAW na frente, tirei o RAW e segue o problema.

Vi em outro post dizendo que havia algumas falhas do acbrdevice mas que tinham sido corrigidas em out/2016, imagino que este acbr que baixei ja esteja atualizado

svn://svn.code.sf.net/p/acbr/code

Tem algo que estou deixando de fazer...

 

Postado

Pessoal,

Na minha opinião o que esta errado é este paragrafo dentro do acbrdevice / GetPrinterRawIndex / retornaporta

      if pos('\\', copy(VName, 1, 2)) > 0 then  //se for impressora na rede.
      begin
        VName := copy(VName, 3, Length(VName));
        VPos := pos('\', VName);
        VName := copy(VName, VPos + 1, Length(VName));
      end;

      if SameText(PrnName, VName) then
      begin
        Result := I;
        Break;
      end;

Na configuracao do acbrteste eu coloquei   RAW:\\Projeto-pc\MP-4200 TH

No paragravo if pos ('\\' ele retira o nome da maquina deixando somente o nome da impressora na variavel VName

E logo abaixo no if sametext(prnname, vname) ele compara se são iguais.

Mas nunca vao ser porque a variavel prnname recebe o nome inteiro sem o raw, conforme citado abaixo.

PrnName := Porta;
  if (copy(UpperCase(PrnName), 1, 4) = 'RAW:') then
    PrnName := copy(PrnName, 5, Length(PrnName)) ;

A meu ver nao tem muito sentido o que foi feito, ou eu nao entendi o porque disso

Postado

Pessoal no acbrdevice que citei no post anterior eu comentei este paragrafo abaixo.

 if pos('\\', copy(VName, 1, 2)) > 0 then  //se for impressora na rede.
      begin
        VName := copy(VName, 3, Length(VName));
        VPos := pos('\', VName);
        VName := copy(VName, VPos + 1, Length(VName));
      end;

Qual a razao de ele existir, ou a variavel prnname é de deveria conter somente o nome da impressora compartilhada?

 

  • Fundadores
Postado

O que exatamente, você está escrevendo na propriedade porta ?

De acordo com a imagem que você exibe... o correto seria: "RAW:MP-4200 TH em Projeto-pc"

@Waldir Paim,

Acho que você que implementou o bloco em questão, que remove o caminho da Rede, no caso de impressão RAW... poderia por favor avaliar esse post ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Este tópico foi criado há 2903 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.