Aplicação web moderna para controle remoto de impressora/scanner HP SmartTank 580, permitindo digitalização de documentos e fotos com configurações personalizáveis. Ideal para uso em escritórios, permitindo digitalização remota através de qualquer dispositivo conectado à mesma rede.
- Documentos em PDF e Fotos em JPEG
- Configurações personalizáveis:
- Cor (Colorido ou Preto e Branco)
- Resolução (75, 200, 300, 600 DPI)
- Qualidade de compressão
- Tamanho do documento (A4, Carta, 4x6, 5x7, 10x15)
- Nome personalizado para arquivos
- Descoberta automática do IP da impressora na rede
- Não precisa configurar manualmente o IP
- Painel de preview lateral redimensionável
- Visualização de imagens e PDFs escaneados
- Ordenação cronológica (mais recentes primeiro)
- Remoção individual de arquivos do preview
- Salvar no Computador: Opção para salvar arquivos permanentemente no servidor
- Download manual de arquivos
- Mesclagem de múltiplos PDFs em um único arquivo
- Status do scanner em tempo real
- Monitoramento do estado da digitalização
- Tratamento de erros e mensagens informativas
- Python 3.7 ou superior
- Impressora HP SmartTank 580 conectada à rede
- Navegador web moderno (Chrome, Firefox, Edge, Safari)
- Clone o repositório:
git clone <url-do-repositorio>
cd SmartTank580Remote- Crie um ambiente virtual (recomendado):
# Windows
python -m venv venv
venv\Scripts\activate
# Linux/Mac
python3 -m venv venv
source venv/bin/activate- Instale as dependências:
pip install -r requirements.txt- Configure as variáveis de ambiente (opcional):
# Crie um arquivo .env na raiz do projeto
# Exemplo:
PRINTER_IP=192.168.100.8
PORT=8080- Execute a aplicação:
python app.py- Acesse no navegador:
http://localhost:8080
Crie um arquivo .env na raiz do projeto com as seguintes variáveis (opcional):
PRINTER_IP=192.168.100.8
PORT=8080
DEBUG=True
HOST=0.0.0.0Nota: Se não configurar o IP, você pode usar a funcionalidade de descoberta automática na interface web.
- Certifique-se de que a impressora está conectada à rede Wi-Fi
- Verifique se o IP configurado está correto (ou use a descoberta automática)
- Teste a conectividade:
ping <ip-da-impressora>
-
Descoberta do IP (opcional):
- Clique em "🔍 Descobrir IP da Impressora"
- Aguarde a descoberta automática
-
Configurar Digitalização:
- Selecione o tipo: PDF ou JPEG
- Escolha a cor: Cores ou Preto e Branco
- Selecione o tamanho do documento (padrão: A4)
- Configure a resolução (padrão: 300 DPI)
- Ajuste a qualidade de compressão
- Digite um nome para o arquivo (opcional)
-
Salvar no Computador (opcional):
- Marque o checkbox "Salvar no Computador" se desejar que o arquivo seja salvo permanentemente no servidor
- Se marcado, o arquivo será salvo na pasta
pdf/do servidor - Se não marcado, o arquivo ficará apenas temporariamente na pasta
temp/
-
Iniciar Digitalização:
- Clique em "Criar Tarefa de Digitalização"
- Coloque o documento no scanner
- Aguarde o processamento
- O arquivo aparecerá automaticamente no preview lateral
- Visualização: Todos os arquivos escaneados aparecem no painel de preview à direita
- Redimensionamento: Arraste a borda direita do painel para ajustar a largura
- Remoção: Clique em "Remover" em qualquer arquivo para removê-lo do preview
- Ordenação: Arquivos mais recentes aparecem primeiro
-
Download Manual:
- Clique no botão "Salvar"
- O último arquivo escaneado será baixado
-
Salvar Permanentemente:
- Marque "Salvar no Computador" antes de digitalizar
- O arquivo será salvo automaticamente na pasta
pdf/do servidor
- Digitalize múltiplos documentos
- Clique em "Juntar"
- Todos os PDFs na pasta
temp/serão mesclados - O arquivo mesclado será baixado automaticamente
SmartTank580Remote/
├── app.py # Aplicação principal Flask
├── config.py # Configurações centralizadas
├── printer_routes.py # Rotas relacionadas à impressora
├── requirements.txt # Dependências Python
├── .env # Variáveis de ambiente (criar)
│
├── services/ # Serviços e lógica de negócio
│ ├── __init__.py
│ ├── scanner_service.py # Serviço de scanner
│ ├── printer_discovery_service.py # Descoberta de IP
│ └── file_service.py # Gerenciamento de arquivos
│
├── static/ # Arquivos estáticos
│ ├── script.js # Scripts principais
│ ├── digitalizar.js # Lógica de digitalização
│ ├── salvar.js # Lógica de salvamento
│ ├── mesclar.js # Lógica de mesclagem
│ ├── discovery.js # Descoberta de IP
│ ├── styles.css # Estilos CSS
│ └── styles_improved.css # Estilos alternativos
│
├── templates/ # Templates HTML
│ ├── index.html # Interface principal
│ └── index_improved.html # Interface alternativa
│
├── temp/ # Arquivos temporários (gerado automaticamente)
├── pdf/ # Arquivos salvos permanentemente (gerado automaticamente)
│
└── README.md # Este arquivo
Sintoma: Mensagem "A impressora está offline"
Soluções:
- Verifique a conexão de rede da impressora
- Confirme o IP da impressora nas configurações
- Teste a conectividade:
ping <ip-da-impressora> - Use a funcionalidade de descoberta automática de IP
- Verifique se a impressora está ligada e conectada à mesma rede
Sintoma: "Falha ao criar a tarefa de digitalização. Código de status: 503"
Soluções:
- Verifique se há outra tarefa de digitalização em andamento
- Aguarde alguns segundos e tente novamente
- Verifique se o scanner não está ocupado ou em erro
- Reinicie a impressora se necessário
Sintoma: Arquivo escaneado mas não aparece no preview
Soluções:
- Recarregue a página
- Verifique se o arquivo foi salvo na pasta
temp/ - Verifique os logs do servidor para erros
- Limpe os arquivos temporários e tente novamente
Nota: A aplicação usa verify=False para desenvolvimento. Para produção, configure certificados adequados.
export FLASK_ENV=development
python app.pytemp/: Arquivos temporários (podem ser limpos)pdf/: Arquivos salvos permanentemente quando "Salvar no Computador" está marcado
A aplicação verifica automaticamente arquivos temporários ao iniciar. Você também pode limpar manualmente através da interface ou deletando os arquivos na pasta temp/.
- Esta aplicação foi desenvolvida para uso em rede local
- Para uso em produção, considere:
- Implementar autenticação
- Usar HTTPS com certificados válidos
- Configurar firewall adequado
- Implementar rate limiting
- Usar variáveis de ambiente para configurações sensíveis
- Protocolo: eSCL (eScan Service)
- Porta padrão: 8080
- Formato de arquivos: PDF e JPEG
- Resoluções suportadas: 75, 200, 300, 600 DPI
Contribuições são bem-vindas! Siga estes passos:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido para controle remoto de impressora HP SmartTank 580.
Para problemas ou dúvidas:
- Verifique a seção "Solução de Problemas" acima
- Consulte os logs do servidor
- Abra uma issue no repositório
Versão: 1.0
Última atualização: 2026