Imprimir direto pelo PHP

Primeiro você deve configurar o php, abra o arquivo php.ini e descomente a linha a seguir;

1
extension=php_printer.dll

Em seguida reinicie o servidor web.

Crie um arquivo com o nome de teste.txt, e coloque algum texto dentro dele(apenas para testar).
teste.txt

1
estamos testando nosso arquivo teste.txt

O próximo passo é verificar o nome da impressora, a minha esta com o nome de (hplasercolor).

Crie um arquivo com o nome imprimir.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//configure o nome da sua impressora
$printer = "hplasercolor";
if($ph = printer_open($printer))
{
   // Get file contents
//abrindo o arquivo de texto
   $fh = fopen("teste.txt", "rb");
//llendo o arquivo de texto
   $content = fread($fh, filesize("teste.txt"));
   fclose($fh);
 
   // Set print mode to RAW and send PDF to printer
   printer_set_option($ph, PRINTER_MODE, "RAW");
   printer_write($ph, $content);
   printer_close($ph);
}
else "Couldn't connect...";

Para maiores informações visite o site oficial do PHP
http://br2.php.net/manual/pt_BR/book.printer.php

11 Thoughts on “Enviando uma impressão direto pelo PHP

  1. Renato on 9 de maio de 2013 at 17:45 said:

    Ola, esse código funciona no servidor linux? quando ele executa o código, ele manda o texto pra impressão sem aquela caixa de dialogo?

    att

  2. Renato,

    Não cheguei a testar em ambiente linux, mas deverá funcionar normalmente desde que a impressora esteja instalada.

    Qual os linux você usa?

  3. Fala Bento…estou tentando faz algum tempo executar vários codigos para tentar essa impressão no windows 7.
    Tenho a extensão php_printe.dll no php.ini
    Tenho o php_printer.dll na pasta ext do php…

    Eu consigo conectar na impressora, mas não consigo imprimir nada, vc sabe qual pode ser a causa?

  4. Thiago on 28 de maio de 2015 at 12:18 said:

    Boa tarde amigo estou tentando usar o script porem fica dando este erro!

    Fatal error: Call to undefined function printer_open() in C:…

    O que pode estar acontecendo já baixei e coloquei o dll do printer na pasta ext, coloquei o nome da impressora …

    Agradeço se puder me ajudar!

  5. Thiago, você precisa adicionar a biblioteca no php, descomente a linha abaixo no arquivo php.ini ou adicione.
    extension=php_printer.dll
    Não esqueça de reiniciar o servidor apache após alterar.

  6. Alexandre on 4 de agosto de 2015 at 12:12 said:

    olá, poderiam me ajudar por favor? estou com o erro na linha
    if($ph = printer_open($printer))

    Fatal error: Call to undefined function printer_open() in
    a impressora que estou utilizando está em rede, tentei colocar conforme está o nome dela \\srvprinter\nomedaimpressora e nao deu certo.

    já coloquei a dll php_printer e tambem adicionei no php.ini a extension-php_printer.dll

    obrigado

  7. Olá Alexandre, após a configuração da DLL reinicie o servidor.
    Como a impressora está a partir de um compartilhamento de rede faça o teste acrescentando as barras, para não escapar a string do PHP, conforme exemplo abaixo;

    \\\\srvprinter\\nomedaimpressora

    Att.
    Bento

  8. Cícero Joceilton on 7 de dezembro de 2016 at 09:28 said:

    Ola teria alguma forma de selecionar a impressora que esteja instlada? ou preciso fazer alguma integração com uma linguagem de desktop? teria alguma forma de utilizar uma extensão para crhome, firefox?

  9. Amigo. já tentei de tudo.. e não reconhece pinter_open

    Call to undefined function printer_open()

    Mesmo tendo a DLL e estando descomentada no INI

    Minha impressora é uma HP Deskjet, está local no computador com localhost, uso o windows 10 e programa está abaixo.

    $printer = “HP”;
    if($ph = printer_open($printer))
    {
    printer_set_option($ph, PRINTER_MODE, “RAW”);
    printer_write($ph, “Aqui vai seu texto”);
    printer_close($ph);
    }

    • Marcel,
      Verifique se a function está ativa no PHP, usando o comando abaixo.

      if (function_exists(‘printer_open’)) {
      echo “Printer Open functions are available.
      \n”;
      } else {
      echo “Printer Open functions are not available.
      \n”;
      }

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Post Navigation