Online Multi-Currency Price Converter

Multi-Currency Price Converter

Instantly convert a price into multiple currencies at once.

Conversion Setup

$

Target Currencies

Conversion Results

Last updated:

Select one or more target currencies to see the conversion results.

${currencyInfo[targetCode]?.name || ''}

${formatCurrency(convertedAmount, targetCode)}

`; }).join(''); }; const handleTargetChange = (e) => { const currency = e.target.dataset.currency; if (e.target.checked) { if (!selectedTargets.includes(currency)) selectedTargets.push(currency); } else { selectedTargets = selectedTargets.filter(c => c !== currency); } convertAndDisplay(); }; const handleBaseCurrencyChange = () => { const symbol = currencyInfo[baseCurrencySelect.value]?.symbol || '$'; baseCurrencySymbolEl.textContent = symbol; convertAndDisplay(); }; const handleDownloadPdf = () => { const pdfTimestamp = document.getElementById('pdf-timestamp'); const pdfRatesTimestamp = document.getElementById('pdf-rates-timestamp'); const pdfBaseAmount = document.getElementById('pdf-base-amount'); const pdfResultsTableBody = document.getElementById('pdf-results-table-body'); const amount = parseFloat(baseAmountInput.value) || 0; const baseCurrency = baseCurrencySelect.value; const amountInUSD = amount / exchangeRates.rates[baseCurrency]; pdfTimestamp.textContent = new Date().toLocaleString('en-US'); pdfRatesTimestamp.textContent = new Date(exchangeRates.timestamp).toLocaleString('en-US'); pdfBaseAmount.textContent = `${formatCurrency(amount, baseCurrency)} (${baseCurrency})`; pdfResultsTableBody.innerHTML = selectedTargets.map(targetCode => { const convertedAmount = amountInUSD * exchangeRates.rates[targetCode]; return ` ${currencyInfo[targetCode]?.name} (${targetCode}) ${formatCurrency(convertedAmount, targetCode)} ${exchangeRates.rates[targetCode]} `; }).join(''); pdfContent.classList.remove('hidden'); html2canvas(pdfContent, { scale: 2 }).then(canvas => { pdfContent.classList.add('hidden'); const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'portrait', unit: 'pt', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const margin = 40; const imgWidth = pdfWidth - (margin * 2); const imgHeight = (canvas.height * imgWidth) / canvas.width; pdf.addImage(imgData, 'PNG', margin, margin, imgWidth, imgHeight); pdf.save('multi-currency-report.pdf'); }).catch(err => { console.error("Error generating PDF:", err); pdfContent.classList.add('hidden'); }); }; // --- Initial Setup & Event Listeners --- ratesTimestampEl.textContent = new Date(exchangeRates.timestamp).toLocaleString('en-US'); populateSelectors(); baseAmountInput.addEventListener('input', convertAndDisplay); baseCurrencySelect.addEventListener('change', handleBaseCurrencyChange); pdfBtn.addEventListener('click', handleDownloadPdf); // Initial run convertAndDisplay(); });
Scroll to Top