A Brother DCP-8157DN tem uma interface Web e nela existem contadores de uso da impressora.
Com este script será possível criar contadores “zeráveis” para impressões e cópias.
Vai ter um contador Total, contador de Impressões e contador de Cópias.
Para zerar estes contadores é preciso de uma senha que você define no script, também ficará armazenada a data do último zeramento para ter este controle.
Tem também um “Contador Diário”, para este não é preciso de senha para zerar, a ideia deste contador é zerar após cada uso, assim se alguém imprimir muita coisa ou tirar muitas cópias fica fácil saber o número exato.
A página é recarregada automaticamente a cada 2 minutos para atualizar o contador.
Este script é em formato Userscript, desenvolvido para funcionar com o complemento Tampermonkey no Google Chrome.
// ==UserScript== // @name Brother 8157DN // @description Destaca contador da impressora // @author [email protected] // @version 0.7 // @require //ideias.2p.fm/userscripts/jquery-2.1.4.min.js // @match //192.168.10.157/general/information.html?kind=item // @match //brother8157dn/general/information.html?kind=item // @run-at document-end // @grant GM_getValue // @grant GM_setValue // ==/UserScript== $(document).ready(function(){ //DEFINA NA LINHA ABAIXO A SENHA PARA ZERAR O CONTADOR var a = "zerar"; //Define variáveis com a data atual para ser salva quando zerar var data=new Date(); var dia = data.getDate(); var mes = data.getMonth()+1; var ano = data.getFullYear(); var full_data = dia + '/' + mes + '/' + ano; //Dados coletados da impressora var impressora_total = $('dd', $('dl', $( '.contentsGroup:nth-child(3)'))).html(); //Page Count var impressora_copias = $("dt:contains('Copy') ~ dd").html().replace('<span class="unit">pages</span>',''); //Copy var impressora_impressoes = $("dt:contains('Print') ~ dd").html().replace('<span class="unit">pages</span>',''); //Print //Valores armazenados localmente (contadores e datas) var total_zeravel = impressora_total - GM_getValue("total_zeravel"); //Numero Total gravado desde o ultimo zeramento var total_zeravel_data = GM_getValue("total_zeravel_data"); //data do último zeramento var copias = impressora_copias - GM_getValue("copias"); //Numero de Cópias gravado desde o ultimo zeramento var copias_data = GM_getValue("copias_data"); //data do último zeramento var impressoes = impressora_impressoes - GM_getValue("impressoes"); //Numero de paginas Impressas gravado desde o ultimo zeramento var impressoes_data = GM_getValue("impressoes_data"); //data do último zeramento var diario = impressora_total - GM_getValue("diario"); //Contador para uso diário //html das linhas com os contadores para injetar na página var total_zeravel_html = '<tr><td>TOTAL desde <b>' + total_zeravel_data + '</b>: </td><td> <span style="color: red; font-size: 18px;">' + total_zeravel + '</span> páginas - <button type="button" id="zerar_total">Zerar</button></td></tr>'; var copias_html = '<tr><td>COPIAS desde <b>' + copias_data + '</b>: </td><td> <span style="color: red; font-size: 18px;">' + copias + '</span> páginas - <button type="button" id="zerar_copias">Zerar</button></td></tr>'; var impressoes_html = '<tr><td>IMPRESSÕES desde <b>' + impressoes_data + '</b>: </td><td> <span style="color: red; font-size: 18px;">' + impressoes + '</span> páginas - <button type="button" id="zerar_impressao">Zerar</button></td></tr>'; var diario_html = '<tr><td>CONTADOR DIÁRIO: </td><td> <span style="color: red; font-size: 18px;">' + diario + '</span> páginas - <button type="button" id="zerar_diario">Zerar</button></td></tr>'; //Injeta os dados abaixo do título com nome da impressora $('h2').before("A página será recarregada em <b><span id=numberCountdown></span></b> segundos<table border=1><tbody align='left'>" + total_zeravel_html + copias_html + impressoes_html + diario_html + "</tbody></table><br>"); //Recarrregar a página autmaticamente a cada 120 segundos var g_iCount = new Number(); var g_iCount = 120; function startCountdown(){ if((g_iCount - 1) >= 0){ g_iCount = g_iCount - 1; numberCountdown.innerText = g_iCount; setTimeout(function(){ startCountdown(); },1000); }else { location.reload(); } } startCountdown(); //Recarrega a pagina a cada 2 minutos //$('head').append('<meta http-equiv="refresh" content="120">'); //função do botão de zeramento do contador $(document).on('click', '#zerar_total', function(){ let p = prompt("Digite a senha para zerar o contador TOTAL:"); if (p == a){ GM_setValue ("total_zeravel", impressora_total); GM_setValue ("total_zeravel_data", full_data); alert("Contador TOTAL zerado, a página será recarregada."); location.reload(); } else { alert("Senha inválida."); } }) $(document).on('click', '#zerar_copias', function(){ let p = prompt("Digite a senha para zerar o contador de CÓPIAS:"); if (p == a){ GM_setValue ("copias", impressora_copias); GM_setValue ("copias_data", full_data); alert("Contador COPIAS zerado, a página será recarregada."); location.reload(); } else { alert("Senha inválida."); } }) $(document).on('click', '#zerar_impressao', function(){ let p = prompt("Digite a senha para zerar o contador de IMPRESSÕES:"); if (p == a){ GM_setValue ("impressoes", impressora_impressoes); GM_setValue ("impressoes_data", full_data); alert("Contador IMPRESSÕES zerado, a página será recarregada."); location.reload(); } else { alert("Senha inválida."); } }) $(document).on('click', '#zerar_diario', function(){ let p = confirm("Confirma zerar o contador DIÁRIO?"); if (p == true){ GM_setValue ("diario", impressora_total); //alert("Contador DIÁRIO zerado, a página será recarregada."); location.reload(); } }) })
Nas linhas // @match troque pelo IP de sua impressora, se quiser também acessar ela pelo Hostname
// @match //192.168.10.157/general/information.html?kind=item
// @match //brother8157dn/general/information.html?kind=item
Pronto ao acessar pela primeira vez o script vai capturar o contador atual da impressora e a partir deste valor você terá contadores que podem ser zerados.