LuaBill crea localmente fatture, preventivi, ordini e altri documenti aziendali con LuaLaTeX. I dati si modificano nei moduli: non occorre scrivere un file .bill. Questa guida segue la lingua dell’interfaccia; la lingua del documento generato si sceglie separatamente.
Indice: Primo documento · Aprire e salvare · Documento e IVA · Venditore e cliente · Articoli e totali · Note · Acconti ricevuti · Output, QR e immagini · Fatture elettroniche · Componenti · Preferenze e ripristino · Problemi · Tastiera · Licenze
Puoi lasciare aperta la guida mentre compili il documento. Ctrl+F (Cmd+F su macOS) cerca una parola; i comandi precedente/successivo scorrono i risultati e il pulsante dell’indice torna alla navigazione.
| File | Uso |
|---|---|
.luabill | Progetto modificabile in formato JSON, da conservare per continuare il lavoro. Non è la fattura da inviare al cliente. |
.bill | Vecchio formato di ingresso Lua. File → Apri… lo importa; il salvataggio crea un nuovo .luabill lasciando intatto l’originale. Importa soltanto file Lua attendibili. |
.pdf, .xml | Risultati generati. Per correggerli, modifica il progetto e genera nuovamente. |
Salva scrive il progetto corrente. Salva con nome… sceglie un altro percorso. Puoi salvare una bozza prima di completare i campi obbligatori. File → Esporta .bill… produce esplicitamente un ingresso per il vecchio gestore. Il profilo venditore è un JSON separato, salvato dalle Impostazioni.
Aprire un progetto o un esempio non crea modifiche non salvate. L’asterisco nel titolo indica dati modificati. La generazione salva prima i progetti nuovi o modificati; un .luabill già aperto e invariato non richiede un altro nome e non viene riscritto. Il salvataggio delle preferenze all’uscita non sostituisce il salvataggio del documento.
Le finestre Apri e il primo Salva ricordano l’ultima cartella dei progetti. Salva con nome propone la cartella del progetto corrente. Con l’associazione dei file puoi aprire un .luabill con doppio clic. L’installatore Windows offre questa opzione. Dalle sorgenti usa Impostazioni → Associa file .luabill a LuaBill…; ripeti la registrazione se sposti il programma.
Il codice della valuta corrente rimane visibile nella barra degli strumenti e nel titolo della finestra in ogni scheda. Si aggiorna quando cambi valuta o apri un documento.
I tipi disponibili comprendono preventivo, fattura, documento di consegna, conferma d’ordine, fattura pro forma, ordine d’acquisto, nota di credito, fattura di annullamento, richiesta di preventivo e lettera. La fase di fatturazione distingue fattura completa, di acconto, parziale e a saldo. Assegna il tuo numero: LuaBill non gestisce una numerazione univoca aziendale. Inserisci le date reali di emissione e consegna/prestazione. Termine di pagamento e validità del preventivo sono distinti. Per credito o annullamento indica il numero della fattura originale e, se disponibile, la data.
Lingua documento sceglie EN, DE, FR, IT o RU per etichette e testi standard stampati. Impostazioni → Lingua interfaccia cambia separatamente menu, guida e pulsanti. Descrizioni e testi personali non sono tradotti. Cambiare la lingua del documento modifica i suoi dati; cambiare soltanto l’interfaccia non li modifica.
Usa un codice valuta di tre lettere, come EUR, USD, JPY, RUB o CNY, indipendentemente dal paese del cliente. RUB e CNY sono disponibili anche nell’elenco delle valute. Gli importi sono espressi in tale valuta, senza conversione del cambio. I totali monetari elettronici accettano al massimo due decimali. Per valute che normalmente ne usano tre o quattro serve una configurazione esplicita a due decimali nell’ingresso sottostante, senza campo dedicato nell’interfaccia.
Il regime deve corrispondere all’operazione: Germania, beni a impresa UE, esportazione di beni fuori UE, normale servizio B2B nella UE o fuori UE. Per i beni compila il Paese effettivo consegna. La sola sede estera del cliente non dimostra un’esenzione.
L’aliquota del documento si applica alle righe senza aliquota propria. Categoria IVA vuota usa la determinazione automatica. Categorie esplicite e motivi di esenzione devono corrispondere al caso. Piccola impresa (§19 UStG) è una scorciatoia per operazioni nazionali tedesche. Scegliere un regime estero azzera l’aliquota generale ed elimina aliquote/categorie particolari degli articoli. Anche la selezione piccola impresa elimina tali eccezioni: ricontrolla le righe dopo il cambio.
LuaBill aggiunge spiegazioni e riferimenti normativi dal regime scelto e dai gruppi IVA calcolati. Riferimenti di legge cliccabili controlla i collegamenti, lasciando spiegazioni e citazioni. Casi speciali, B2C/OSS e prove per l’esenzione richiedono una valutazione separata; la scelta nel software non dimostra il diritto al regime.
Il Numero cliente facoltativo è il tuo identificativo per questo cliente. Inseriscilo come testo, per esempio 000123, per conservare gli zeri iniziali, oppure lascia vuoto il campo. LuaBill lo stampa nel PDF e lo esporta come identificativo acquirente nell’XML elettronico (customer.buyer_id). È distinto dal numero di fattura, dal riferimento d’ordine e dal riferimento acquirente/Leitweg-ID.
Compila società/nome completo, via e numero, eventuale indirizzo aggiuntivo, CAP, città e codice paese ISO di due lettere. La versione attuale supporta soltanto venditori con sede in Germania: il loro codice paese deve essere DE. I clienti possono trovarsi in Germania, in un altro paese UE o fuori dall’UE, per esempio DE, FR o US. Usa testo normale. Gli indirizzi strutturati servono sia al PDF sia all’XML.
Per ogni esportazione elettronica (XML, XRechnung e ZUGFeRD), l’implementazione attuale richiede un IBAN valido del venditore. Questo controllo LuaBill vale anche per documenti in una valuta diversa da EUR.
Per il venditore indica contatto/firmatario, email, telefono, sito, numero fiscale e/o identificativo IVA, banca, IBAN e BIC. Il numero fiscale tedesco (Steuernummer) è distinto dall’identificativo IVA (USt-IdNr.) e dal numero del registro imprese. Secondo il caso compila forma giuridica, sede, tribunale del registro, numero di registrazione, tutti gli amministratori (uno per riga) e presidente del consiglio di sorveglianza. Il firmatario non sostituisce l’elenco completo degli amministratori.
Per il cliente sono disponibili riferimento d’ordine, contatto e destinatario/indirizzo di consegna diverso. Il Riferimento acquirente / Leitweg-ID è in Documento. Usa il valore comunicato dal destinatario: un numero d’ordine arbitrario non è automaticamente una Leitweg-ID valida.
I contatti del cliente hanno campi distinti per Nome del contatto, Ruolo, Email, Telefono, Cellulare, Fax e Sito web. Inserisci testo normale, senza comandi LaTeX o separatori di riga \\; lascia vuoti i campi inutilizzati. Il PDF stampa ogni valore su una riga separata, con icone per email, telefono, cellulare, fax e sito. I collegamenti email, sito e telefono sono cliccabili nel PDF. Nome del contatto, telefono ed email possono essere inclusi anche nell’XML elettronico; le altre righe sono destinate al documento visivo.
Se LuaBill riconosce un vecchio campo di contatto combinato, ne mostra i valori nei campi separati senza riscrivere il documento aperto né segnarlo come modificato. Il LaTeX non riconosciuto resta in Testo di contatto aggiuntivo (precedente), visibile solo se necessario, fino alla modifica o cancellazione esplicita. Modificando i contatti e salvando si usano i campi strutturati. Importare un .bill e salvare un nuovo .luabill lascia intatto il file originale.
L’Indirizzo elettronico è il punto di ricezione/emissione della fattura e richiede lo Schema indirizzo. Per email lo schema è EM. XRechnung richiede gli indirizzi elettronici di entrambe le parti e il contatto venditore. L’email del contatto da sola non sostituisce questi campi.
Impostazioni → Salva profilo venditore / Carica profilo venditore permette di riusare i dati. Caricare un profilo sostituisce il venditore corrente e segna il documento come modificato. Controlla poi coordinate bancarie e percorsi delle immagini.
Aggiungi riga apre descrizione, quantità, prezzo unitario, sconto percentuale, eventuale aliquota IVA, codice unità, categoria IVA e articolo/SKU. Doppio clic o selezione seguita da Invio modifica una riga. Rimuovi selezionati o Canc elimina le righe selezionate. Conferma o annulla esplicitamente la finestra di modifica.
Usa punto o virgola decimale, senza separatori delle migliaia. Quantità e prezzo unitario supportano fino a sei decimali; aliquote e sconti fino a quattro. Aliquota di riga vuota significa ereditare quella generale. Per l’elettronico scegli un codice unità appropriato, per esempio C62 per un pezzo. Lo sconto è già sottratto dalla riga e non va detratto di nuovo.
Verifica totali controlla i dati e mostra imponibile, IVA e importo da pagare; non è la validazione elettronica esterna. PDF e XML usano il medesimo motore di calcolo. Controlla in particolare aliquote miste, sconti e pagamenti ricevuti.
La scheda delle note contiene tabella etichetta/testo, introduzione, nota fattura aggiuntiva e condizioni di pagamento personalizzate. Scrivi testo semplice: non serve \textbf{...}. Chiavi standard come project sono tradotte nella lingua del documento. Etichette e titoli brevi prima dei due punti, ad esempio Progetto:, vengono stampati in grassetto.
Modificare una nota multilingue esistente cambia la variante nella lingua corrente del documento e conserva le altre varianti. Il testo personale non è tradotto automaticamente. Le note comuni in testo semplice compaiono in PDF e XML. Note LaTeX importate possono restare soltanto nel PDF: le informazioni essenziali per fattura e pagamento vanno nei campi condivisi di testo semplice.
Inserisci solo somme effettivamente ricevute, una riga per pagamento e gruppo IVA: numero/data della fattura originale, data di ricezione, imponibile, IVA, aliquota/categoria e possibile motivo di esenzione. Gli importi usano la valuta della fattura corrente. Ripeti il riferimento se il pagamento comprende più gruppi IVA.
LuaBill somma gli importi lordi ricevuti e riduce il saldo da pagare. Mantieni tutti i beni/servizi nelle righe: non sottrarre gli acconti anche come articoli negativi. IVA, date e gruppi fiscali devono riconciliarsi. Un totale anticipato indicato separatamente deve uguagliare il dettaglio. Per una fattura a saldo senza acconti ricevuti indica zero. LuaBill non consulta automaticamente fatture precedenti o movimenti bancari.
Inizialmente i progetti sono proposti in Documenti/LuaBill/Projects e i risultati in Documenti/LuaBill/Output, usando la cartella Documenti del sistema. Puoi scegliere la tua organizzazione. Cartella output e opzione di salvataggio accanto al progetto appartengono all’utente su questo computer e valgono per tutti i progetti. Non sono salvate in .luabill. I vecchi percorsi del progetto sono ignorati; i file esistenti non vengono spostati automaticamente.
I risultati riprendono il nome del progetto: Fattura-001.pdf, Fattura-001.xml, Fattura-001.validation.xml. Una nuova generazione può sostituire i precedenti risultati. Archivia le versioni emesse prima di generare revisioni che devono restare distinte.
Dopo la riuscita il PDF si apre nel visualizzatore predefinito. Il pannello dei risultati mostra percorsi e pulsanti Apri PDF, Apri XML e Apri cartella output. Impostazioni → Apri PDF dopo creazione controlla l’apertura automatica. Se cambi dati o impostazioni di output, il risultato precedente è superato: genera di nuovo. I dettagli sono nel Registro generazione. Un errore non pubblica una nuova fattura validata.
Il Codice QR pagamento (EUR) include dati EPC/SEPA e importo ancora dovuto, con didascalia di pagamento. Funziona per fatture EUR con IBAN/dati validi e saldo positivo. Non è un metodo QR universale per USD o altre valute e non prova il pagamento. Controlla le coordinate e provalo con un’app bancaria compatibile.
Scegli immagini di firma e timbro e altezze quali 12mm e 35mm. Il blocco finale presenta data/nome sottolineati, firma al centro e timbro sovrapposto nell’area della firma. Verifica il PDF con le tue immagini. Sono segni grafici, non firme crittografiche. Il progetto conserva i percorsi e non incorpora i file: spostandolo, copia le immagini e seleziona i nuovi percorsi.
| Formato | Risultato e trasmissione |
|---|---|
| Normale PDF visivo, senza fattura elettronica strutturata incorporata. Invialo quando adatto all’operazione. | |
| XML · EN 16931 | Vista PDF, XML CII strutturato e rapporto. L’XML è la fattura strutturata: invialo tramite il canale concordato, eventualmente insieme al PDF. |
| XRechnung | Vista PDF, XML CII XRechnung 3 e rapporto. Trasmetti l’XML al portale/indirizzo indicato dal destinatario con il suo riferimento/Leitweg-ID. |
| ZUGFeRD · PDF/A-3 + XML | PDF ibrido con XML incorporato, XML separato identico e rapporto. Solitamente si invia il PDF ibrido; il destinatario stabilisce se desidera anche l’XML separato. |
L’export elettronico riguarda fatture, note di credito e fatture di annullamento. Preventivi e ordini restano documenti PDF: scegliere un formato non trasforma un preventivo in fattura.
Servono numero, date reali di emissione e consegna/prestazione, parti e indirizzi/paesi, righe descrittive, valuta, gruppi IVA corretti e identificazione fiscale del venditore. A seconda del regime sono necessari anche identificativi IVA, ragioni di esenzione e dati di pagamento. XRechnung controlla inoltre riferimento acquirente, entrambi gli indirizzi elettronici e contatto venditore. Credito/annullamento richiedono il riferimento originale. Segui i messaggi specifici e non usare identificativi fittizi dell’esempio.
Mustang valida l’XML. Per ZUGFeRD verifica anche PDF/A e contenitore, poi confronta l’XML estratto con il file separato. Controlla la riuscita e conserva .validation.xml. Un lettore PDF con supporto allegati può mostrare l’XML; alcuni lettori non lo visualizzano. Nome e aspetto non provano il formato ZUGFeRD. La validazione non verifica registrazione fiscale, unicità del numero, consegna reale o diritto all’esenzione.
Apri Aiuto → Componenti e installazione ogni volta che serve. La finestra mostra percorsi e versione Java, spiega i componenti assenti e apre i siti ufficiali solo facendo clic sui collegamenti. Dopo l’installazione premi Verifica di nuovo. Se il componente resta assente, riavvia LuaBill.
L’installatore Windows include Python, che esegue LuaBill, PySide6/Qt per finestre e menu, e Mustang. Non serve installare Python/PySide6 separatamente. Dalle sorgenti usa Python/PySide6 e lo script fornito: Setup_LuaBill.cmd su Windows, sh Setup_LuaBill.sh su macOS/Linux, poi lo script Start. Setup può scaricare dipendenze. Elaborazione e validazione sono locali e non inviano dati della fattura a servizi online.
Un’installazione TeX ridotta richiede LuaLaTeX, fontspec, fontawesome, babel con EN/DE/FR/IT/RU, csquotes, tikz, fancyhdr, enumitem, hyperref, soul, lastpage, textpos, luacode, ltablex, draftwatermark ed eso-pic. Installa Noto Sans o DejaVu Sans per Unicode. Un componente trovato può ancora mancare di pacchetti o font; consulta il registro.
All’uscita normale LuaBill ricorda lingua interfaccia, valori dei nuovi documenti inclusa la lingua, cartella/modalità output, apertura automatica, cartelle dei dialoghi, geometria della finestra, scheda e larghezze delle tabelle. Annullare l’uscita rimanda la registrazione. Il progetto aperto fornisce i propri dati. Numero, date, cliente, articoli e note vanno salvati nel progetto; il profilo venditore ha comandi distinti.
Il deposito è QSettings("LuaBill", "LuaBill"), chiave preferences/json, per l’utente del sistema e separato da progetto/programmi. Prima del ripristino fanne una copia e chiudi tutte le finestre LuaBill, per evitare che riscrivano i vecchi valori.
HKEY_CURRENT_USER\Software\LuaBill\LuaBill. Lascia le associazioni di file.~/.config/LuaBill/LuaBill.conf, oppure il file corrispondente sotto $XDG_CONFIG_HOME quando impostato.Dalle sorgenti esegui questo codice con il Python che contiene PySide6, dopo aver chiuso LuaBill, per visualizzare il percorso esatto:
from PySide6.QtCore import QSettings
settings = QSettings("LuaBill", "LuaBill")
print(settings.fileName())
Fai prima una copia del deposito indicato. Solo dopo il backup, con tutte le finestre LuaBill chiuse, esegui nella stessa sessione Python:
settings.clear() settings.sync()
Riavvia LuaBill per usare i valori iniziali. Progetti, profili e risultati non vengono eliminati. La cartella torna a Documenti/LuaBill/Output: controllala prima di generare.
| Problema | Azione |
|---|---|
| Strumento assente / Java vecchio | Usa Componenti e installazione, installa e ricontrolla. Con percorsi personalizzati verifica LUABILL_TEXLUA, LUABILL_LUALATEX, LUABILL_GS, LUABILL_JAVA e JAVA_HOME. |
| Errore LuaLaTeX / caratteri assenti | Leggi il registro, aggiorna TeX e installa pacchetto/font indicato. MiKTeX può richiedere Internet per i pacchetti al primo uso. |
| Immagine assente | Seleziona di nuovo firma/timbro o svuota il percorso in File e output. Il progetto non contiene i file immagine. |
| Validazione fallita | Leggi errore e rapporto: correggi campi obbligatori, date, indirizzi elettronici, identificativi/gruppi IVA e acconti. Non inviare un risultato fallito come fattura validata. |
| PDF non aperto | Usa i pulsanti risultato o la cartella. Verifica impostazione automatica e lettore PDF predefinito. Un errore di apertura è distinto dalla generazione. |
| Cartella non scrivibile | Scegli una cartella utente consentita, verifica i permessi e chiudi il programma che blocca il PDF di destinazione. |
| Richiesta di salvataggio | Salva le modifiche o scartale consapevolmente. Un .bill importato necessita del primo nome .luabill; un progetto .luabill aperto e invariato non richiede un nuovo salvataggio. |
| Azione | Windows / Linux | macOS |
|---|---|---|
| Nuovo / Apri / Salva | Ctrl+N / Ctrl+O / Ctrl+S | Cmd+N / Cmd+O / Cmd+S |
| Salva con nome | Ctrl+Maiusc+S | Cmd+Maiusc+S |
| Totali / Genera | F7 / F9 | F7 / F9 |
| Guida utente | F1 | Tasto Aiuto / scorciatoia di sistema |
| Apri PDF generato | Ctrl+Maiusc+P | Cmd+Maiusc+P |
| Modifica / elimina riga | Invio / Canc | Return / Delete |
I tasti funzione possono richiedere Fn. I menu mostrano le scorciatoie attive sul sistema.
LuaBill — Open Source Business Document Generator
Copyright 2026 Vsevolod Shashkov & Mikhail Shashkov.
Il codice e la documentazione propri di LuaBill sono sotto Apache License, Version 2.0.
qrencode.lua proviene da speedata/luaqrcode, scritto da Patrick Gundlach e collaboratori, copyright 2012–2020. Conserva la propria licenza BSD-3-Clause e attribuzione; non è opera degli autori di LuaBill. Gli altri componenti mantengono le loro licenze. I testi completi sono in LICENSE, NOTICE e negli avvisi di terze parti forniti.
Aiuto → Componenti di terze parti e fonti apre l’elenco di software, caratteri, profili e grafica. La panoramica offline collega licenze originali e provenienza dettagliata.