← Todos os artigos

2026-09-14

Como Imprimir Etiquetas do Google Sheets Automaticamente

Como Imprimir Etiquetas do Google Sheets Automaticamente
pdf labels barcodes label merge browser based graphical layout editor google sheets addin microsoft excel addon electronic shelf labels esl barcode3 labels label editor

Como Imprimir Etiquetas do Google Sheets Automaticamente

Os dados das suas etiquetas já estão no Google Sheets. As linhas estão lá, as colunas são consistentes, e mesmo assim, toda semana alguém exporta um CSV, faz upload em algum lugar e clica em Imprimir. Este guia trata de remover essa pessoa do processo.

Ao final, você terá um pipeline repetível: uma planilha que atua como fonte de dados, um design de etiqueta no RSJ LPSNG que mapeia para suas colunas, e um gatilho que envia trabalhos de impressão — para uma impressora, um PDF ou um PNG — sempre que seus dados mudarem. O RSJ LPSNG (lpsng.rsj.de) é a plataforma gerenciada de design e impressão de etiquetas que conecta os dois lados: ela oferece um Add-on do Google Sheets para uso interativo e uma API de serviço web para automação, para que você nunca mais toque no caminho de impressão manualmente.

Este texto é destinado a desenvolvedores e usuários avançados de planilhas que precisam de etiquetas recorrentes — etiquetas de produto, etiquetas de envio, etiquetagem específica por pedido — e não de uma impressão pontual.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • Uma conta Google com acesso ao Google Sheets e permissão para instalar add-ons.
  • Uma conta RSJ LPSNG (edição cloud ou embedded) com acesso ao estúdio de design de etiquetas e ao Add-on do Google Sheets.
  • Familiaridade básica com funções do Google Sheets. Conhecimento de Google Apps Script é opcional, mas necessário para automação completa.
  • Dados de etiquetas organizados em uma planilha: uma linha por etiqueta, com colunas para os campos que sua etiqueta precisa.
  • Para automação via API: credenciais OAuth2 para o serviço web do LPSNG. Consulte a documentação do OAuth2 para o fluxo de registro simplificado.

Passo 1: Prepare seu Google Sheet como Fonte de Dados

Comece pelos dados, não pelo design. Uma planilha previsível é o que torna tudo o que vem depois entediante — no bom sentido.

Estruture-a com uma única linha de cabeçalho e uma linha por etiqueta:

SKU ProductName Price Barcode
RSJ-1001 Espresso Beans 250 g 8.90 4006381333931
RSJ-1002 Filter Papers 100 pcs 4.50 4006381333948

Algumas regras que economizam tempo depois:

  • Uma linha = uma etiqueta. Não mescle células; células mescladas quebram a leitura de intervalos no Apps Script.
  • Tipos de coluna consistentes. Se Price é um número, mantenha como número. Tipos mistos produzem formatação imprevisível na etiqueta.
  • Nomes de cabeçalho são seus nomes de campo. Você vinculará campos da etiqueta a esses cabeçalhos, então ProductName é melhor que Name (com um espaço à direita).
  • Mantenha dados de consulta separados. Se um cadastro de produtos ou lista de preços estiver em outra aba ou intervalo, mantenha lá e faça a junção no momento da leitura. A interface Excel do LPSNG suporta arquivos de consulta para impressão orientada por planilha, e a mesma separação de responsabilidades se aplica ao Sheets.
  • Use intervalos nomeados para o bloco de dados (por exemplo, LabelData) se você planeja criar scripts sobre ele. Ele sobrevive melhor a inserções de linhas do que A2:E500.

Passo 2: Projete sua Etiqueta no LPSNG

Abra o estúdio de etiquetas do LPSNG e crie um novo layout — ou comece a partir de um modelo existente, se algum corresponder ao seu estoque de etiquetas.

Em seguida, vincule os campos:

  1. Solte um elemento de texto na tela e vincule-o à coluna ProductName.
  2. Adicione outro para Price e formate-o da maneira que você quer que apareça na etiqueta física.
  3. Adicione um elemento de código de barras ou QR e vincule-o a Barcode. O RSJ LPSNG suporta formatos de código de barras 1D e 2D — a lista completa está na documentação de Formatos de Código de Barras.
  4. Salve o design e anote o ID ou nome da etiqueta. Este é o identificador que você passará para o add-on e para a API.

Opcional, mas útil: a API de Field Script permite anexar um bloco de script Python a um campo para que os valores sejam transformados antes da impressão — remover espaços em branco, colocar um SKU em maiúsculas ou concatenar um nome e uma variante. Os nomes exatos de objetos e métodos estão documentados na API Python; o formato de um field script é aproximadamente:

# Apenas ilustrativo — consulte a documentação da Field Script API para os nomes reais dos objetos.
value = field.value.strip()
field.value = value.upper()

Manter a lógica de formatação no design da etiqueta significa que sua planilha permanece com dados limpos e sua saída de impressão permanece consistente.

Passo 3: Conecte o Google Sheets ao LPSNG com o Add-on

Este passo comprova que todo o caminho funciona antes de você automatizá-lo.

  1. Instale o RSJ LPSNG Google Sheets Add-on no Google Workspace Marketplace.
  2. Abra sua planilha de dados e inicie o add-on pelo menu Extensões.
  3. Autentique-se na sua conta LPSNG quando solicitado. Isso passa pelo fluxo OAuth2 — o mesmo protocolo de registro simplificado descrito na documentação do OAuth2.
  4. Selecione o design de etiqueta que você salvou no Passo 2.
  5. Mapeie as colunas da sua planilha para os campos da etiqueta. Se seus cabeçalhos correspondem aos vínculos de campo, este é basicamente um passo de confirmação.
  6. Imprima ou exporte etiquetas para algumas linhas selecionadas.

Se isso produzir etiquetas corretas, o mapeamento está certo. Tudo nos próximos dois passos é apenas chamar a mesma operação sem um humano presente.

O jeito difícil: exportar a planilha para CSV manualmente, fazer upload para uma fila de impressão, repetir a cada alteração. O LPSNG substitui isso por uma única ação do add-on — ou uma única chamada de API.

Passo 4: Automatize a Impressão com Gatilhos ou a API de Serviço Web

Para impressão agendada ou orientada por eventos, migre para a API de serviço web do LPSNG a partir do Google Apps Script. A API envia trabalhos de impressão, renderiza etiquetas individuais como PDF ou PNG e pode enviar trabalhos diretamente para uma impressora.

Primeiro, confirme como você obterá um token. O modelo OAuth2 do LPSNG usa um protocolo de registro simplificado projetado para conectar sistemas externos com uma única URL — consulte a documentação do OAuth2 para a solicitação de token exata que sua conta utiliza.

Em seguida, envolva o envio em uma função. O caminho do endpoint e o esquema de payload estão definidos na documentação da Interface de Webservice; a estrutura abaixo mostra o formato da chamada.

// Constantes — substitua pelos valores da documentação da Interface de Webservice
const LPSNG_API_BASE = 'https://<your-lpsng-instance>';
const PRINT_ENDPOINT = '<path from the Webservice Interface docs>';
const LABEL_ID = 'product-label-a4';

function getAccessToken() {
  // Obtenção de token OAuth2 — consulte a documentação do OAuth2.
  // Faça cache do token; não solicite um novo por etiqueta.
  return PropertiesService.getScriptProperties().getProperty('LPSNG_ACCESS_TOKEN');
}

function submitLabels(rows) {
  const payload = {
    label: LABEL_ID,
    // Uma entrada por etiqueta a imprimir
    data: rows.map(r => ({
      ProductName: r.ProductName,
      Price: r.Price,
      Barcode: r.Barcode
    })),
    output: 'pdf' // renderiza para PDF/PNG, ou envia direto para uma impressora
  };

  const res = UrlFetchApp.fetch(LPSNG_API_BASE + PRINT_ENDPOINT, {
    method: 'post',
    contentType: 'application/json',
    headers: { Authorization: 'Bearer ' + getAccessToken() },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  });

  return JSON.parse(res.getContentText());
}

Se você preferir manter o passo de impressão local e scriptável, o LPSNG Player é um motor de impressão de linha de comando autônomo: pacote mais dados na entrada, PDF/PNG/JSON/impressão/ESL na saída. É o mesmo pacote de etiqueta, acionado a partir de um shell em vez de uma chamada HTTP.

# LPSNG Player — pacote + dados na entrada, saída na saída
lpsng-player --package product-label.lps --data rows.json --output labels.pdf

Passo 5: Configure a Automação Recorrente (Baseada em Tempo ou On-Edit)

Agora anexe o gatilho. Dois padrões cobrem a maioria dos casos.

Baseado em tempo — verifica novas linhas a cada hora. Bom para fluxos orientados a lote, onde alguns minutos de latência são aceitáveis.

function installHourlyTrigger() {
  ScriptApp.newTrigger('printNewRows')
    .timeBased()
    .everyHours(1)
    .create();
}

On-edit — imprime no momento em que uma linha é adicionada ou alterada. Bom para etiquetagem específica por pedido, onde alguém está aguardando a saída.

function onEditHandler(e) {
  const sheet = e.range.getSheet();
  if (sheet.getName() !== 'Labels') return;
  if (e.range.getRow() === 1) return; // ignora a linha de cabeçalho
  printNewRows();
}

Ambos chamam o mesmo worker, que é onde você trata a idempotência. O mecanismo confiável mais simples é uma coluna de status:

const SHEET_NAME = 'Labels';
const STATUS_COL = 5; // coluna E: em branco ou "pending" / "printed"

function printNewRows() {
  const sheet = SpreadsheetApp.getActive().getSheetByName(SHEET_NAME);
  const values = sheet.getDataRange().getValues();
  const header = values.shift();

  const pending = [];
  values.forEach((row, i) => {
    const status = row[STATUS_COL - 1];
    if (!status || status === 'pending') {
      pending.push({
        rowNumber: i + 2,
        data: Object.fromEntries(header.map((h, c) => [h, row[c]]))
      });
    }
  });

  if (!pending.length) return;

  const result = submitLabels(pending.map(p => p.data));

  // Ajuste esta verificação para os campos de resposta que sua versão da API retorna.
  if (result && result.error) {
    MailApp.sendEmail('ops@example.com', 'LPSNG print job failed',
      JSON.stringify(result));
    return;
  }

  pending.forEach(p => sheet.getRange(p.rowNumber, STATUS_COL).setValue('printed'));
}

Para volumes maiores, agrupe linhas em uma única chamada de API em vez de fazer um loop com uma requisição por linha, e deixe a fila de trabalhos do LPSNG gerenciar e monitorar os trabalhos de impressão resultantes.

Passo 6: Verifique e Monitore sua Impressão Automatizada

Automação que você não observa é automação em que você não confia. Quatro verificações a mantêm honesta:

  • Fila de trabalhos. Olhe a fila de trabalhos do LPSNG para o envio bem-sucedido e a conclusão de cada trabalho.
  • Inspeção da saída. Abra o PDF ou PNG gerado e compare-o com as linhas de origem — especialmente valores de código de barras e formatação de preço.
  • Coluna de status. Linhas marcadas como printed estão processadas; linhas deixadas em branco ou pending não estão. Isso é tanto seu indicador de progresso quanto sua proteção contra duplicatas.
  • Notificações de erro. Envolva as chamadas de API em tratamento de erros e envie um e-mail para você mesmo em caso de falha. O MailApp do Apps Script é suficiente para pequenos volumes; verifique o log de execução em Executions no editor do Apps Script quando algo parar silenciosamente.

Solução de Problemas Comuns

Erros de autenticação. Tokens expiram. Certifique-se de que seu script os renove em vez de reutilizar um valor obsoleto, confirme que os escopos correspondem ao que o serviço web exige e reautentique o add-on se você mudou de conta.

Problemas de mapeamento de dados. Os cabeçalhos das colunas devem corresponder aos vínculos de campo no seu design de etiqueta. Um cabeçalho renomeado é a causa mais comum de campos em branco. Verifique também valores vazios ou malformados — uma célula de código de barras vazia produzirá um símbolo ilegível.

Falhas em trabalhos de impressão. Confirme que a impressora está acessível e que a impressora correta está selecionada no LPSNG. Para cenários de impressão em nuvem, verifique se a solução alternativa para impressoras térmicas descrita na documentação de Impressão em Nuvem está configurada.

Etiquetas duplicadas. Sempre condicione os envios a uma coluna de status ou a um ID de trabalho único por linha. Gatilhos on-edit mais tentativas sem uma proteção imprimirão alegremente a mesma etiqueta duas vezes.

Desempenho. Agrupe requisições, evite disparar muitos trabalhos em uma janela curta e use a fila de trabalhos para suavizar picos em vez de martelar a API.

Perguntas Frequentes

Preciso ser um desenvolvedor para configurar a impressão automática de etiquetas a partir do Google Sheets? Não necessariamente. O RSJ LPSNG Google Sheets Add-on oferece uma maneira sem código de imprimir etiquetas a partir da sua planilha. No entanto, para automação completa — impressão agendada ou orientada por eventos — é necessário algum script com Google Apps Script e a API de serviço web do LPSNG. A API usa OAuth2 e JSON, então habilidades básicas de desenvolvimento ajudam.

Posso imprimir diretamente em uma impressora física a partir do Google Sheets? Sim, através do RSJ LPSNG. A plataforma pode enviar trabalhos de impressão diretamente para impressoras, incluindo impressoras térmicas. Para cenários de impressão em nuvem, o LPSNG oferece uma solução alternativa para usar impressoras térmicas com o Google Cloud Print. Você também pode renderizar etiquetas como PDF ou PNG para impressão manual.

Quais formatos de etiqueta e tipos de código de barras são suportados? O RSJ LPSNG suporta uma ampla variedade de formatos de código de barras 1D e 2D. Você pode projetar etiquetas com texto, códigos de barras e outros elementos no estúdio de etiquetas. A lista exata de formatos de código de barras suportados está disponível na documentação do LPSNG em Formatos de Código de Barras.

Existe um limite para o número de etiquetas que posso imprimir automaticamente? Os limites dependem da sua edição e implantação do LPSNG. A solução em nuvem é multiusuário e escalável, enquanto a edição embedded roda em um computador de placa única. Para automação de alto volume, a fila de trabalhos ajuda a gerenciar os trabalhos de impressão. Verifique os detalhes específicos da edição para quaisquer restrições.

Conclusão: Simplifique seu Fluxo de Trabalho de Impressão de Etiquetas

O pipeline completo tem seis movimentos: estruturar a planilha, projetar a etiqueta, conectar com o add-on, automatizar o envio, anexar um gatilho, verificar a saída. Uma vez que esteja em vigor, uma nova linha na planilha se torna uma etiqueta impressa sem etapa de exportação e sem copiar e colar — e uma coluna de status informa exatamente o que aconteceu com cada linha.

O RSJ LPSNG foi construído exatamente para esse tipo de trabalho recorrente. Por ser um serviço gerenciado, o caminho de impressão — renderização, fila de trabalhos, despacho para impressora — é tratado para você, e o mesmo design de etiqueta funciona nas edições cloud, embedded e enterprise, dependendo de onde você precisa que ele rode.

Comece com o Google Sheets Add-on para comprovar seu mapeamento em algumas linhas, depois migre para a API de serviço web quando estiver pronto para remover o gatilho manual. Ambos estão documentados no site do produto.

Posts relacionados

EU label: AI-generated content