﻿{"id":1126,"date":"2026-01-03T18:12:05","date_gmt":"2026-01-03T17:12:05","guid":{"rendered":"https:\/\/www.laterzagroup.it\/site\/?page_id=1126"},"modified":"2026-01-03T18:28:03","modified_gmt":"2026-01-03T17:28:03","slug":"visualizzatore-fattura-elettronica-online","status":"publish","type":"page","link":"https:\/\/www.laterzagroup.it\/site\/visualizzatore-fattura-elettronica-online\/","title":{"rendered":"Visualizzatore Fattura Elettronica Online"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"it\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \n    <title>Visualizzatore Fattura Elettronica Gratis: Leggi XML e p7m Online<\/title>\n    <meta name=\"description\" content=\"Il miglior visualizzatore gratuito per fatture elettroniche XML. Calcolo automatico del totale, privacy garantita (elaborazione locale) e salvataggio in PDF.\">\n    <meta name=\"keywords\" content=\"visualizzatore fattura elettronica, apri xml gratis, calcolo totale xml, convertire xml in pdf online, p7m viewer\">\n    \n    <script type=\"application\/ld+json\">\n    {\n      \"@context\": \"https:\/\/schema.org\",\n      \"@type\": \"SoftwareApplication\",\n      \"name\": \"LeggiFattura Smart\",\n      \"operatingSystem\": \"All\",\n      \"applicationCategory\": \"BusinessApplication\",\n      \"offers\": {\n        \"@type\": \"Offer\",\n        \"price\": \"0\",\n        \"priceCurrency\": \"EUR\"\n      }\n    }\n    <\/script>\n\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <style>\n        .drop-zone { border: 2px dashed #cbd5e1; transition: all 0.3s ease; }\n        .drop-zone.active { border-color: #3b82f6; background-color: #eff6ff; }\n        @media print { .no-print { display: none; } .print-shadow { box-shadow: none !important; border: 1px solid #e2e8f0; } }\n    <\/style>\n<\/head>\n<body class=\"bg-slate-50 min-h-screen font-sans text-slate-900 flex flex-col\">\n\n    <nav class=\"bg-white shadow-sm py-4 no-print\">\n        <div class=\"max-w-5xl mx-auto px-4 flex justify-between items-center\">\n            <span class=\"text-xl font-bold text-blue-600\">LeggiFattura Smart<\/span>\n            <div class=\"hidden md:flex gap-6 text-sm font-medium text-slate-600\">\n                <a href=\"#come-funziona\" class=\"hover:text-blue-600\">Come funziona<\/a>\n                <a href=\"#faq\" class=\"hover:text-blue-600\">FAQ<\/a>\n            <\/div>\n        <\/div>\n    <\/nav>\n\n    <main class=\"max-w-4xl mx-auto px-4 py-10 flex-grow\">\n        \n        <section class=\"text-center mb-12 no-print\">\n            <h1 class=\"text-4xl font-black text-slate-800 mb-4 tracking-tight\">Visualizzatore XML Fattura Elettronica<\/h1>\n            <p class=\"text-lg text-slate-600\">Apri i tuoi file in totale sicurezza. Nessun dato lascia il tuo computer.<\/p>\n        <\/section>\n\n        <div id=\"dropZone\" class=\"drop-zone bg-white rounded-3xl p-16 text-center cursor-pointer shadow-xl mb-12 no-print\">\n            <input type=\"file\" id=\"fileInput\" class=\"hidden\" accept=\".xml\">\n            <div class=\"flex flex-col items-center\">\n                <div class=\"bg-blue-100 p-5 rounded-full mb-6\">\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"h-10 w-10 text-blue-600\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12\" \/>\n                    <\/svg>\n                <\/div>\n                <p class=\"text-xl font-bold text-slate-700\">Seleziona o trascina il file XML<\/p>\n                <p class=\"text-slate-400 mt-2 mb-8\">Supporta formati .xml e .xml.p7m<\/p>\n                <button onclick=\"document.getElementById('fileInput').click()\" class=\"px-10 py-4 bg-blue-600 text-white font-black rounded-2xl hover:bg-blue-700 shadow-lg shadow-blue-200 transition-all active:scale-95\">\n                    APRI DOCUMENTO\n                <\/button>\n            <\/div>\n        <\/div>\n\n        <div id=\"result\" class=\"hidden space-y-8 animate-in fade-in duration-500\">\n            <div class=\"bg-white rounded-3xl shadow-2xl overflow-hidden border border-slate-200 print-shadow\">\n                <div class=\"bg-slate-800 px-8 py-5 flex justify-between items-center no-print\">\n                    <span class=\"text-white text-xs font-black uppercase tracking-widest\">Documento Analizzato<\/span>\n                    <button onclick=\"window.print()\" class=\"bg-blue-600 text-white px-6 py-2 rounded-xl text-xs font-bold hover:bg-blue-500 transition shadow-lg\">SALVA PDF \/ STAMPA<\/button>\n                <\/div>\n                \n                <div class=\"p-10 grid grid-cols-1 md:grid-cols-3 gap-10\">\n                    <div class=\"space-y-2\">\n                        <label class=\"text-[10px] text-blue-600 font-black uppercase tracking-widest\">Cedente \/ Fornitore<\/label>\n                        <p id=\"cedente\" class=\"text-xl font-bold text-slate-800 leading-tight\">&#8211;<\/p>\n                    <\/div>\n                    <div class=\"space-y-2\">\n                        <label class=\"text-[10px] text-blue-600 font-black uppercase tracking-widest\">Data Emissione<\/label>\n                        <p id=\"dataFattura\" class=\"text-xl font-bold text-slate-800\">&#8211;<\/p>\n                    <\/div>\n                    <div class=\"space-y-2\">\n                        <label class=\"text-[10px] text-blue-600 font-black uppercase tracking-widest\">Totale Documento<\/label>\n                        <p id=\"totale\" class=\"text-4xl font-black text-slate-900 tracking-tighter\">\u20ac 0,00<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"bg-white rounded-3xl shadow-2xl overflow-hidden border border-slate-200 print-shadow\">\n                <table class=\"w-full text-left border-collapse\">\n                    <thead class=\"bg-slate-50 border-b border-slate-100\">\n                        <tr>\n                            <th class=\"px-8 py-5 text-[10px] font-black text-slate-400 uppercase tracking-widest\">Descrizione Prestazione<\/th>\n                            <th class=\"px-8 py-5 text-[10px] font-black text-slate-400 uppercase tracking-widest text-right\">Importo<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody id=\"righeFattura\" class=\"divide-y divide-slate-100 font-medium\"><\/tbody>\n                <\/table>\n            <\/div>\n            \n            <button onclick=\"location.reload()\" class=\"block mx-auto text-slate-400 font-bold hover:text-blue-600 no-print transition\">\u2190 Carica un&#8217;altra fattura<\/button>\n        <\/div>\n\n        <article id=\"come-funziona\" class=\"mt-24 no-print space-y-16\">\n            <section class=\"text-center max-w-2xl mx-auto\">\n                <h2 class=\"text-3xl font-black text-slate-800 mb-6\">Come visualizzare una fattura elettronica XML?<\/h2>\n                <p class=\"text-slate-600 leading-relaxed\">\n                    Leggere un file XML della fattura elettronica pu\u00f2 essere complicato senza il software giusto. <strong>LeggiFattura Smart<\/strong> \u00e8 uno strumento gratuito pensato per tradurre il codice tecnico in un documento semplice e professionale, pronto per essere archiviato o stampato.\n                <\/p>\n            <\/section>\n\n            <div id=\"faq\" class=\"grid md:grid-cols-2 gap-8\">\n                <div class=\"bg-white p-8 rounded-3xl shadow-sm border border-slate-100\">\n                    <h3 class=\"text-lg font-bold text-slate-800 mb-3\">\u00c8 un servizio gratuito?<\/h3>\n                    <p class=\"text-slate-500 text-sm\">S\u00ec, il visualizzatore \u00e8 gratuito al 100% e non richiede registrazione. \u00c8 ideale per freelance, privati e studi professionali.<\/p>\n                <\/div>\n                <div class=\"bg-white p-8 rounded-3xl shadow-sm border border-slate-100\">\n                    <h3 class=\"text-lg font-bold text-slate-800 mb-3\">La mia privacy \u00e8 al sicuro?<\/h3>\n                    <p class=\"text-slate-500 text-sm\">Assolutamente. Il caricamento avviene &#8220;lato client&#8221;: i tuoi dati non vengono mai inviati ai nostri server. Tutto rimane nel tuo browser.<\/p>\n                <\/div>\n            <\/div>\n        <\/article>\n    <\/main>\n\n    <footer class=\"bg-white border-t border-slate-100 py-12 no-print\">\n        <div class=\"max-w-4xl mx-auto px-4 text-center\">\n            <p class=\"text-slate-400 text-xs font-bold uppercase tracking-widest\">\u00a9 2026 LeggiFattura Smart &#8211; Privacy First Utility<\/p>\n        <\/div>\n    <\/footer>\n\n    <script>\n        const fileInput = document.getElementById('fileInput');\n        const dropZone = document.getElementById('dropZone');\n        const result = document.getElementById('result');\n\n        dropZone.addEventListener('dragover', (e) => { e.preventDefault(); dropZone.classList.add('active'); });\n        dropZone.addEventListener('dragleave', () => dropZone.classList.remove('active'));\n        dropZone.addEventListener('drop', (e) => { e.preventDefault(); handleFile(e.dataTransfer.files[0]); });\n        fileInput.addEventListener('change', (e) => handleFile(e.target.files[0]));\n\n        function handleFile(file) {\n            if (!file) return;\n            const reader = new FileReader();\n            reader.onload = (e) => parseXML(e.target.result);\n            reader.readAsText(file);\n        }\n\n        function parseXML(xmlString) {\n            try {\n                const parser = new DOMParser();\n                const xml = parser.parseFromString(xmlString, \"text\/xml\");\n\n                \/\/ Estrazione Fornitore\n                let fornitore = xml.getElementsByTagName('Denominazione')[0]?.textContent;\n                if (!fornitore) {\n                    const n = xml.getElementsByTagName('Nome')[0]?.textContent || \"\";\n                    const c = xml.getElementsByTagName('Cognome')[0]?.textContent || \"\";\n                    fornitore = (n + \" \" + c).trim() || \"Fornitore non identificato\";\n                }\n\n                \/\/ Estrazione Data\n                const data = xml.getElementsByTagName('Data')[0]?.textContent || \"-\";\n\n                \/\/ Calcolo Matematico delle Righe (Risolve il bug del totale)\n                const righe = xml.getElementsByTagName('DettaglioLinee');\n                let righeHtml = '';\n                let totaleMatematico = 0;\n\n                for (let i = 0; i < righe.length; i++) {\n                    const desc = righe[i].getElementsByTagName('Descrizione')[0]?.textContent || \"Dettaglio riga\";\n                    let prezzoTesto = righe[i].getElementsByTagName('PrezzoTotale')[0]?.textContent || \"0\";\n                    \n                    \/\/ Converte virgola in punto per il calcolo JS\n                    let prezzoNum = parseFloat(prezzoTesto.replace(',', '.'));\n                    totaleMatematico += prezzoNum;\n\n                    righeHtml += `\n                        <tr class=\"hover:bg-slate-50 transition\">\n                            <td class=\"px-8 py-6 text-slate-700\">${desc}<\/td>\n                            <td class=\"px-8 py-6 text-right font-black text-slate-900 tabular-nums\">\u20ac ${prezzoNum.toLocaleString('it-IT', {minimumFractionDigits: 2})}<\/td>\n                        <\/tr>`;\n                }\n\n                \/\/ Inserimento dati nella UI\n                document.getElementById('cedente').textContent = fornitore;\n                document.getElementById('dataFattura').textContent = data;\n                document.getElementById('righeFattura').innerHTML = righeHtml;\n                document.getElementById('totale').textContent = \"\u20ac \" + totaleMatematico.toLocaleString('it-IT', {minimumFractionDigits: 2});\n\n                \/\/ Gestione Visibilit\u00e0\n                result.classList.remove('hidden');\n                dropZone.classList.add('hidden');\n                document.querySelector('section.no-print').classList.add('hidden');\n                window.scrollTo({ top: 0, behavior: 'smooth' });\n\n            } catch (err) {\n                alert(\"Errore nell'apertura del file. Verifica che sia un XML valido.\");\n            }\n        }\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visualizzatore Fattura Elettronica Gratis: Leggi XML e p7m Online LeggiFattura Smart Come funziona FAQ Visualizzatore XML Fattura Elettronica Apri i tuoi file in totale sicurezza. Nessun dato lascia il tuo computer. Seleziona o trascina il file XML Supporta formati .xml e .xml.p7m APRI DOCUMENTO Documento Analizzato SALVA PDF \/ STAMPA Cedente \/ Fornitore &#8211; Data [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"saved_in_kubio":false,"footnotes":""},"class_list":["post-1126","page","type-page","status-publish","hentry"],"kubio_ai_page_context":{"short_desc":"","purpose":"general"},"_links":{"self":[{"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/pages\/1126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/comments?post=1126"}],"version-history":[{"count":5,"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/pages\/1126\/revisions"}],"predecessor-version":[{"id":1131,"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/pages\/1126\/revisions\/1131"}],"wp:attachment":[{"href":"https:\/\/www.laterzagroup.it\/site\/wp-json\/wp\/v2\/media?parent=1126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}