zplCloud Blog
Do fluxo de impressão com Google Sheets à etiqueta impressa
Impressora → design → planilha → Print View. Incluindo o Apps Script que realmente autentica.
Comece pela fonte de dados que você já tem
A maioria dos projetos de etiquetas não trava na impressora ou no design. Trava nos dados: alguém precisa ser dono da lista de artigos, e "vamos conectar o ERP" vira um ticket de seis semanas.
Então comece com uma planilha do Google. É uma fonte de dados real, todos no escritório podem editá-la, e o caminho de lá até uma etiqueta impressa é curto. Quando a conexão com o ERP estiver finalmente pronta, a etiqueta e o caminho de impressão não mudam - só muda de onde vêm as linhas.
Esta é a cadeia inteira, de ponta a ponta.
1 - Impressora na rede e conectada
Desembale, carregue a mídia, ligue, coloque na rede e conecte-a ao zplCloud com o one-liner Weblink ou o agente CLI, e aplique um perfil de impressora para que escuridão e velocidade correspondam à mídia. Isso é coberto passo a passo no post speed-run; reserve 10 minutos.
2 - Crie a etiqueta
No designer, comece de um modelo ou em branco e adicione os campos que mudam por etiqueta: número do artigo, nome, quantidade, destino. Nomeie os bindings exatamente como os cabeçalhos das colunas da planilha - essa única decisão elimina todo o trabalho de mapeamento depois.
Verifique a visualização como PNG, PDF ou SVG. Ela é renderizada no servidor pelo mesmo mecanismo que produz o ZPL, então não é uma aproximação.
Anote o ID do design. É <nome>.<id>, ex. shipping-label.42; você precisa dele para a API.
3 - A planilha
Uma linha por etiqueta, uma coluna por binding:
| artikel_nr | name | menge | ziel |
|---|---|---|---|
| 4006381333930 | Cable tie 200 mm | 50 | Ramp 4 |
| 4006381333947 | Cable tie 300 mm | 25 | Ramp 2 |
Caminho A - sem código. Copie as linhas para a aba Dados Teste do designer ou para um trabalho em lote e imprima. Isso é suficiente para uma tiragem semanal e não exige configuração alguma.
Caminho B - Apps Script. A planilha vira o gatilho. Renderize através da API pública com uma chave de API:
// Extensões → Apps Script. Renderiza a linha ativa e retorna o ZPL.
const API_KEY = 'sk_zplcloud_…'; // aba API na plataforma
const DESIGN_ID = 'shipping-label.42'; // "<nome>.<id>"
function renderActiveRow() {
const sheet = SpreadsheetApp.getActiveSheet();
const header = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
const row = sheet.getRange(sheet.getActiveCell().getRow(), 1, 1, sheet.getLastColumn()).getValues()[0];
// O corpo é um array de registros: as chaves devem corresponder aos bindings do design.
const record = {};
header.forEach((col, i) => record[col] = row[i]);
const res = UrlFetchApp.fetch(
'https://api.zplcloud.com/v1/zpl/render/design/' + DESIGN_ID,
{
method: 'post',
contentType: 'application/json',
headers: { 'X-API-Key': API_KEY },
payload: JSON.stringify([record]),
muteHttpExceptions: true // senão um 4xx lança antes de você ler a mensagem
});
if (res.getResponseCode() !== 200) throw new Error(res.getContentText());
return res.getContentText(); // o ZPL
}
Dois limites para contornar no design, ambos aplicados pela API:
- 500 registros por solicitação - divida tiragens maiores em blocos.
- Corpo de solicitação de 1 MB - com dados de etiqueta normais, isso são milhares de linhas, então o limite de registros atinge primeiro.
Adicione um menu personalizado (onOpen → SpreadsheetApp.getUi().createMenu(...)) e seus colegas ganham uma entrada Imprimir na própria barra de menu da planilha.
4 - Levando o ZPL para a impressora
Renderizar e imprimir são duas etapas de propósito - você pode renderizar agora e imprimir depois, ou renderizar uma vez e imprimir em três unidades.
- Da plataforma: o design imprime em uma impressora Weblink ou agente com um clique, sem script.
- Do seu próprio código: envie o ZPL para a impressora via TCP 9100 através do agente, ou entregue ao CloudToBrowserPrint na máquina do operador.
- Para uma pessoa: pule o script completamente e dê a ela uma Print View (próxima etapa).
5 - Print View para quem realmente imprime
Crie uma Print View a partir do design, marque menge e ziel como editáveis, bloqueie artikel_nr, e apoie a visão com os dados da planilha ou uma busca. Compartilhe a URL ou imprima o QR code e cole-o perto da impressora.
O operador abre o link no celular, escaneia o código de barras do artigo no campo, confere a visualização ao vivo e toca em imprimir. Sem app, sem treinamento.
A cadeia inteira
| Etapa | O quê | Tempo |
|---|---|---|
| 1 | Impressora + Weblink/agente + perfil | ~10 min |
| 2 | Design com bindings nomeados como as colunas | ~5 min |
| 3 | Planilha, opcionalmente um Apps Script | ~5 min |
| 4 | Caminho de impressão (plataforma, API ou Print View) | ~2 min |
| 5 | O operador escaneia e imprime | segundos |
Por que uma planilha é uma escolha defensável
Não é um compromisso pelo qual você se desculpa. Uma planilha dá versionamento, comentários, acesso por usuário e trilha de auditoria de fábrica, e ninguém precisa de onboarding. Seus limites reais são concorrência e integridade referencial - quando duas pessoas editam a mesma linha durante um turno, ou quando a lista de artigos precisa corresponder exatamente ao ERP, esse é o sinal para migrar para o data hub e consultar SQL Server ou MongoDB diretamente.
A migração é contida: mesmo design, mesmos bindings, mesma Print View. Só a fonte de dados muda.