0

Imprimindo via PHP sem confirmação de impressão

criado por Diego R. Mengarda em 01/06/2012 5:46pm
Olá pessoal,
esta é minha primeira contribuição no phpbrasil, espero poder ajudar a comunidade.

Nesse artigo irei mostrar como se utiliza a extensão de php, php_printer.
Detalhe importante, essa extenção é só para windows.

Ela imprime diretamente na impressora selecionada sem abrir a janela de confirmação para o usuário.


Na prática:

Você precisa baixar o pacote PECL versão 5.2.6, aqui está o link.
http://museum.php.net/php5/pecl-5.2.6-Win32.zip

Após baixar, coloque o arquivo php_printer.dll dentro da pasta /php/ext e reinicie seu apache.

Eu alterei minha versão do php para 5.2.6 para evitar algum tipo de incompatibilidade.

Após estar tudo pronto, o resto é simples, aqui está o código.

Imprimir texto
<?php
$printer = "Nome da Impressora";
if($ph = printer_open($printer))
{      
   printer_set_option($ph, PRINTER_MODE, "RAW");
   printer_write($ph, "Aqui vai seu texto");
   printer_close($ph);
}
?>

Imprimir algum arquivo
<?php
$printer = "Nome da Impressora";
if($ph = printer_open($printer))
{
   $fh = fopen("arquivo.txt", "rb");
   $content = fread($fh, filesize("arquivo.txt"));
   fclose($fh);
       
   printer_set_option($ph, PRINTER_MODE, "RAW");
   printer_write($ph, $content);
   printer_close($ph);
}
?>

E é isso pessoal, caso vocês precisam configurar mais alguma coisa para as impressões é só olhar no manual do php da extensão printer, aqui está o link:
http://php.net/manual/pt_BR/book.printer.php

Espero ter ajudado, um abraço a todos.

Comentários:

Mostrando 1 - 7 de 7 comentários
Adriano, certa vez precisei fazer isso no linux num sistema bem específico. Resolvi fazendo o seguinte:

- gerava um arquivo .txt simples com a informação que iria ser impresso;
- pegava o caminho desse arquivo e mandava via exec(); imprimir direto em uma determinada impressora.
29/03/2017 7:41pm (~7 anos atrás)

Marcelio disse:
<?php
$printer = "Nome da Impressora";
if($ph = printer_open($printer))
{
printer_set_option($ph, PRINTER_MODE, "RAW");
printer_write($ph, "Aqui vai seu texto");
printer_close($ph);
}
?>

Alguém pode dizer como imprimir o html ao invés de texto, Utilizando esta função?
19/03/2017 3:23pm (~7 anos atrás)

Marcelo Mota disse:
Bom dia...
Fiz um sistema de Painel de Chamadas Eletrônico, todo em PHP, tipo aquele controle da fila por senhas desta forma:

- 1 PC que eh tb o servidor da aplicação, com a tela touch screen do totem e uma impressora térmica.
- 1 raspberry, ou mini PC para alimentar a TV

- Na impressão do ticket pelo navegador, sempre aparecia o prompt de impressão.
resolvi com http://www.rafaelzottesso.com.br/2012/09/imprimir-sem-janela-de-confirmacao-no-mozilla-firefox/

- Não consegui com outros navegadores

Vou testar a DLL acime e posto o resultado
27/10/2015 9:01am (~8 anos atrás)

E no linux(Ubuntu), como imprimir?
24/10/2015 8:45am (~8 anos atrás)

Aderson,

esse botão poderia ser em javascript ou php,
Com javascript teria que ser enviado uma requisição ajax para realizar a impressão.
Com PHP seria usando um formulário simples com um botão submit.
19/08/2013 7:51am (~10 anos atrás)

Olá Diego beleza,
brother essa função é para que o internauta/visitante que esta navegando por site e quer imprimir um texto ai existe o botão imprimir ele clica e pronto ??
18/08/2013 9:33pm (~10 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)