Vai al contenuto principale

Domande

Posso stampare un documento dalla mia applicazione?

Sì, senza dover installare nulla. Ogni applicazione generata include un foglio di stile per la stampa: con Ctrl+P, o « Salva come PDF », ottieni una pagina A4 priva della navigazione, in bianco e nero indipendentemente dal tema visualizzato sullo schermo. Lo stato di sintesi va oltre: include un pulsante « Stampa » sempre presente e prevedibile, i suoi campi di colore sono riprodotti fedelmente e i salti di pagina non tagliano mai a metà una riga di importo. Ciò che invece è importante sapere: il PDF è generato dal browser, non da una libreria integrata, pertanto non è disponibile alcun modello di fattura con intestazione personalizzata, né l’invio automatico via email. Questa pagina spiega esattamente cosa esce dalla stampante, e cosa invece non esce.

Ciò che è presente in tutte le applicazioni: un foglio A4 pulito

Il foglio di stile per la stampa non è un’opzione da attivare: è integrato direttamente nel foglio di stile di ogni applicazione generata e si applica esclusivamente alla stampa, la resa a schermo rimane identica, carattere per carattere. Il suo funzionamento si basa su quattro azioni precise. Imposta il formato su A4 con margini leggibili per la stampante. Rimuove dal supporto cartaceo tutto ciò che non ha ragione di essere stampato: la barra laterale di navigazione, la barra superiore, il piè di pagina della sessione, il badge Blueprint e ogni elemento contrassegnato come non stampabile, anche il pulsante « Stampa » rientra in questa categoria, quindi non compare mai sull’output finale.

Impone quindi lo sfondo bianco e l’inchiostro nero, indipendentemente dal tema attivo al momento della stampa: un’applicazione visualizzata in tema scuro non produce una pagina nera, e il contrasto è garantito senza consumare inutilmente una cartuccia. Infine, il punto meno visibile ma più utile, restituisce alla struttura il comportamento tipico di un documento. A schermo, l’applicazione occupa l’intera altezza della finestra e fa scorrere il contenuto al suo interno; in fase di stampa, questo meccanismo produrrebbe una pagina troncata all’altezza della prima schermata. Le regole definite nel foglio di stile neutralizzano tale comportamento: l’altezza si adatta al contenuto, e un elenco di quaranta righe verrà stampato su tante pagine quanti ne servono.

Lo stato di sintesi: un documento pronto per la consegna, con il suo pulsante

Una sezione di stato di sintesi, un riepilogo numerico, un documento articolato per voci, è per natura destinata alla stampa o al PDF. Per questo motivo include un pulsante « Stampa », posizionato in modo deterministico dal generatore, senza dipendenze né chiamate di rete: attiva la funzione di stampa del browser e viene automaticamente nascosto nell’output. Il documento viene quindi adeguato di conseguenza: l’ombra viene rimossa, gli angoli arrotondati diventano rettangolari, la larghezza si espande a tutta pagina e lo scorrimento orizzontale interno viene disattivato, così che nulla esca dai margini del foglio.

Due dettagli fanno la differenza tra uno screenshot e un vero documento. Innanzitutto, i campi di colore, fascia d’intestazione, riga di totale, subtotali, sono riprodotti fedelmente, mentre i browser li rendono bianchi per impostazione predefinita durante la stampa: senza questa regola, la riga di totale perderebbe proprio ciò che la distingue dalle altre. In secondo luogo, i salti di pagina sono controllati: una riga di importo non viene mai spezzata tra due fogli, e un titolo di voce non rimane mai isolato in fondo alla pagina, viaggia sempre insieme alle righe che introduce.

Il PDF proviene dal browser, ed è una scelta consapevole

Nell’applicazione consegnata non è inclusa alcuna libreria per la generazione di PDF: il PDF è quello prodotto dalla finestra di dialogo di stampa del tuo browser, tramite l’opzione « Salva come PDF ». Questa scelta ha conseguenze in entrambi i sensi, e conviene conoscerle bene. Dal lato positivo: funziona offline, non ha costi, non aggiunge dipendenze da mantenere e funziona tanto da smartphone quanto da computer. Dal lato meno vantaggioso: richiede un’azione manuale, non esiste un pulsante « Invia il PDF al cliente », e intestazione, piè di pagina e nome del file derivano dalle impostazioni del browser, non dall’applicazione.

Per i documenti a righe, un riepilogo ordini, un estratto dettagliato, il generatore sa produrre il layout corrispondente quando la struttura dei tuoi dati lo giustifica: un elemento padre, righe collegate e un importo di riga che viene RICALCOLATO in base ai campi della riga stessa. Quest’ultimo punto non è un optional: un importo ricalcolato a ogni visualizzazione non può discostarsi dai suoi componenti, mentre un importo memorizzato non ha alcun controllo di coerenza. Quando la struttura è ambigua, il generatore preferisce astenersi piuttosto che produrre un documento errato, meglio nessun documento che un documento fuorviante.

Ciò che non sostituisce

Diciamolo chiaramente: non si tratta di un modulo di fatturazione. Non è previsto alcun modello di fattura con intestazione personalizzata, né una numerazione legale, né l’inserimento automatico di indicazioni obbligatorie, né l’invio al cliente, e una fattura elettronica nel senso normativo non è comunque un PDF, bensì un formato strutturato trasmesso attraverso una piattaforma accreditata, argomento trattato nella domanda specifica dedicata. Ciò che la stampa copre è invece un altro bisogno, quello quotidiano: produrre un foglio leggibile da consegnare, da appendere in officina, da portare in cantiere o da archiviare.

Per trasferire dati anziché carta, ogni elenco include inoltre un pulsante di esportazione in formato CSV, che esporta le righe visibili e ne mostra il numero direttamente sul pulsante. Se poi dovesse rendersi necessario un vero generatore di PDF, un modello con la tua grafica aziendale, una numerazione, un invio automatico, è comunque possibile aggiungerlo: il codice consegnato è un progetto Next.js e Prisma standard, di tua proprietà, e uno sviluppatore può integrarvi facilmente quanto necessario. Non è fornito «pronto all’uso»; è semplicemente realizzabile, cosa che non vale per uno strumento chiuso.

Per approfondire

Domande correlate

Genera un’applicazione che stampa in modo pulito