* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background: #f5f7fa; color: #333; line-height: 1.6; } header { color: white; padding: 1rem 2rem; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); text-align: center; } .logo { font-size: 1.8rem; font-weight: bold; } .container { max-width: 1000px; margin: 2rem auto; padding: 0 1rem; } .converter-box { background: white; border-radius: 10px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); padding: 2rem; } .drop-area { border: 2px dashed #ced6e0; border-radius: 8px; padding: 3rem 2rem; text-align: center; cursor: pointer; transition: all 0.3s; } .drop-area.highlight { border-color: #ff4757; background: rgba(255, 71, 87, 0.05); } .drop-area i { font-size: 3rem; color: #ff4757; margin-bottom: 1rem; } .btn { background: #ff4757; color: white; border: none; padding: 0.8rem 1.5rem; border-radius: 5px; font-size: 1rem; cursor: pointer; transition: background 0.3s; } .btn:hover { background: #ff6b81; } .btn:disabled { background: #ccc; cursor: not-allowed; } #fileInput { display: none; } .preview-section { margin-top: 2rem; display: none; } .preview-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin-top: 1rem; } .preview-item { border: 1px solid #eee; border-radius: 5px; overflow: hidden; position: relative; padding: 1rem; background: #f9f9f9; } .preview-item i { font-size: 2rem; color: #ff4757; display: block; text-align: center; margin-bottom: 0.5rem; } .file-name { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; text-align: center; font-size: 0.9rem; } .file-size { font-size: 0.8rem; color: #666; text-align: center; margin-top: 0.5rem; } .options-section { margin-top: 2rem; } .option-group { background: #f9f9f9; padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem; } .form-group { margin-bottom: 1rem; } label { display: block; margin-bottom: 0.5rem; font-weight: 500; } select, input[type="range"] { width: 100%; padding: 0.5rem; border: 1px solid #ddd; border-radius: 5px; } .convert-btn-container { text-align: center; margin-top: 2rem; } .toast { position: fixed; bottom: 20px; right: 20px; background: #333; color: white; padding: 1rem; border-radius: 5px; display: none; z-index: 1000; } .spinner { display: none; width: 40px; height: 40px; margin: 1rem auto; border: 4px solid rgba(0, 0, 0, 0.1); border-radius: 50%; border-top: 4px solid #ff4757; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .file-info { display: flex; justify-content: space-between; margin-top: 1rem; font-size: 0.9rem; color: #666; } input[type="checkbox"] { margin-right: 0.5rem; } .progress-container { width: 100%; background-color: #f1f1f1; border-radius: 5px; margin-top: 1rem; display: none; } .progress-bar { height: 10px; background-color: #ff4757; border-radius: 5px; width: 0%; transition: width 0.3s; }

Drag & Drop PDF Here

or

PDF Preview

No PDF selected
0 KB
Original size: 0 KB
 

Conversion Options

 
 

// PDF.js worker pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.12.313/pdf.worker.min.js'; // Store PDF data let pdfFile = null; let originalFileSize = 0; let pdfFileName = ""; // DOM Elements const dropArea = document.getElementById('dropArea'); const fileInput = document.getElementById('fileInput'); const selectFilesBtn = document.getElementById('selectFilesBtn'); const previewSection = document.getElementById('previewSection'); const pdfFileNameElement = document.getElementById('pdfFileName'); const pdfFileSizeElement = document.getElementById('pdfFileSize'); const originalSizeElement = document.getElementById('originalSize'); const convertBtn = document.getElementById('convertBtn'); const spinner = document.getElementById('spinner'); const toast = document.getElementById('toast'); const progressContainer = document.getElementById('progressContainer'); const progressBar = document.getElementById('progressBar'); const oneSlidePerPageCheckbox = document.getElementById('oneSlidePerPage'); const preserveLayoutCheckbox = document.getElementById('preserveLayout'); const slideTitleInput = document.getElementById('slideTitle'); // Initialize document.addEventListener('DOMContentLoaded', () => { // No initialization needed beyond setting up event listeners }); // Event Listeners selectFilesBtn.addEventListener('click', () => fileInput.click()); fileInput.addEventListener('change', handleFile); dropArea.addEventListener('dragover', (e) => { e.preventDefault(); dropArea.classList.add('highlight'); }); dropArea.addEventListener('dragleave', () => { dropArea.classList.remove('highlight'); }); dropArea.addEventListener('drop', (e) => { e.preventDefault(); dropArea.classList.remove('highlight'); const files = e.dataTransfer.files; if (files.length && files[0].name.toLowerCase().endsWith('.pdf')) { fileInput.files = files; handleFile({ target: fileInput }); } else { showToast('Please drop a PDF file'); } }); convertBtn.addEventListener('click', convertPDF); // Handle PDF file async function handleFile(e) { const file = e.target.files[0]; if (!file) return; // Check file size (client-side limit) if (file.size > 5 * 1024 * 1024) { // 5MB showToast('File is too large for processing (max 5MB)'); return; } spinner.style.display = 'block'; convertBtn.disabled = true; progressContainer.style.display = 'none'; try { pdfFile = file; originalFileSize = file.size; pdfFileName = file.name; // Update UI pdfFileNameElement.textContent = file.name; pdfFileSizeElement.textContent = formatFileSize(file.size); originalSizeElement.textContent = formatFileSize(file.size); previewSection.style.display = 'block'; convertBtn.disabled = false; showToast('PDF loaded successfully!'); } catch (error) { showToast('Error loading PDF: ' + error.message); console.error(error); } finally { spinner.style.display = 'none'; } } // Convert PDF function async function convertPDF() { if (!pdfFile) { showToast('Please upload a PDF first'); return; } spinner.style.display = 'block'; convertBtn.disabled = true; progressContainer.style.display = 'block'; progressBar.style.width = '0%'; try { const arrayBuffer = await pdfFile.arrayBuffer(); const loadingTask = pdfjsLib.getDocument(arrayBuffer); const pdfDocument = await loadingTask.promise; // Create new PowerPoint presentation using the global PptxGenJS const pptx = new PptxGenJS(); const title = slideTitleInput.value || pdfFileName.replace('.pdf', ''); pptx.title = title; // Process each page for (let i = 1; i 1) { slide.addText(`Page ${i} of ${pdfDocument.numPages}`, { x: '90%', y: '95%', w: '10%', h: 0.5, fontSize: 10, align: 'right' }); } await page.cleanup(); // If not one slide per page, break after first page if (!oneSlidePerPageCheckbox.checked) { break; } } updateProgress(95); // Generate the PowerPoint file const fileName = pdfFileName.replace('.pdf', '') + '_converted.pptx'; pptx.writeFile({ fileName: fileName }).then(() => { updateProgress(100); showToast('PDF converted to PowerPoint successfully!'); }); } catch (error) { showToast('Conversion failed: ' + error.message); console.error(error); } finally { spinner.style.display = 'none'; convertBtn.disabled = false; } } // Update progress bar function updateProgress(percent) { progressBar.style.width = `${percent}%`; } // Format file size function formatFileSize(bytes) { if (bytes === 0) return '0 Bytes'; const k = 1024; const sizes = ['Bytes', 'KB', 'MB', 'GB']; const i = Math.floor(Math.log(bytes) / Math.log(k)); return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; } // Show toast message function showToast(message) { toast.textContent = message; toast.style.display = 'block'; setTimeout(() => { toast.style.display = 'none'; }, 4000); }

Convert PDF to PowerPoint – Free & Accurate

Turn your PDF files into fully editable PowerPoint presentations (PPTX). No sign-up, no watermark – just fast and free conversion.

Free Online PDF to PowerPoint Converter

Use our PDF to PowerPoint tool to convert your PDF files into fully editable PowerPoint slides. Preserve layouts, images, and formatting with a simple upload. Ideal for reports, presentations, and more.

Why Use Our PDF to PPTX Converter?

  • 100% Free – No usage limits, hidden costs, or sign-ups.
  • Retains Design – Preserves slide layouts, fonts, and images.
  • Editable Output – Receive a ready-to-edit PPTX file.
  • Works in Your Browser – No installation needed.
  • Secure & Private – Files are deleted automatically after 1 hour.

How to Convert PDF to PowerPoint

  1. Click the “Select PDF File” button or drag & drop your file.
  2. Wait a few seconds while we convert your document to PPTX.
  3. Download your editable PowerPoint presentation instantly.

Frequently Asked Questions

Is the PDF to PowerPoint converter free?

Yes! You can convert unlimited PDFs to PPTX files for free with no watermarks or sign-up requirements.

Will the formatting of my slides be preserved?

Absolutely. The converter maintains slide layout, fonts, charts, and visuals during conversion.

Is it safe to upload my PDF files?

Yes, we use HTTPS encryption. Your files are automatically deleted from our servers within 1 hour of conversion.

Can I convert scanned PDFs to PowerPoint?

If your PDF is scanned, our tool uses OCR (Optical Character Recognition) to extract text and convert it into PowerPoint format.

Start Converting Your PDF to PowerPoint Now

Quickly turn your static PDF documents into fully editable presentations. Our PDF to PPTX converter makes editing, sharing, and presenting your content effortless.

Other Free PDF Tools