Vous êtes sur la page 1sur 3

Formas de impresso via PHP Esta semana vamos falar um pouco sobre formas de impresso via PHP.

Uma alternativ a pouco conhecida que pode lhe ajudar a resolver o problema de impresso na sua em presa. Publicado em: 06/01/2004 Esta semana vamos falar um pouco sobre formas de impresso via PHP. Uma alternativ a pouco conhecida que pode lhe ajudar a resolver o problema de impresso na sua em presa. Surgiu h algum tempo uma dvida que encontrei em alguns fruns sobre como enviar dado s para a impressora diretamente do PHP, e a soluo proposta foi a de criao de um fron t-end (programa) que no seria feito em PHP, mas sim em Delphi por exemplo. Esse programa teria a finalidade nica de enviar os dados de um arquivo especfico q ue seria usado pelo script PHP para a tal da impressora. Eu fiquei impressionado que no existiam outras opes e comecei a procurar por uma soluo melhor. Eu encontrei a seguinte parte do manual no PHP.net: LXXXIV. Printer functions O primeiro aviso: Essas funes esto disponveis somente no Windows 9.x, ME, NT4 e 2000 . (algum queira por favor me explicar porque isso no feito pra linux tambm) Para habilitar as funes relacionadas esse mdulo do PHP necessrio adicionar a linha a baixo no seu arquivo php.ini: extension=php_printer.dll Existe ainda no php.ini a possibilidade de se escolher uma impressora padro, dai o PHP com toda a sua inteligncia, sai fazendo busca. Na funo que irei falar logo ma is se no for setado uma impressora ele busca a padro configurada no arquivo php.in i. Legal, no? Achei super interessante isso. Vamos continuar.. Abaixo segue a lista das funes disponveis nesse mdulo de impresso do PHP. NOTA: o spool file um tipo de arquivo temporrio que armazena os dados que so envia dos para a impressora. printer_abort -- Deleta o "spool file printer" o conteudo que estava no spool fi le. printer_close -- Fecha uma conexao com a impressora que esteja aberta printer_create_brush -- cria um novo "pincel" printer_create_dc -- Cria um novo contexto de dispositivo printer_create_font -- cria uma nova fonte printer_create_pen -- cria um novo "marcador" printer_delete_brush -- deleta o tal do "pincel" o brush.. printer_delete_dc -- deleta o contexto de dispositivo printer_delete_font -- deleta uma fonte printer_delete_pen -- deleta um marcador printer_draw_bmp -- desenha um bmp printer_draw_chord -- desenha um acorde.. n printer_draw_elipse -- desenha uma elipse (bolinhas ? :P) printer_draw_line -- desenha uma linha printer_draw_pie -- desenha um pie (dicionario: pastelao)

printer_draw_rectangle -- desenha um retangulo printer_draw_roundrect -- desenha outro retangulo s que com bordas arredondadas printer_draw_text -- "desenha" um texto printer_end_doc -- fecha um documento printer_end_page -- fecha uma pagina ativa printer_get_option -- retorna dados de configuracao da impressora printer_list -- essa legal.. retorna dados em array das impressoras cadastradas (muito til) printer_logical_fontheight -- pega uma largura de fonte especifica ou seta printer_open -- abre uma conexao com a impressora. printer_select_brush -- seleciona um brush printer_select_font -- seleciona uma fonte printer_select_pen -- seleciona um "marcador" printer_set_option -- seta opes para configurao da impressora printer_start_doc -- inicia um novo documento. printer_start_page -- inicia uma nova pagina printer_write -- e por fim.. o principal.. efetivamente escreve! Vou dar alguns exemplos que irei retirar do site PHP.net de como usar estas funes: <?php $handle = printer_open("lx300"); // abre conexao com a impressora setada no caso $handle = printer_open(); // tentaria abrir conexao com a impressora padrao no p hp.ini ?> Onde $handle necessrio, pois ele um recurso que usado pelas outras funes para ident ificar a impressora. Exemplo de enviar um texto simples para a impressora: <?php $handle = printer_open(); // abril conexao com a impressora padrao printer_write($handle, "X-SQL um menino legal"); // enviou para a impressora o t exto printer_close($handle); // fechou a conexao com a impressora ?> Note que enviando o texto dessa forma a impressora ir imprimir no modo que ela es tiver configurada com relao fonte, margens e etc. Para trocar isso voc pode usar as outras funes para configurar esses outros detalhes. Outro exemplo: <?php printer_set_option($handle, PRINTER_MODE, "RAW"); // se voc abrir a conexao com a sua impressora com // a variavel $abacaxi troque o $handle por $abacaxi // PRINTER_MODE uma opo (constante) da funo printer_set_option // e RAW faz imprimir no tal modo condensado. ?> Voc pode obviamente criar um arquivo texto nico com o contedo que deseja imprimir e depois passar o contedo desse arquivo para a funo printer_write(). Quem quiser fazer testes por favor enviem comentrios das suas experincias, pois ex tremamente interessante para a comunidade este tipo de informao pois no h muita docu mentao sobre o assunto em portugus.

Se possvel, faam testes em rede (desenvolvi um sistema de impresso) com as funes acim a citadas, porm no obtive sucesso ao tentar imprimir em rede. Ainda nos post comments do PHP.net foi falado que possvel enviar \\seu_servidor_l egal\impressora por caminho, e talvez assim funcione a tal da impresso via rede. Qualquer sugesto muito bem-vinda. Espero que algum que tenha algum conhecimento av anado sobre as funes acima escreva ou ainda d continuidade neste artigo, para implem entar novas idias e exemplos. Abraos, Marcelo Pereira

Vous aimerez peut-être aussi