PPT to PDF Converter - PowerPoint to PDF Online Free

Convert your PowerPoint presentations to editable Word documents with slide selection

Upload Your PowerPoint File

Drag & drop your .pptx or .ppt file here

or click to browse files

Presentation.pptx

0 KB

Conversion Options

Initializing conversion...

Converting your PowerPoint to Word...

Your PowerPoint has been successfully converted to Word!
An error occurred during conversion

Slide Selection

Choose which slides to include in your Word document

Editable Output

Convert to fully editable Word documents

Fast Conversion

Convert PowerPoint to Word in seconds

Secure & Private

Your files stay in your browser

${currentFile.name.replace(/\.[^/.]+$/, '')}

Converted from PowerPoint presentation on ${new Date().toLocaleDateString()}


`; for (let i = 0; i < selectedSlides.length; i++) { const num = selectedSlides[i]; const slide = presentationData[num - 1]; updateProgress(20 + (i / selectedSlides.length) * 70, `Processing slide ${num}...`); documentContent += `
${slide.content.title}
${slide.content.content}
`; if (includeNotes && slide.notes) { documentContent += `
Speaker Notes:
${slide.notes}
`; } documentContent += `
`; await new Promise(r => setTimeout(r, 200)); } documentContent += `

How to Use Ppt To Pdf

  1. 1

    Upload your file

  2. 2

    Process using our tool

  3. 3

    Download the result

Frequently Asked Questions

How accurate is the conversion?

What file sizes are supported?

Will my data be secure?

Can I convert multiple files at once?

What formats are supported?

SSL Secured
256-bit Encryption
100% Secure
Files Auto-Deleted
`; updateProgress(95, 'Finalizing document...'); let downloadUrl, downloadName; if (outputFormat === 'pdf') { const { jsPDF } = window.jspdf; const pdf = new jsPDF(); const tempDiv = document.createElement('div'); tempDiv.innerHTML = documentContent; document.body.appendChild(tempDiv); const canvas = await html2canvas(tempDiv, { scale: 2, useCORS: true, backgroundColor: '#ffffff' }); const imgData = canvas.toDataURL('image/jpeg', 0.9); pdf.addImage(imgData, 'JPEG', 10, 10, 190, 0); document.body.removeChild(tempDiv); const dataUrl = pdf.output('datauristring'); const outName = currentFile.name.replace(/\.[^/.]+$/, '') + '.pdf'; try { sessionStorage.setItem('p2p_pdf_dataurl', dataUrl); sessionStorage.setItem('p2p_filename', outName); sessionStorage.setItem('p2p_pages', String(pdf.internal.getNumberOfPages())); } catch (e) { try { window.name = JSON.stringify({ tag:'P2P', p2p_pdf_dataurl:dataUrl, p2p_filename:outName, p2p_pages:String(pdf.internal.getNumberOfPages()) }); } catch(_){} } window.location.href = 'ppt-to-pdf-convert.html'; return; } else { const blob = new Blob([documentContent], { type: outputFormat === 'txt' ? 'text/plain' : 'application/msword' }); downloadUrl = URL.createObjectURL(blob); downloadName = currentFile.name.replace(/\.[^/.]+$/, '') + (outputFormat === 'txt' ? '.txt' : outputFormat === 'doc' ? '.doc' : '.docx'); } const a = document.createElement('a'); a.href = downloadUrl; a.download = downloadName; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(downloadUrl); updateProgress(100, 'Conversion complete!'); setTimeout(() => { successMessage.style.display = 'block'; }, 500); } catch (err) { console.error(err); showError('Failed to convert. Please try another file.'); } finally { loading.style.display = 'none'; progressContainer.style.display = 'none'; progressBar.style.width = '0%'; convertBtn.disabled = false; } } function clearFile() { currentFile = null; presentationData = null; selectedSlides = []; totalSlides = 0; fileInput.value = ''; fileInfo.style.display = 'none'; slideSelection.style.display = 'none'; convertBtn.disabled = true; hideMessages(); previewSection.style.display = 'none'; slideList.innerHTML = ''; } function updateProgress(percent, text) { progressBar.style.width = `${percent}%`; progressText.textContent = text; } function formatFileSize(bytes) { if (bytes < 1024) return bytes + ' bytes'; else if (bytes < 1048576) return (bytes / 1024).toFixed(1) + ' KB'; else return (bytes / 1048576).toFixed(1) + ' MB'; } function showError(message) { errorText.textContent = message; errorMessage.style.display = 'block'; } function hideMessages() { successMessage.style.display = 'none'; errorMessage.style.display = 'none'; } document.getElementById('include-notes').addEventListener('change', () => { if (selectedSlides.length === 1) { renderPreview(selectedSlides[0]); } });