Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rhaone

Função de abrir impressora no PHP

Recommended Posts

Função de abrir impressora no PHP

 

Depurando o meu script, a linha a seguir está causando problema, como se o script tivesse uma sintaxe incorreta (a tela fica escura):

$handle = printer_open ("Texto");
1) Em c:\php\ext já está a dll "php_printer.dll"

 

2) Em c:\windows\php.ini já está configurado:

...
extension_dir = c:/PHP/ext
...
extension=php_printer.dll
...
[Printer]
;printer.default_printer = ""
Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

já utilizou alguma vez função printer ?

 

printer_open é usado para abrir a impressora e não pra inserir um texto..

Compartilhar este post


Link para o post
Compartilhar em outros sites

já utilizou alguma vez função printer ?

 

printer_open é usado para abrir a impressora e não pra inserir um texto..

Sim, é exatamente abrir a impressora que eu quero.

 

Na sequência tem outros comandos de impressão, mas que não chegam a ser executados pois o script pára neste ponto da abertura da mesma.

 

"Texto" é o nome da minha impressora Genérica que criei para testes, ou seja, para imprimir em arquivo, mas que não vem ao caso pois já utilizei também "printer_open ()" para pegar a impressora padrão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

defina o nome de compartilhamento da impressora

 

printer_open("nome da impressora")

 

nao confunda o nome da impressora com o nome de compartilhamento

 

outra forma de chamar é especificando o caminho físico, conforme está descrito no manual

Compartilhar este post


Link para o post
Compartilhar em outros sites

defina o nome de compartilhamento da impressora

 

printer_open("nome da impressora")

 

nao confunda o nome da impressora com o nome de compartilhamento

 

outra forma de chamar é especificando o caminho físico, conforme está descrito no manual

Segui a tua sugestão e ainda não deu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.

 

1. a impressora está no mesmo PC que está executando o script PHP ?

 

2. poderia mostrar o script que tentou usar no teste ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está o script até a linha que não funcionou:

<?php
  $tb_link = mysql_query ("SELECT * FROM `$database`.`$tb_depend` ORDER BY Depend");
  if (!$tb_link) {
	  echo "<script>alert ('#122=Não foi possível acessar o banco de dados!');</script>";
	  exit ();
  }

  $data_sys = getdate ();
  $ano_sys = str_pad ($data_sys ['year'], 4, "0", STR_PAD_LEFT);
  $mes_sys = str_pad ($data_sys ['mon'], 2, "0", STR_PAD_LEFT);
  $dia_sys = str_pad ($data_sys ['mday'], 2, "0", STR_PAD_LEFT);
  $hor_sys = str_pad ($data_sys ['hours'], 2, "0", STR_PAD_LEFT);
  $min_sys = str_pad ($data_sys ['minutes'], 2, "0", STR_PAD_LEFT);
  $sec_sys = str_pad ($data_sys ['seconds'], 2, "0", STR_PAD_LEFT);
  $data_sys = $dia_sys . "/" . $mes_sys . "/" . $ano_sys . " - " . $hor_sys . ":" . $min_sys . ":" . $sec_sys;

  $crlf = chr (13) . chr (10);
  $handle = printer_open ("Texto");

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. a impressora generica está funcionando ?

2. error report e error display do php estão ativados ?

3. ao chamar a função printer_open() qual o valor retornado para $handle ? o valor é RESOURCE ou BOOLEAN ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. a impressora generica está funcionando ?

2. error report e error display do php estão ativados ?

3. ao chamar a função printer_open() qual o valor retornado para $handle ? o valor é RESOURCE ou BOOLEAN ?

1. Sim, funciona.

 

2a. error_reporting = E_ALL (tava assim)

 

2b. display_errors = On (tava off)

 

3. Esta função não chega a funcionar. É nela que o script pára e agora com display_errors em on aparece a mensagem:

 

"Fatal error: Call to undefined function printer_open() in (meu script) on line XX"

 

Depois disso ativei o "display_startup_errors = On" e houve esta mensagem:

 

"PHP Startup: Unable to load dynamic library 'H:/PHP/ext\php_printer.dll' - Não foi possível encontrar o múdlo especificado."

 

Verifiquei e está lá sim!

 

E também está ativado o "extension=php_printer.dll".

 

Uso PHP-5.2-win32.

 

Procurei no Google um download do dll para a minha versão e funcionou:

 

http://kromann.info/php5_2-Release_TS/php_printer.dll

 

Agora estou usando para teste este script:

<?php
$handle = printer_open();
printer_write($handle, "Text to print");
printer_close($handle);
?>
... e não imprime nada e a impressora não dá sinal de vida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.

 

pule para o passo 5,

caso tenha algum problema reveja os passos de 1 à 4

 

 

1. não é recomendável usar arquivos de procedência duvidosa (não quer dizer que o site de onde fez o download da dll seja suspeito de algo)

 

2.

PHP Startup: Unable to load dynamic library 'H:/PHP/ext\php_printer.dll' - Não foi possível encontrar o múdlo especificado."

 

Verifiquei e está lá sim

veja como está o caminho do arquivo:

H:/PHP/ext\php_printer.dll

a nomenclatura possui barra invertida e barra normal.. conserte isso.

 

3. como está definido, no php.ini, a diretiva "extension_dir" ?

nessa diretiva deve conter, no seu caso, o valor H:/PHP/ext

Volte a dll original e conserte os caminhos definidos no php.ini

 

 

4. importante

O php, desde a versão 5.2.6 não alterou os pacotes PECL

Atualmente, o PHP está na versão 5.2.9-1, porém, o PECL continua sendo da versão 5.2.6

 

 

5.

ao executar

$handle = printer_open();

o valor atribuído à variável $handle é do tipo RESOURCE ou do tipo BOOLEAN ?

 

 

6.

é recomendável especificar o nome de compartilhamento da impressora, pois ao chamar a função "printer_open()", o driver tentará enviar um spooler para a impressora definida como padrão do sistema operacional. Em muitas vezes, a detecção pode ser falha, por isso, assegure-se da funcionalidade especificando o nome.

 

 

7.

você está usando uma impressora genéria, portanto, a impressão será salva num arquivo com extensão .xps

já procurou ver qual o local onde está configurado para salvar os arquivos xps ?

 

obs: por padrão, o XPS Viewer não abre automaticamente o arquivo gerado opós o término do spooler

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. Ciente.

 

2. Por padrão utilizo "/", mas como deu este problema tentei com "H:\PHP\ext" e não funcionou também.

 

3. extension_dir = H:/PHP/ext

 

4. Ciente.

 

5. Resource id #6

 

6. Ciente.

 

7. Não mais. Agora estou utilizando "$handle = printer_open ("HP Photosmart C4200 series");" para minimizar os problemas nos testes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok.

 

depois de tantas mudanças, novamente algumas perguntas para confirmar

 

1. A library printer está sendo carregada pelo PHP ?

o que mostra phpinfo() ?

 

2. o teste com a impressora "HP Photosmart C4200 series" funcionou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. ...

Printer Support = enabled

Default printing device = HP Photosmart C4200 series

Module state = working

RCS Version = $Id: printer.c,v 1.34 2007/01/31 05:08:46 fmk Exp $

 

Directive = printer.default_printer

Local Value = no value

Master Value = no value

 

2. Não.[/font]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.