Página 1 de 9

Impressao UsB ta!, Mas onde?

Enviado: 21 Jul 2007 12:40
por Renan
Boa Tarde pessoal, Olhando todos esse topicos de impressao em usb (e achei muitos),mas muitos links para baixar o USB.exe esta quebrados
e mesmo que consiguisse baixar, como usar?, por que os outros topicos nao me ajudaram na minha duvida , Sera que alguem pode me dar um maozinha??
vlw.
Renan. :xau

Enviado: 21 Jul 2007 12:58
por Maligno
Esses programas todos que permitem imprimir em impressoras com conexão USB, nada mais fazem que mandar um arquivo para o spooler do Windows. Portanto, pode-se imprimir em *qualquer* impressora que esteja cadastrada no Windows, mesmo que numa rede.
Ao imprimir, você só precisa direcionar sua impressão para um arquivo, com ou sem caracteres de controle de impressão, conforme o programa que você pretende usar. Na solução que eu criei, pela biblioteca WAPI (é um programa embutido, na verdade), eu não traduzo "tags" de controle. Mando seu arquivo pro spooler do jeito que ele vier. Esse é o camado modo raw (crú). Mas há outras soluções que fazem traduções de certas "tags", a fim de facilitar a formatação dos relatórios.

Enviado: 21 Jul 2007 13:02
por Renan
Eu nao tenho Essa biblioteca, vc Tem no seu site?

Enviado: 21 Jul 2007 13:06
por Maligno
Sim. Está no meu site. Área "pub", diretório Clipper+Libs. Link na minha assinatura.

Enviado: 21 Jul 2007 13:08
por Renan
vlw maligno !

Enviado: 21 Jul 2007 13:09
por Maligno
Inclusive, nela constam várias outras funções, normalmente desempenhadas apenas através de programas Windows. Se quiser, veja a tread a respeito. Abaixo o link para uma mensagem que descreve a biblioteca de forma resumida:

https://pctoledo.org/forum/viewto ... 8479#28479

Enviado: 21 Jul 2007 13:50
por Renan
Ola Maligno estou com dificudades em utilizar a biblioteca wapi pra impressao
sera que voce poderia me dar um exemplo simples de criar um arquivo txt e mandar para a impressora?

Enviado: 21 Jul 2007 14:03
por Maligno
Claro. Exemplo simples de como enviar seu arquivo para o spooler de impressão do Windows:

Código: Selecionar todos

if PrintFile("#","PRINT.TXT","MeuTeste")
   ? "Impressao ok!"
else
   ? "Erro na impressão"
end
Sendo que a função PrintFile() pode receber apenas os três argumentos acima. Na ordem: nome da impressora (informe "#" para a impressora "default"), nome do arquivo que contém sua impressão e nome do título (opcional) que aparecerá no spooler.

Isso é o mínimo necessário para imprimir alguma coisa pelo spooler do Windows. Se quiser imprimir em outra impressora, você terá de pegar a lista de impressoras instaladas através da função GetPrinters(), que não precisa de parâmetros. Ela retorna uma matriz com uma sub-matriz para cada impressora instalada. Cada sub-matriz tem três elementos:

1) valor lógico TRUE, se for a impressora default ou FALSE no caso contrário
2) nome da impressora
3) porta à qual a impressora está conectada (não muito útil) :)

Supondo que você queira imprimir na segunda impressora desta lista, trocamos o código acima para:

Código: Selecionar todos

PrintFile(GetPrinters()[2][2],"PRINT.TXT","MeuTeste")

Enviado: 21 Jul 2007 16:55
por sygecom
Tche, vc jah deu uma olhada no link abaixo:
https://pctoledo.org/forum/viewtopic.php?t=5724

Na minha opnião acho que vc usar esse exemplo do cologa Marcos...ou se vc quiser pode ir mais adiante e tentar usar o seu sistema em xharbour e manda imprimir direto do seu sistema....a WAPI é muito boa e o Maligono esta de parabens...só acho que pensando num futuro se vc quiser migrar para xharbour sem dor de cabeça..vc vai ter que abandonar as LIB de terceiro...então seria bom dar uma pensada....

Obs:De uma procurada no forum com atenção que vc vaia achar inumeros soluções para impressão em USB.

Abraços
Leonardo Machado

Enviado: 21 Jul 2007 18:17
por Renan
Ola Maligno, fiz exatamente o voce me decreveu e msm assim nao consigo linkar ele,(JA TENTEI DE TUDO)
oh a linha do blinker esta assim
Blinker fi Arquivo.obj lib wapi
falta algo?
Ah Amigo sygecom , acho que nao pretendo mudar para o xHarbour
Obrigado mesmo assim
Renan.

Enviado: 21 Jul 2007 18:40
por Maligno
Duas perguntas:
1) Ao linker dá alguma mensagem de erro?
2) Se não dá erro de linkedição, pode mostrar seu programa de teste?

Enviado: 21 Jul 2007 18:49
por Renan
Caro maligno ele nao da erro de linkedicao , e tambem nao eh com o blinker pq consigo com outros mas dai soh eu por um codigo de impressao semelhante que PINBA

Enviado: 21 Jul 2007 19:15
por Maligno
Sempre que acontece problema desse tipo, você deve criar um código o mais minimalista possível, pra tentar isolar o erro.
Vamos fazer um teste simples. Crie um arquivo texto de impressão qualquer. Coisa simples, com uma frase só, por exemplo. Chame esse arquivo de "TESTE.TXT". Compile e linke o código abaixo:

Código: Selecionar todos

function Main()
if PrintFile("#","TESTE.TXT")
   ? "Foi para o spooler. Ok!"
else
   ? "ERRO!"
end
?
Salve o programa acima como TESTE.PRG. Monte este programa com os comandos:

Código: Selecionar todos

clipper teste /n
blinker fi teste li wapi
Não se esqueça de que a LIB WAPI precisa ser encontrada pelo BLinker. Se quiser, inclua na hora o SET LIB=?, onde a interrogação é o caminho completo onde a WAPI.LIB está.

Certifique-se de que existe uma impressora cadastrada no Windows como default. Depois me conte o que aconteceu. Se deu erro, se funcionou, etc. :)

Enviado: 21 Jul 2007 19:20
por Renan
Essa Mensagem foi Editada

Enviado: 21 Jul 2007 19:42
por Maligno
Não é possível. Este fonte tem comandos/funções do xHarbour que não existem no Clipper.
Fez o teste que passei?

PS: Quando for mostrar um código que já existe no fórum, procure postar apenas o link para o tópico que contém este fonte ao invés de repetí-lo todo, o que acaba desperdiçando espaço no servidor.