document.getElementById('priceCalculator').addEventListener('submit', function(e) { e.preventDefault(); let material = document.getElementById('material').value; let weight = parseFloat(document.getElementById('weight').value); let costPerKg = parseFloat(document.getElementById('costPerKg').value); let printTime = parseFloat(document.getElementById('printTime').value); let length = parseFloat(document.getElementById('length').value); // Calcolare il costo del materiale let costPerGram = costPerKg / 1000; let materialCost = weight * costPerGram; document.getElementById('result').innerHTML = `

Materiale: ${material}

Peso del filamento usato: ${weight.toFixed(2)} g

Lunghezza del filamento usato: ${length.toFixed(2)} m

Tempo di stampa: ${printTime.toFixed(2)} ore

Costo del filamento: CHF ${materialCost.toFixed(2)}

`; }); document.getElementById('downloadPdf').addEventListener('click', function() { let { jsPDF } = window.jspdf; let doc = new jsPDF(); // Dati dal form let material = document.getElementById('material').value; let weight = parseFloat(document.getElementById('weight').value); let costPerKg = parseFloat(document.getElementById('costPerKg').value); let printTime = parseFloat(document.getElementById('printTime').value); let length = parseFloat(document.getElementById('length').value); let materialCost = weight * (costPerKg / 1000); // Impostazioni font e titolo doc.setFontSize(18); doc.setTextColor(0, 0, 0); // Nero per il titolo doc.text(20, 20, 'Calcolatore Prezzi Stampa 3D Denis3dprint'); // Linea blu sotto il titolo doc.setDrawColor(0, 123, 255); // Blu doc.setLineWidth(3); doc.line(20, 25, 190, 25); // linea sotto il titolo // Dettagli con colori diversi doc.setFontSize(12); // Materiale e dettagli in blu doc.setTextColor(0, 123, 255); // Blu doc.text(20, 35, 'Materiale: ' + material); doc.text(20, 45, 'Peso del filamento usato: ' + weight.toFixed(2) + ' g'); // Lunghezza e tempo di stampa in rosso doc.setTextColor(255, 87, 51); // Rosso doc.text(20, 55, 'Lunghezza del filamento usato: ' + length.toFixed(2) + ' m'); doc.text(20, 65, 'Tempo di stampa: ' + printTime.toFixed(2) + ' ore'); // Costo in giallo doc.setTextColor(255, 223, 0); // Giallo doc.text(20, 75, 'Costo del filamento: CHF ' + materialCost.toFixed(2)); // Testo finale in nero doc.setTextColor(0, 0, 0); // Nero doc.text(20, 85, 'Tutti i dati sono stati verificati con cura.'); doc.text(20, 95, 'Firma: _____________________'); // Salvataggio del PDF doc.save('ricevuta.pdf'); });