zplCloud Blog
Dal flusso di stampa con Google Sheets all'etichetta stampata
Stampante → design → foglio di calcolo → Print View. Incluso l'Apps Script che si autentica davvero.
Inizia dalla sorgente dati che hai già
La maggior parte dei progetti di etichette non si blocca sulla stampante o sul design. Si blocca sui dati: qualcuno deve essere proprietario dell'elenco articoli, e "collegheremo l'ERP" si trasforma in un ticket di sei settimane.
Quindi inizia con un foglio di calcolo Google. È una vera sorgente dati, tutti in ufficio possono modificarlo, e il percorso da lì a un'etichetta stampata è breve. Quando la connessione ERP sarà finalmente pronta, l'etichetta e il percorso di stampa non cambiano - cambia solo da dove arrivano le righe.
Questa è l'intera catena, dall'inizio alla fine.
1 - Stampante in rete e collegata
Scarta, carica il supporto, accendi, mettila in rete, poi collegal'a zplCloud con il one-liner Weblink o l'agente CLI, e applica un profilo stampante così oscurità e velocità corrispondono al supporto. Questo è coperto passo passo nel post speed-run; metti in conto 10 minuti.
2 - Progetta l'etichetta
Nel designer, parti da un modello o da zero e aggiungi i campi che cambiano per etichetta: numero articolo, nome, quantità, destinazione. Dai ai binding esattamente gli stessi nomi delle intestazioni di colonna del foglio - quella singola decisione elimina tutto il lavoro di mappatura successivo.
Controlla l'anteprima come PNG, PDF o SVG. È renderizzata lato server dallo stesso motore che produce lo ZPL, quindi non è un'approssimazione.
Annota l'ID del design. È <nome>.<id>, es. shipping-label.42; ti serve per l'API.
3 - Il foglio di calcolo
Una riga per etichetta, una colonna per binding:
| artikel_nr | name | menge | ziel |
|---|---|---|---|
| 4006381333930 | Cable tie 200 mm | 50 | Ramp 4 |
| 4006381333947 | Cable tie 300 mm | 25 | Ramp 2 |
Percorso A - senza codice. Copia le righe nella scheda Dati di prova del designer o in un lavoro batch e stampa. Questo basta per una tiratura settimanale e non richiede alcuna configurazione.
Percorso B - Apps Script. Il foglio diventa il trigger. Renderizza tramite l'API pubblica con una chiave API:
// Estensioni → Apps Script. Renderizza la riga attiva e restituisce lo ZPL.
const API_KEY = 'sk_zplcloud_…'; // scheda API nella piattaforma
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];
// Il corpo è un array di record: le chiavi devono corrispondere ai binding del 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 // altrimenti un 4xx lancia prima che tu possa leggere il messaggio
});
if (res.getResponseCode() !== 200) throw new Error(res.getContentText());
return res.getContentText(); // lo ZPL
}
Due limiti da aggirare nel design, entrambi applicati dall'API:
- 500 record per richiesta - dividi le tirature più grandi in blocchi.
- Corpo richiesta di 1 MB - con dati di etichette normali sono migliaia di righe, quindi il tetto dei record si raggiunge prima.
Aggiungi un menu personalizzato (onOpen → SpreadsheetApp.getUi().createMenu(...)) e i tuoi colleghi ottengono una voce Stampa nella barra dei menu del foglio stesso.
4 - Portare lo ZPL alla stampante
Renderizzare e stampare sono due passaggi voluti - puoi renderizzare ora e stampare dopo, o renderizzare una volta e stampare su tre siti.
- Dalla piattaforma: il design stampa su una stampante Weblink o agente con un clic, senza script.
- Dal tuo codice: invia lo ZPL alla stampante via TCP 9100 attraverso l'agente, o consegnalo a CloudToBrowserPrint sulla macchina dell'operatore.
- Per una persona: salta completamente lo script e dagli una Print View (passo successivo).
5 - Print View per chi stampa davvero
Crea una Print View dal design, marca menge e ziel modificabili, blocca artikel_nr, e supporta la vista con i dati del foglio o una ricerca. Condividi l'URL o stampa il QR code e attaccalo vicino alla stampante.
L'operatore apre il link sul telefono, scansiona il codice a barre dell'articolo nel campo, controlla l'anteprima live e tocca stampa. Nessuna app, nessuna formazione.
L'intera catena
| Fase | Cosa | Tempo |
|---|---|---|
| 1 | Stampante + Weblink/agente + profilo | ~10 min |
| 2 | Design con binding nominati come le colonne | ~5 min |
| 3 | Foglio di calcolo, eventualmente un Apps Script | ~5 min |
| 4 | Percorso di stampa (piattaforma, API o Print View) | ~2 min |
| 5 | L'operatore scansiona e stampa | secondi |
Perché un foglio di calcolo è una scelta difendibile
Non è un compromesso di cui scusarsi. Un foglio ti dà versioning, commenti, accesso per utente e una pista di audit di serie, e nessuno ha bisogno di onboarding. I suoi veri limiti sono la concorrenza e l'integrità referenziale - quando due persone modificano la stessa riga durante un turno, o quando l'elenco articoli deve corrispondere esattamente all'ERP, quello è il segnale per passare al data hub e interrogare SQL Server o MongoDB direttamente.
La migrazione è contenuta: stesso design, stessi binding, stessa Print View. Cambia solo la sorgente dati.