Stampare un PDF di preventivo: denominazione del file, orientamento e impaginazione
Stampa la tabella del preventivo in un PDF nell'app, con il nome file, l'orientamento, la disposizione delle pagine e la pagina di riepilogo che ti aspetti.
L'azione Print Quotation genera il PDF interamente nell'app (nessun processo sul server) e lo scarica come design_quotation_DD-MM-YYYY.pdf, con la data corrispondente al giorno di esportazione: due esportazioni nello stesso giorno producono quindi lo stesso nome file e il browser aggiungerà un suffisso ai duplicati. L'ID del preventivo nella tabella stampata è un segnaposto sullo schermo e viene compilato solo al momento del download/stampa, quindi il PDF riporta l'ID generato. L'orientamento della pagina segue la preferenza di stampa del preventivo (verticale dà 210x297, orizzontale 297x210) e viene inclusa una pagina di riepilogo quando la preferenza della pagina di riepilogo è attiva. Due esportazioni affini vengono spesso confuse con questa: l'esportazione 'detailed snapshot' scarica un CSV denominato design_quotation_detailed.csv (non un PDF), mentre la variante del preventivo a prezzo di costo ristampa la tabella usando i prezzi di costo: durante la stampa passa temporaneamente il preventivo in modalità prezzo di costo e disattiva l'imposta separata, poi ripristina l'impostazione. I download dei preventivi di prezzo sono esenti dal blocco di approvazione/lock, ma passano comunque i controlli del canale di vendita attivo e delle violazioni/problemi, quindi 'I clicked print and nothing happened' di solito significa che uno di questi due controlli lo ha bloccato con un avviso. Qualsiasi pannello laterale aperto viene nascosto automaticamente prima della stampa; è previsto, non è un errore.
'Print PDF' sulla barra degli strumenti del preventivo converte la tabella corrente in 'design_quotation_<date>.pdf'. L'orientamento deriva dalla preferenza 'Print PDF Orientation': orizzontale (297x210 mm, predefinito) o verticale (210x297). Le pagine vengono riempite in base all'altezza accumulata delle righe; l'intestazione con il logo e il sotto-intestazione del progetto compaiono solo sulla prima pagina, mentre i nomi delle colonne si ripetono sulle pagine che contengono ancora righe di articoli. Le righe di piè di pagina di ogni sezione (prezzo/sconto/imposta/totale) sono ancorate all'ultima riga di articolo della sezione: il motore sposta l'intero gruppo alla pagina successiva anziché lasciare un totale orfano e, se il gruppo ancorato è più alto di una pagina, comprime proporzionalmente quelle righe per adattarle, il che può far apparire il testo del piè di pagina schiacciato in sezioni molto lunghe. Una singola riga più alta di una pagina viene tagliata all'altezza della pagina. Se la preferenza 'Summary Page' è attiva, dopo la tabella viene aggiunto un riepilogo; può occupare più di una pagina e la numerazione delle pagine della tabella prosegue dopo di esso. I numeri di pagina vengono stampati in basso a destra. Il PDF viene prodotto lato client e scaricato direttamente (nessuna coda), quindi i reclami 'PDF stuck' sono di solito dovuti al blocco dei download del browser, mentre XLSX passa attraverso una fase di generazione. La stessa resa viene eseguita sui nostri server per le esportazioni automatiche, quindi i PDF del backend corrispondono esattamente alla stampa nell'app.