[nfephp] PRINTDAFE - IMPRESSÃO DIRETO PARA IMPRESSORA

353 views
Skip to first unread message

Leandro Santana

unread,
May 5, 2010, 10:10:45 AM5/5/10
to nfe...@googlegroups.com

Galera,

 

Estou tentando fazer com que a impressão do DANFE ocorra diretamente para a impressora.

 

 

/**

     * printDANFE

     * Esta função envia a DANFE em PDF criada para o dispositivo informado.

     * O destino da impressão pode ser :

     * I-browser

     * D-browser com download

     * F-salva em um arquivo local com o nome informado

     * S-retorna o documento como uma string e o nome é ignorado.

     * Para enviar o pdf diretamente para uma impressora indique o

     * nome da impressora e o destino deve ser 'S'.

     * @package NFePHP

     * @name printDANFE

     * @version 1.0

     * @param string $nome Path completo com o nome do arquivo pdf

     * @param string $destino Direção do envio do PDF

     * @param string $printer Identificação da impressora no sistema

     * @return string Caso o destino seja S o pdf é retornado como uma string

     * @todo Rotina de impressão direta do arquivo pdf criado

     */

 

 

public function printDANFE($nome='',$destino='I',$printer=''){

 

 $arq = $this->pdf->Output($nome,$destino);

 

if ( $destino == 'S' ){

 

 //aqui rotina de impressão direta

                           

         }

 

 

 

 

Se já realizam esta operação, podem me mandar um exemplo?

 

Lembrando que meu ambiente é windows.

 

Grato

 

 


Leandro Santana

Tecnologia da Informação - TI
( Celular:  (11) 7232-0066
( Celular:  (11) 7990-2375
* leandro...@gmail.com

 

 

--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
FAQ: https://www.assembla.com/wiki/show/nfephp/FAQ
Como Participar: https://www.assembla.com/wiki/show/nfephp/Como_participar

Walker de Alencar

unread,
May 5, 2010, 10:31:14 AM5/5/10
to nfe...@googlegroups.com
Leandro, isso só aconteceria no servidor... no client, ou seja, qualquer outra máquina que acessar nao conseguiria isso, pois PHP roda server side.

Mas gerando o PDF, vc dá a possibilidade de armazenar em disco e/ou imprimir em qq impressora independente de que maquina o usuário esteja.
--
Walker de Alencar
Arquiteto Web/PHP
http://www.walkeralencar.com
(62) 8172-5487
(61) 8172-8999

Silas Ribas Martins

unread,
May 5, 2010, 12:01:34 PM5/5/10
to nfe...@googlegroups.com
Salve,

Se for numa rede interna e ficar responsável a um setor/núcleo e o
servidor for linux, você pode usar o PHPPrintIPP (
http://www.nongnu.org/phpprintipp/ ) que envia direto pelo CUPS.

Mas é inviável para situações onde o cliente ( usuário ) que imprimir
na sua impressora, ou em outra que não tenha ligação com o servidor
onde está o PHP.

Gera o PDF, coloca pra download, é mais portável e fácil de lidar.

Valeu!

2010/5/5 Walker de Alencar <walker...@gmail.com>:
--
Atenciosamente (=Ô.Ô=),
Silas Ribas {Maximus_BR}
Salvador/BA

71 8892-6095 ( Celular )
71 3494-0623 ( casa )
71 3377-4446 ( recado )
71 3377-4489 ( recado )
71 3186-9057 ( trampo )

sil...@gmail.com ( e-mail )
sil...@hotmail.com ( msn )
silasrm ( skype )

Twitter: @silasribas
Blog:silas.theducks.com.br
Site: www.silasribas.com.br
LinkedIn: http://www.linkedin.com/in/silasrm
Facebook: http://www.facebook.com/silasribas
Orkut: http://www.orkut.com.br/Main#Profile.aspx?rl=ls&uid=3392300346524829647
Linux Distro - *Ubuntu
Linux User Registered: 383742

"Quem quer vencer um obstáculo deve armar-se da força do leão e da
prudência da serpente." [Píndaro]

"Triste época em que vivemos, onde é mais fácil desintegrar um átomo
do que quebrar um preconceito" [Albert Einstein]

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas

Marcelo Freitas

unread,
May 5, 2010, 12:06:11 PM5/5/10
to nfe...@googlegroups.com
uma outra solução server side, que é uma baita gambiarra mas funciona
é chamar o lpr via linha de comando (se for DOS tem um outro comando,
mas no unix é lpr)


não importa o sistema de impressão, todo linux/unix que já usei tem o lpr.


roda o man lpr no terminal pra ver o manual do comando. Daí vc pode
chamar pelo PHP usando o exec() ou coisa do tipo.



[]'s

--
Marcelo C. Freitas

IM's:
MSN: bate...@hotmail.com
ICQ: 24263609
Jabber: Og...@jabber.org
GTalk: marcelo...@gmail.com
Yahoo: baterausp

João Eduardo

unread,
May 5, 2010, 3:27:56 PM5/5/10
to nfe...@googlegroups.com
Eis uma parte do código que eu uso para mandar direto:

    $arquivo = "TESTE.TXT";
    if (!$abrir = fopen($arquivo, "w+")) {
         echo  "Erro abrindo arquivo ($arquivo)";
         exit;
    }
    if (!fwrite($abrir, $conteudo)) {
        print "Erro escrevendo no arquivo ($arquivo)";
        exit;
    }
fclose($abrir);
shell_exec('cat /var/www/sistema/TESTE.TXT >/dev/lp0');

Abraço,
João

Leandro Santana

unread,
May 5, 2010, 3:34:47 PM5/5/10
to nfe...@googlegroups.com

Valeu pela ajuda,

 

Vale lembrar que estou rodando em windows.

 

Grato,

 

 


Leandro Santana

Tecnologia da Informação - TI
( Celular:  (11) 7232-0066
( Celular:  (11) 7990-2375
* leandro...@gmail.com

 

 

Reply all
Reply to author
Forward
0 new messages