AJUDA EM CAPTURA DE RELATORIOS

27/02/2021

0

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?
Virgilio Jr

Virgilio Jr

Responder

Post mais votado

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.


Heraldo Araujo

Heraldo Araujo
Responder

Mais Posts

27/02/2021

Virgilio Jr

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.
Responder

28/02/2021

Virgilio Jr

<?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


acho que vou precisar de auxilio dos universitarios mesmo kkkk, agradeço a paciencia.
Responder

28/02/2021

Heraldo Araujo

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>";

?>
Responder

28/02/2021

Virgilio Jr

é 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á.
Responder

28/02/2021

Heraldo Araujo

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?
Responder

01/03/2021

Virgilio Jr

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.
Responder

01/03/2021

Heraldo Araujo

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.
Responder

01/03/2021

Virgilio Jr

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.


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.
Responder

01/03/2021

Virgilio Jr

<?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
Responder

01/03/2021

Virgilio Jr

atualmente to testando esse:

<?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
Responder

03/03/2021

Virgilio Jr

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:

<?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.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar