AJUDA EM CAPTURA DE RELATORIOS
Bom dia senhores, sou novo no forum como podem percerber hehheehe
atualmente sou Analista de suporte de minha empresa, nós prestamos serviços de outsourcing de impressão, ou seja alugamos e vendemos impressoras para quem precisar, reduzindo os custos operacionais e etc...
para faturar nós cobramos o aluguel dos equipamentos + a produção, ou seja produção = qtd de paginas impressas ou copiadas,
dai uma vez por mês eu retiro os relatorios de contabilização das maquinas, OKIDATA, eles são relatorios via web no próprio sistema das impressoras, por exemplo abaixo:
View Information
( To save this information page to your computer, select "Save" or Save as..." from your browser's file menu. Note: menus may differ depending on your browser. )
Information
Tray1 : A4
MP Tray : A4
Duplex : Installed
Memory : 512 MB
Count
Print Count
Tray1 : 103778
MP Tray : 62
Scan Count
Total Scanned Pages : 5986
Scanned Pages : 5986
Total Scanned Pages (ADF) : 5081
Scanned Pages (ADF) : 5081
Usage Report
27/02/2021 12:53
Serial Number : AK68029431
Asset Number :
Copy/Print Counter(Impressions)
Media Size Mono
A4 / Letter
Copies: 20677
Prints: 92842
Fax Received: 0
Total Impressions: 113519
Total A4/Letter Impressions: Mono:113519
Para abrir esse relatorio é bem simples, basta eu botar o IP da impressora no navegador + /printer/infotosave.htm > botar o login padrão da impressora > ai abre uma pagina web com essas informações acima,
oque eu queria é, como faria um sistema para capturar essa pagina web e armazenar em um pdf no pc ou servidor, isso de forma automatica,
tipo eu botaria em um campo, os endereços de ip + o login e senha, e ao apertar ele geraria varios pdf ou um só contendo essa pagina?
atualmente sou Analista de suporte de minha empresa, nós prestamos serviços de outsourcing de impressão, ou seja alugamos e vendemos impressoras para quem precisar, reduzindo os custos operacionais e etc...
para faturar nós cobramos o aluguel dos equipamentos + a produção, ou seja produção = qtd de paginas impressas ou copiadas,
dai uma vez por mês eu retiro os relatorios de contabilização das maquinas, OKIDATA, eles são relatorios via web no próprio sistema das impressoras, por exemplo abaixo:
View Information
( To save this information page to your computer, select "Save" or Save as..." from your browser's file menu. Note: menus may differ depending on your browser. )
Information
Tray1 : A4
MP Tray : A4
Duplex : Installed
Memory : 512 MB
Count
Print Count
Tray1 : 103778
MP Tray : 62
Scan Count
Total Scanned Pages : 5986
Scanned Pages : 5986
Total Scanned Pages (ADF) : 5081
Scanned Pages (ADF) : 5081
Usage Report
27/02/2021 12:53
Serial Number : AK68029431
Asset Number :
Copy/Print Counter(Impressions)
Media Size Mono
A4 / Letter
Copies: 20677
Prints: 92842
Fax Received: 0
Total Impressions: 113519
Total A4/Letter Impressions: Mono:113519
Para abrir esse relatorio é bem simples, basta eu botar o IP da impressora no navegador + /printer/infotosave.htm > botar o login padrão da impressora > ai abre uma pagina web com essas informações acima,
oque eu queria é, como faria um sistema para capturar essa pagina web e armazenar em um pdf no pc ou servidor, isso de forma automatica,
tipo eu botaria em um campo, os endereços de ip + o login e senha, e ao apertar ele geraria varios pdf ou um só contendo essa pagina?
Virgilio Jr
Curtidas 0
Melhor post
Heraldo Araujo
27/02/2021
Olá, Virgílio
Vc pode pegar dados de outra páina com esse comando aqui. Mas, precisa de entender a linguagem php.
<?php
// URL DO SITE
$url = 'http://www.horariodebrasilia.org/index.php'; // aqui seria a tua URL da impressora
// PEGANDO TODO CONTEUDO
$dadosSite = file_get_contents($url);
$var1 = explode('<p id="relogio">',$dadosSite);
$var2 = explode("</p>",$var1[1]);
print "<h1><center>Horário de Brasília<br>
".$var2[0]."</center></h1>";
?>
Obs.: caso vc não tenha como fazer, posso fazer essa tarefa pra vc pro aqui mesmo. Vc combina.
Vc pode pegar dados de outra páina com esse comando aqui. Mas, precisa de entender a linguagem php.
<?php
// URL DO SITE
$url = 'http://www.horariodebrasilia.org/index.php'; // aqui seria a tua URL da impressora
// PEGANDO TODO CONTEUDO
$dadosSite = file_get_contents($url);
$var1 = explode('<p id="relogio">',$dadosSite);
$var2 = explode("</p>",$var1[1]);
print "<h1><center>Horário de Brasília<br>
".$var2[0]."</center></h1>";
?>
Obs.: caso vc não tenha como fazer, posso fazer essa tarefa pra vc pro aqui mesmo. Vc combina.
GOSTEI 1
Mais Respostas
Virgilio Jr
27/02/2021
Opa , vou testar mano, vou fazer os teste.
Eu até tenho um básico de Php, vou tentar aqui e vou informando, agradeço demais.
Eu até tenho um básico de Php, vou tentar aqui e vou informando, agradeço demais.
GOSTEI 0
Virgilio Jr
27/02/2021
<?php
// URL DO SITE
$url = 'http://10.2.8.104/printer/infotosave.htm'; // aqui seria a tua URL da impressora
// PEGANDO TODO CONTEUDO
$dadosSite = file_get_contents($url);
$var1 = explode('<p id="relogio">',$dadosSite);
$var2 = explode("</p>",$var1[1]);
print "<h1><center>Horário de Brasília<br>
".$var2[0]."</center></h1>";
?>tentei aqui, mas creio que fui com amadorismo, creio que precise de um parametro para botar o login e senha que o site pede, pois no index.php deu o seguinte erro:
Warning: file_get_contents(http://10.2.8.104/printer/infotosave.htm): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\\wamp64\\www\\contador\\index.php on line 7
Call Stack
# Time Memory Function Location
1 0.0001 405016 ( ) ...\\index.php:0
2 0.0001 405016 file_get_contents ( ) ...\\index.php:7
( ! ) Notice: Undefined offset: 1 in C:\\wamp64\\www\\contador\\index.php on line 10
Call Stack
# Time Memory Function Location
1 0.0001 405016 ( ) ...\\index.php:0
Call Stack
# Time Memory Function Location
1 0.0001 405016 ( ) ...\\index.php:0
2 0.0001 405016 file_get_contents ( ) ...\\index.php:7
( ! ) Notice: Undefined offset: 1 in C:\\wamp64\\www\\contador\\index.php on line 10
Call Stack
# Time Memory Function Location
1 0.0001 405016 ( ) ...\\index.php:0
acho que vou precisar de auxilio dos universitarios mesmo kkkk, agradeço a paciencia.
GOSTEI 0
Heraldo Araujo
27/02/2021
Veja, esse outro teste, abaixo(teste você também), vai lá no site da REDE GLOBO(que é uma página muito maior que a do teu caso) e printa todo conteudo - reconstruindo a página no browser.
Se não est´afazendo no http que vc está indicando, é pq o servidor deve estar fechado para internet. Veja isso com o suporte do servidor. Blz?
// esse código abaixo vai no site da Globo e printa todo conteúdo.
<?php
// URL DO SITE
$url = 'https://g1.globo.com/';
// PEGANDO TODO CONTEUDO
$dadosSite = file_get_contents($url);
//PRITANDO O CONTEÚDO DO SITE
echo "<pre>";
echo "<p>$dadosSite</p>";
echo "</pre>";
?>
Se não est´afazendo no http que vc está indicando, é pq o servidor deve estar fechado para internet. Veja isso com o suporte do servidor. Blz?
// esse código abaixo vai no site da Globo e printa todo conteúdo.
<?php
// URL DO SITE
$url = 'https://g1.globo.com/';
// PEGANDO TODO CONTEUDO
$dadosSite = file_get_contents($url);
//PRITANDO O CONTEÚDO DO SITE
echo "<pre>";
echo "<p>$dadosSite</p>";
echo "</pre>";
?>
GOSTEI 0
Virgilio Jr
27/02/2021
é realmente testei aqui com esse ai que ta o link do G1 e funcionou,
como poderia fazer tendo em vista que as impressoras são acessadas pelo meu notebook via VPN, só apos conectar tenho acesso as impressoras,
qual o proximo passo que teria que ser feito?
o codigo php ser feito dentro do servidor? pois eu tenho liberdade total para executar lá.
como poderia fazer tendo em vista que as impressoras são acessadas pelo meu notebook via VPN, só apos conectar tenho acesso as impressoras,
qual o proximo passo que teria que ser feito?
o codigo php ser feito dentro do servidor? pois eu tenho liberdade total para executar lá.
GOSTEI 0
Heraldo Araujo
27/02/2021
O que tá acontecendo é que o IP que vc tem é para endereço de intranet - endereço interno. Vc tem que pegar o IP da internet, Mano. Tipo, da um comando no prompt do win assim: "ping nome_do_host -t" que vc verá o IP correto.
Por exemplo, para ver qual o IP do G1, teria que digitar no promt do WIN: "ping g1.globo.com -t" , ele responderá: "186.192.81.31" , jamais poderia começar por "10". Entendeu?
Por exemplo, para ver qual o IP do G1, teria que digitar no promt do WIN: "ping g1.globo.com -t" , ele responderá: "186.192.81.31" , jamais poderia começar por "10". Entendeu?
GOSTEI 0
Virgilio Jr
27/02/2021
Então o primeiro passo antes disso é tornar as impressoras "externas", pois o unico ip dela disponivel é o interno/local, vou fazer com o admin do server para vê se é possível isso.
dai volto a tentar esse codigo ai.
dai volto a tentar esse codigo ai.
GOSTEI 0
Heraldo Araujo
27/02/2021
Não necessariamente a impressora deve estar externa(acho que errei no que eu queria falar).
O que deve estar externo(ser enxergado pela internet para puder ser executado do seu browser) é o programa(pode ser php, java, asp) que irá enxergar a impressora. Esse programa, sim, tem que ter acesso aos aplicativos da impressora, ele, certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora. Exemplo, quando eu executo, aqui, da minha casa, um programa em php num servidor remoto, esse php pode acessar qquer coisa que o servidor permita lá na rede dele.
espero ter sido mais claro agora.
O que deve estar externo(ser enxergado pela internet para puder ser executado do seu browser) é o programa(pode ser php, java, asp) que irá enxergar a impressora. Esse programa, sim, tem que ter acesso aos aplicativos da impressora, ele, certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora. Exemplo, quando eu executo, aqui, da minha casa, um programa em php num servidor remoto, esse php pode acessar qquer coisa que o servidor permita lá na rede dele.
espero ter sido mais claro agora.
GOSTEI 0
Virgilio Jr
27/02/2021
Não necessariamente a impressora deve estar externa(acho que errei no que eu queria falar).
O que deve estar externo(ser enxergado pela internet para puder ser executado do seu browser) é o programa(pode ser php, java, asp) que irá enxergar a impressora. Esse programa, sim, tem que ter acesso aos aplicativos da impressora, ele, certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora. Exemplo, quando eu executo, aqui, da minha casa, um programa em php num servidor remoto, esse php pode acessar qquer coisa que o servidor permita lá na rede dele.
espero ter sido mais claro agora.
O que deve estar externo(ser enxergado pela internet para puder ser executado do seu browser) é o programa(pode ser php, java, asp) que irá enxergar a impressora. Esse programa, sim, tem que ter acesso aos aplicativos da impressora, ele, certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora. Exemplo, quando eu executo, aqui, da minha casa, um programa em php num servidor remoto, esse php pode acessar qquer coisa que o servidor permita lá na rede dele.
espero ter sido mais claro agora.
Nessa parte
"certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora."
Então, eu tenho um acesso via VPN, após conectar nele eu já tenho acesso pelo browser das Impressoras,
Então creio que oque precisa ter nesse código pra funcionar seria uma variável de login e password
Vou testar abrir uma página que não precise de login na Impressora.
GOSTEI 0
Virgilio Jr
27/02/2021
<?php // URL DO SITE $url = ''http://10.2.8.104''; // PEGANDO TODO CONTEUDO $dadosSite = file_get_contents($url); //PRITANDO O CONTEÚDO DO SITE echo "<pre>"; echo "<p>$dadosSite</p>"; echo "</pre>"; ?>
fiz um teste agora conectado direto na vpn, a pagina ficou toda em branco, mas parece que teve um avanço, pois o titulo do site ficou o nome da impressora, porém como falei tudo em branco,
tem algum codigo que eu ja deixe setado o login
user: admin
pw: aaaaaa
GOSTEI 0
Virgilio Jr
27/02/2021
atualmente to testando esse:
da o seguinte erro:
Warning: file_get_contents(http://...@10.2.8.104/printer/infotosave.htm): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\\wamp64\\www\\contador\\index.php on line 7
<?php // URL DO SITE $url = 'http://admin:aaaaaa@10.2.8.104/printer/infotosave.htm'; // PEGANDO TODO CONTEUDO $dadosSite = file_get_contents($url); //PRITANDO O CONTEÚDO DO SITE echo "<pre>"; echo "<p>$dadosSite</p>"; echo "</pre>"; ?>
da o seguinte erro:
Warning: file_get_contents(http://...@10.2.8.104/printer/infotosave.htm): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\\wamp64\\www\\contador\\index.php on line 7
GOSTEI 0
Virgilio Jr
27/02/2021
Depois de muita dor de cabeça, somente com o metodo CURL consegui realizar a primeira etapa do que eu queria,
espelhar a pagina de relatorio da minha impressora, segue o codigo abaixo:
minha intenção agora é botar todas as impressoras nessa tela, e gera um pdf com todos os dados presentes.
espelhar a pagina de relatorio da minha impressora, segue o codigo abaixo:
<?php $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,"http://10.2.8.104/printer/infotosave.htm"); $username = "admin"; $password = "aaaaaa"; curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); $retorno = curl_exec($curl); print $retorno; ?>
minha intenção agora é botar todas as impressoras nessa tela, e gera um pdf com todos os dados presentes.
GOSTEI 0