LibreOffice: quando la stampa in serie 'salta' dei record

Un breve post 'per non dimenticare'. Chi mi conosce sa che sono sempre stato un fan dell'open source: il fascino di un software che, con le opportune conoscenze, si può studiare e modificare a piacimento, è una risorsa d'inestimabile valore per chi vuole approfondire le proprie conoscenze in campo informatico. E non solo: quando c'è un'intera community disposta a portare avanti un progetto, è davvero molto difficile per qualsiasi azienda, anche la più forte, restare competitivi con i propri prodotti commerciali. La storia di oggi, comunque, parla del mio tribolato passaggio da Office a LibreOffice per una nobile necessità: quella di stampare le etichette con gli indirizzi da applicare sulle buste dei tesserati dell'Associazione Airons di Vigevano.

Lo scopo è banale: dal negozio on line arriva un file CSV suddiviso in campi con diverse variabili che si può trasformare facilmente in un foglio di calcolo che, a sua volta, diventa una base dati per una 'stampa unione' con il word processor. Quest'ultimo, in altre parole, ha a sua disposizione un documento di testo con una tabella in cui ciascuna cella ha le stesse dimensioni di un'etichetta e, al suo interno, i campi che compongono l'indirizzo di ciascun associato: nome, cognome, eventuale azienda, due righe di indirizzo, cap, città e provincia. La 'stampa unione' di Word, al pari della 'stampa in serie' di LibreOffice Writer, va a prendere tutti i dati dal foglio di calcolo e li piazza nelle etichette, che poi posso facilmente stampare con dei fogli adesivi già 'preparati' allo scopo.

All'inizio, facevo tutto con la solida (e solita) accoppiata Excel e Word: ci avevo messo poco a capire che in ciascuna etichetta andasse inserito, alla fine, un comando di "avanzamento di campo" che istruisse il word processor a passare al record successivo. Così, infilavo il mio foglio Excel composto da 350 righe e mi ritrovavo un bel documento di Word con 350 etichette pronte a essere stampate e incollate sulle buste. 

Arriva il momento di cambiare computer, e decido che per alleggerire i costi sia opportuno passare a LibreOffice. Calc e Writer sono piuttosto diversi da Excel e da Word: occorre rifare il documento di unione e passargli la base dati che, vista la compatibilità fra i due fogli di calcolo, all'inizio voleva essere il solito foglio excel che usavo prima. Ci ho messo davvero pochissimo ad accorgermi che non andava bene: meglio restare in casa e convertire il vecchio xlsx in un più opportuno ods. Potevo ripartire dai dati originali del negozio on line (il file csv dell'estrazione), ma erano talmente tante le modifiche effettuate che proprio non mi andava di rifarle tutte e così, per semplificare, ho copiato tutti i contenuti dell'xlsx e li ho incollati nell'ods come testo semplice, ottenendo in questo modo la medesima suddivisione in caselle.


Tutto risolto? No. Lo credevo e basta. Una volta impostato l'ods come base dati, Writer ha immediatamente prodotto il casellario che mi aspettavo: un'aggiustatina ai campi da considerare per rendere il tutto più fruibile e tac, sembrava davvero tutto a posto. Come al solito ho imbustato le riviste, applicato le etichette, spedito il tutto con PostaTarget e, poche settimane dopo, sono arrivate le legittime segnalazioni di chi non aveva ricevuto la rivista. Nulla di strano, è fisiologico che qualcuna vada persa a ogni spedizione, ma un check alle etichette mi ha raccontato un'altra storia: alcune di queste persone non l'avevano ricevuta perché non era stata mai spedita, dato che l'etichetta col loro indirizzo semplicemente non esisteva. 

Confrontando il foglio di calcolo e il casellario prodotto da Writer, mi sono accorto che mancava almeno un nominativo per ogni singola pagina. Dov'era l'errore? Beh, ve lo spoilero subito: non mettete mai, e sottolineo MAI, il comando di avanzamento di campo all'ultima casella della pagina. Quando Writer deve passare alla pagina successiva, effettua l'avanzamento per conto suo. Per cui, se avete riempito una casella come ho fatto io, e poi avete replicato il tutto incollandolo su tutte le altre, ricordatevi sempre di eliminare l'avanzamento di campo dall'ultimo elemento della pagina, o uno dei record verrà clamorosamente saltato all'inizio della pagina successiva.

Non solo: writer mi ha dato un segno inequivocabile che qualcosa fosse andato storto. Tra ogni pagina dispari piena di etichette ne piazzava sempre una pari completamente vuota. Pensavo fosse un problema di impaginazione, di "sfondamento" dei margini (magari un a-capo lasciato misteriosamente da qualche parte), ma ho capito poi che fosse anche questo un effetto negativo di quell'ultimo, disgraziato, vigliacco 'avanzamento di campo' lasciato lì perché erroneamente creduto necessario, quando invece incasinava tutto e basta.

Ora ho eliminato il comando di avanzamento di campo dall'ultima casella e tutto funziona regolarmente. Lo lascio scritto anche a voi, qualora foste incappati nel mio stesso problema.