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');
});