<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos ppt to pdf - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/ppt-to-pdf/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/ppt-to-pdf/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Thu, 22 Oct 2026 17:26:19 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://webzoneware.com/wp-content/uploads/icon-webzoneware-150x150.png</url>
	<title>Arquivos ppt to pdf - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/ppt-to-pdf/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Conversor de PowerPoint para PDF Online Grátis &#124; Web-ZoneWare</title>
		<link>https://webzoneware.com/web-ferramentas/pdf/conversor-de-powerpoint-para-pdf/</link>
					<comments>https://webzoneware.com/web-ferramentas/pdf/conversor-de-powerpoint-para-pdf/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 18:56:40 +0000</pubDate>
				<category><![CDATA[PDF & Documentos]]></category>
		<category><![CDATA[apresentacao powerpoint para pdf]]></category>
		<category><![CDATA[converter pptx em pdf]]></category>
		<category><![CDATA[ppt to pdf]]></category>
		<category><![CDATA[slides para pdf online]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=28978</guid>

					<description><![CDATA[<p>O Conversor de PowerPoint para PDF Online do Web-ZoneWare transforma suas apresentações de slides (.pptx) em documentos PDF elegantes, nítidos e fáceis de compartilhar. Enviar slides em formato PDF é a melhor maneira de garantir que clientes, professores e parceiros vejam sua apresentação exatamente como foi projetada, sem risco de fontes desconfiguradas ou problemas de [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-ferramentas/pdf/conversor-de-powerpoint-para-pdf/">Conversor de PowerPoint para PDF Online Grátis | Web-ZoneWare</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>O <strong>Conversor de PowerPoint para PDF Online</strong> do Web-ZoneWare transforma suas apresentações de slides (<code>.pptx</code>) em documentos PDF elegantes, nítidos e fáceis de compartilhar. Enviar slides em formato PDF é a melhor maneira de garantir que clientes, professores e parceiros vejam sua apresentação exatamente como foi projetada, sem risco de fontes desconfiguradas ou problemas de compatibilidade.</p>
<p>Projetado com base nas especificações abertas da <a href="https://learn.microsoft.com/pt-br/office/open-xml/" target="_blank" rel="noopener noreferrer">Microsoft OpenXML</a> e nos padrões gráficos do <a href="https://www.w3.org/TR/CSS2/" target="_blank" rel="noopener noreferrer">W3C</a>, o conversor lê a estrutura interna dos slides e compila cada página em alta definição.</p>
    <div id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8" class="wzw-tool-container wzw-pdf-suite-wrapper">
        <style>
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 {
                background: linear-gradient(145deg, #0f172a 0%, #1e293b 100%);
                color: #f8fafc;
                border-radius: 16px;
                padding: 24px;
                box-shadow: 0 12px 35px rgba(0, 0, 0, 0.35);
                border: 1px solid #334155;
                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
                margin: 20px 0 35px 0;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 * {
                box-sizing: border-box;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-tool-header {
                display: flex;
                align-items: center;
                justify-content: space-between;
                flex-wrap: wrap;
                gap: 12px;
                margin-bottom: 20px;
                padding-bottom: 16px;
                border-bottom: 1px solid rgba(255, 255, 255, 0.1);
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-tool-title {
                margin: 0;
                font-size: 1.35rem;
                font-weight: 800;
                color: #f97316;
                display: flex;
                align-items: center;
                gap: 10px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-badge-client {
                background: rgba(249, 115, 22, 0.15);
                color: #fb923c;
                border: 1px solid rgba(249, 115, 22, 0.35);
                padding: 4px 10px;
                border-radius: 20px;
                font-size: 11px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: 0.5px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-dropzone {
                border: 2px dashed #ea580c;
                background: rgba(234, 88, 12, 0.05);
                border-radius: 14px;
                padding: 44px 20px;
                text-align: center;
                cursor: pointer;
                transition: all 0.25s ease;
                margin-bottom: 20px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-dropzone:hover,
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-dropzone.drag-over {
                background: rgba(234, 88, 12, 0.12);
                border-color: #fb923c;
                transform: translateY(-2px);
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-drop-icon {
                font-size: 48px;
                margin-bottom: 12px;
                display: block;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-drop-title {
                font-size: 1.15rem;
                font-weight: 700;
                color: #f1f5f9;
                margin: 0 0 6px 0;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-drop-sub {
                font-size: 13px;
                color: #94a3b8;
                margin: 0;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-workspace {
                display: none;
                background: rgba(15, 23, 42, 0.6);
                border-radius: 14px;
                padding: 20px;
                border: 1px solid #334155;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-file-summary {
                display: flex;
                align-items: center;
                justify-content: space-between;
                background: #1e293b;
                border: 1px solid #475569;
                border-radius: 10px;
                padding: 12px 18px;
                margin-bottom: 20px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-file-meta {
                display: flex;
                align-items: center;
                gap: 12px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-file-icon {
                font-size: 28px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-file-details strong {
                display: block;
                font-size: 14px;
                color: #f8fafc;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-file-details span {
                font-size: 12px;
                color: #94a3b8;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-btn-outline {
                background: transparent;
                border: 1px solid #64748b;
                color: #cbd5e1;
                border-radius: 8px;
                padding: 6px 14px;
                font-size: 12px;
                font-weight: 600;
                cursor: pointer;
                transition: all 0.2s;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-btn-outline:hover {
                border-color: #fb923c;
                color: #fb923c;
                background: rgba(249, 115, 22, 0.1);
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-config-grid {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
                gap: 14px;
                background: rgba(15, 23, 42, 0.4);
                padding: 16px;
                border-radius: 10px;
                border: 1px solid #334155;
                margin-bottom: 20px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-form-label {
                display: block;
                font-size: 13px;
                font-weight: 600;
                color: #cbd5e1;
                margin-bottom: 6px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-select,
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-input-text {
                width: 100%;
                background: #0f172a;
                border: 1px solid #475569;
                border-radius: 8px;
                padding: 9px 12px;
                color: #f8fafc;
                font-size: 13px;
                outline: none;
                transition: border 0.2s;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-select:focus,
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-input-text:focus {
                border-color: #fb923c;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-slides-viewer {
                background: #0b0f19;
                border: 1px solid #334155;
                border-radius: 10px;
                padding: 20px;
                max-height: 440px;
                overflow-y: auto;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide {
                background: #ffffff;
                color: #1e293b;
                border-radius: 8px;
                padding: 28px 36px;
                margin-bottom: 24px;
                box-shadow: 0 4px 15px rgba(0,0,0,0.4);
                min-height: 280px;
                position: relative;
                page-break-after: always;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-slide-badge {
                position: absolute;
                top: 12px;
                right: 16px;
                font-size: 11px;
                font-weight: 700;
                background: #f1f5f9;
                color: #475569;
                padding: 2px 8px;
                border-radius: 12px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide h1,
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide h2 {
                color: #0f172a;
                margin-top: 0;
                margin-bottom: 14px;
                font-weight: 800;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide p {
                line-height: 1.6;
                margin-bottom: 10px;
                color: #334155;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide img {
                max-width: 100%;
                height: auto;
                border-radius: 4px;
                margin: 10px 0;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide table {
                width: 100%;
                border-collapse: collapse;
                margin: 14px 0;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide th,
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-rendered-slide td {
                border: 1px solid #cbd5e1;
                padding: 8px 12px;
                text-align: left;
                font-size: 13px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-action-bar {
                display: flex;
                align-items: center;
                justify-content: space-between;
                flex-wrap: wrap;
                gap: 14px;
                margin-top: 20px;
                padding-top: 18px;
                border-top: 1px solid #334155;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-btn-execute {
                background: linear-gradient(135deg, #ea580c 0%, #c2410c 100%);
                color: #ffffff;
                border: none;
                border-radius: 10px;
                padding: 12px 24px;
                font-size: 14px;
                font-weight: 700;
                cursor: pointer;
                display: inline-flex;
                align-items: center;
                gap: 8px;
                box-shadow: 0 4px 15px rgba(234, 88, 12, 0.4);
                transition: all 0.2s;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-btn-execute:hover {
                transform: translateY(-1px);
                box-shadow: 0 6px 20px rgba(234, 88, 12, 0.6);
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-btn-execute:disabled {
                opacity: 0.6;
                cursor: not-allowed;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-progress-box {
                display: none;
                margin-top: 16px;
                background: rgba(15, 23, 42, 0.6);
                border-radius: 8px;
                padding: 12px;
                border: 1px solid #334155;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-progress-bar-wrap {
                width: 100%;
                height: 8px;
                background: #1e293b;
                border-radius: 4px;
                overflow: hidden;
                margin-top: 6px;
            }
            #wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8 .wzw-progress-bar-fill {
                width: 0%;
                height: 100%;
                background: linear-gradient(90deg, #ea580c, #fb923c);
                transition: width 0.2s ease;
            }
        </style>

        <div class="wzw-tool-header">
            <h3 class="wzw-tool-title">
                <span>📑</span> Conversor de PowerPoint para PDF (.pptx)
            </h3>
            <span class="wzw-badge-client">100% Client-Side • Privacidade Garantida</span>
        </div>

        <!-- Dropzone de Entrada -->
        <div id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_dropzone" class="wzw-dropzone">
            <input type="file" id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_file_input" accept=".pptx" style="display: none;">
            <span class="wzw-drop-icon">📊</span>
            <p class="wzw-drop-title">Arraste seu arquivo PowerPoint (.pptx) aqui ou clique para selecionar</p>
            <p class="wzw-drop-sub">Converta slides de apresentações em PDF nítido e profissional sem limites e com sigilo total</p>
        </div>

        <!-- Espaço de Trabalho -->
        <div id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_workspace" class="wzw-workspace">
            <div class="wzw-file-summary">
                <div class="wzw-file-meta">
                    <span class="wzw-file-icon">📽️</span>
                    <div class="wzw-file-details">
                        <strong id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_file_name">apresentacao.pptx</strong>
                        <span id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_file_stats">0 slides • 0 KB</span>
                    </div>
                </div>
                <button type="button" id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_change" class="wzw-btn-outline">Trocar Arquivo</button>
            </div>

            <!-- Grade de Opções -->
            <div class="wzw-config-grid">
                <div>
                    <label class="wzw-form-label" for="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_orientation_select">Orientação do Documento PDF:</label>
                    <select id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_orientation_select" class="wzw-select">
                        <option value="landscape" selected>Paisagem (Landscape - Padrão de Apresentações)</option>
                        <option value="portrait">Retrato (Portrait)</option>
                    </select>
                </div>

                <div>
                    <label class="wzw-form-label" for="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_format_select">Formato da Folha:</label>
                    <select id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_format_select" class="wzw-select">
                        <option value="a4" selected>A4 (Padrão Internacional)</option>
                        <option value="letter">Carta (US Letter)</option>
                    </select>
                </div>

                <div>
                    <label class="wzw-form-label" for="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_output_name">Nome do Arquivo PDF:</label>
                    <input type="text" id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_output_name" class="wzw-input-text" value="apresentacao-convertida">
                </div>
            </div>

            <!-- Pré-visualização dos Slides -->
            <div style="margin-bottom: 12px;">
                <label class="wzw-form-label">Slides Identificados no Arquivo:</label>
            </div>
            <div id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_slides_viewer" class="wzw-slides-viewer">
                <div id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_slides_container"></div>
            </div>

            <!-- Barra de Progresso -->
            <div id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress" class="wzw-progress-box">
                <div style="display: flex; justify-content: space-between; font-size: 12px; color: #cbd5e1;">
                    <span id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress_status">Compilando documento PDF...</span>
                    <span id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress_percent">0%</span>
                </div>
                <div class="wzw-progress-bar-wrap">
                    <div id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress_fill" class="wzw-progress-bar-fill"></div>
                </div>
            </div>

            <!-- Barra de Ações -->
            <div class="wzw-action-bar">
                <button type="button" id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_reset" class="wzw-btn-outline">Recomeçar</button>
                <div style="display:flex;gap:10px;flex-wrap:wrap;">
                    <button type="button" id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_print" class="wzw-btn-outline" style="border-color:#10b981;color:#34d399;">
                        <span>🖨️</span> Salvar como PDF Vetorial
                    </button>
                    <button type="button" id="wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_execute" class="wzw-btn-execute">
                        <span>⚡</span> Gerar e Baixar Documento PDF
                    </button>
                </div>
            </div>
        </div>

        <script>
        (function() {
            const root = document.getElementById('wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8');
            if (!root) return;

            const dropZone = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_dropzone');
            const fileInput = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_file_input');
            const workspace = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_workspace');
            const fileNameElem = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_file_name');
            const fileStatsElem = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_file_stats');
            const btnChange = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_change');
            const btnReset = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_reset');
            const btnExecute = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_execute');
            const btnPrint = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_btn_print');
            const slidesContainer = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_slides_container');
            const orientationSelect = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_orientation_select');
            const formatSelect = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_format_select');
            const outputNameInput = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_output_name');
            const progressBox = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress');
            const progressStatus = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress_status');
            const progressPercent = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress_percent');
            const progressFill = root.querySelector('#wzw_ppt2pdf_90b5f38f_872c_4379_a1fb_78b4944729d8_progress_fill');

            function formatBytes(bytes) {
                if (bytes === 0) return '0 Bytes';
                const k = 1024;
                const sizes = ['Bytes', 'KB', 'MB'];
                const i = Math.floor(Math.log(bytes) / Math.log(k));
                return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i];
            }

            dropZone.addEventListener('click', () => fileInput.click());

            ['dragenter', 'dragover'].forEach(name => {
                dropZone.addEventListener(name, (e) => {
                    e.preventDefault();
                    dropZone.classList.add('drag-over');
                });
            });

            ['dragleave', 'drop'].forEach(name => {
                dropZone.addEventListener(name, (e) => {
                    e.preventDefault();
                    dropZone.classList.remove('drag-over');
                });
            });

            dropZone.addEventListener('drop', (e) => {
                if (e.dataTransfer.files && e.dataTransfer.files[0]) {
                    loadPresentation(e.dataTransfer.files[0]);
                }
            });

            fileInput.addEventListener('change', (e) => {
                if (e.target.files && e.target.files[0]) {
                    loadPresentation(e.target.files[0]);
                }
            });

            btnChange.addEventListener('click', () => fileInput.click());

            btnReset.addEventListener('click', () => {
                slidesContainer.innerHTML = '';
                fileInput.value = '';
                workspace.style.display = 'none';
                dropZone.style.display = 'block';
                progressBox.style.display = 'none';
            });

            async function loadPresentation(file) {
                if (!file.name.toLowerCase().endsWith('.pptx')) {
                    alert('Por favor, selecione uma apresentação no formato Microsoft PowerPoint (.pptx).');
                    return;
                }

                if (typeof window.JSZip === 'undefined') {
                    alert('O motor de descompactação ainda está carregando. Tente novamente em instantes.');
                    return;
                }

                try {
                    fileNameElem.textContent = file.name;
                    outputNameInput.value = file.name.replace(/\.[^/.]+$/, "") + '-convertido';
                    slidesContainer.innerHTML = '<p style="color:#94a3b8; padding: 20px;">Lendo estrutura de slides e elementos gráficos...</p>';

                    dropZone.style.display = 'none';
                    workspace.style.display = 'block';

                    const zip = await JSZip.loadAsync(file);

                    // Descobre slides
                    const slideFiles = [];
                    zip.forEach((relativePath) => {
                        if (relativePath.match(/^ppt\/slides\/slide\d+\.xml$/i)) {
                            slideFiles.push(relativePath);
                        }
                    });

                    // Ordena numericamente slide1, slide2, slide10
                    slideFiles.sort((a, b) => {
                        const numA = parseInt(a.replace(/\D/g, '')) || 0;
                        const numB = parseInt(b.replace(/\D/g, '')) || 0;
                        return numA - numB;
                    });

                    if (slideFiles.length === 0) {
                        alert('Nenhum slide foi encontrado dentro desta apresentação.');
                        return;
                    }

                    fileStatsElem.textContent = `${slideFiles.length} ${slideFiles.length === 1 ? 'slide' : 'slides'} • ${formatBytes(file.size)}`;

                    // Carrega mídias (imagens em ppt/media/)
                    const mediaMap = {};
                    const mediaFiles = [];
                    zip.forEach((path) => {
                        if (path.startsWith('ppt/media/')) {
                            mediaFiles.push(path);
                        }
                    });

                    for (const mPath of mediaFiles) {
                        try {
                            const blob = await zip.file(mPath).async('blob');
                            mediaMap[mPath.replace('ppt/media/', '')] = URL.createObjectURL(blob);
                        } catch (e) {
                            console.warn('Erro ao carregar mídia:', mPath, e);
                        }
                    }

                    slidesContainer.innerHTML = '';

                    const parser = new DOMParser();

                    for (let i = 0; i < slideFiles.length; i++) {
                        const sPath = slideFiles[i];
                        const slideXmlStr = await zip.file(sPath).async('text');
                        const xmlDoc = parser.parseFromString(slideXmlStr, 'application/xml');

                        // Lê relações do slide para imagens
                        const relsPath = sPath.replace('ppt/slides/', 'ppt/slides/_rels/') + '.rels';
                        const slideRels = {};
                        if (zip.file(relsPath)) {
                            const relsXml = await zip.file(relsPath).async('text');
                            const relsDoc = parser.parseFromString(relsXml, 'application/xml');
                            const relNodes = relsDoc.getElementsByTagName('Relationship');
                            for (let r = 0; r < relNodes.length; r++) {
                                const id = relNodes[r].getAttribute('Id');
                                const target = relNodes[r].getAttribute('Target');
                                if (id && target) {
                                    const imgKey = target.replace('../media/', '').replace('media/', '');
                                    slideRels[id] = mediaMap[imgKey] || '';
                                }
                            }
                        }

                        // Cria o slide no container
                        const slideCard = document.createElement('div');
                        slideCard.className = 'wzw-rendered-slide';
                        slideCard.innerHTML = `<span class="wzw-slide-badge">Slide ${i + 1}</span>`;

                        // Extrai formas e caixas de texto
                        const shapes = xmlDoc.getElementsByTagName('p:sp');
                        let slideTitleFound = false;

                        for (let s = 0; s < shapes.length; s++) {
                            const txBody = shapes[s].getElementsByTagName('p:txBody')[0];
                            if (txBody) {
                                const paragraphs = txBody.getElementsByTagName('a:p');
                                for (let p = 0; p < paragraphs.length; p++) {
                                    const runs = paragraphs[p].getElementsByTagName('a:r');
                                    let paraText = '';
                                    let isBold = false;

                                    for (let r = 0; r < runs.length; r++) {
                                        const t = runs[r].getElementsByTagName('a:t')[0];
                                        if (t && t.textContent) {
                                            paraText += t.textContent;
                                        }
                                        const rPr = runs[r].getElementsByTagName('a:rPr')[0];
                                        if (rPr && rPr.getAttribute('b') === '1') {
                                            isBold = true;
                                        }
                                    }

                                    if (paraText.trim()) {
                                        if (!slideTitleFound && (isBold || paraText.length < 60)) {
                                            const h = document.createElement('h2');
                                            h.textContent = paraText.trim();
                                            slideCard.appendChild(h);
                                            slideTitleFound = true;
                                        } else {
                                            const pElem = document.createElement('p');
                                            pElem.textContent = paraText.trim();
                                            slideCard.appendChild(pElem);
                                        }
                                    }
                                }
                            }
                        }

                        // Extrai tabelas
                        const tables = xmlDoc.getElementsByTagName('a:tbl');
                        for (let t = 0; t < tables.length; t++) {
                            const rows = tables[t].getElementsByTagName('a:tr');
                            if (rows.length > 0) {
                                const tableElem = document.createElement('table');
                                for (let r = 0; r < rows.length; r++) {
                                    const tr = document.createElement('tr');
                                    const cells = rows[r].getElementsByTagName('a:tc');
                                    for (let c = 0; c < cells.length; c++) {
                                        const cellElem = r === 0 ? document.createElement('th') : document.createElement('td');
                                        cellElem.textContent = cells[c].textContent.trim();
                                        tr.appendChild(cellElem);
                                    }
                                    tableElem.appendChild(tr);
                                }
                                slideCard.appendChild(tableElem);
                            }
                        }

                        // Extrai imagens inseridas no slide
                        const pics = xmlDoc.getElementsByTagName('p:pic');
                        for (let pic = 0; pic < pics.length; pic++) {
                            const blip = pics[pic].getElementsByTagName('a:blip')[0];
                            if (blip) {
                                const embedId = blip.getAttribute('r:embed');
                                if (embedId && slideRels[embedId]) {
                                    const imgElem = document.createElement('img');
                                    imgElem.src = slideRels[embedId];
                                    slideCard.appendChild(imgElem);
                                }
                            }
                        }

                        // Se o slide estiver sem conteúdo textual identificado, adiciona marcação sutil
                        if (slideCard.children.length <= 1) {
                            const placeholder = document.createElement('p');
                            placeholder.style.color = '#94a3b8';
                            placeholder.style.fontStyle = 'italic';
                            placeholder.textContent = '[Slide Gráfico ou sem conteúdo de texto direto]';
                            slideCard.appendChild(placeholder);
                        }

                        slidesContainer.appendChild(slideCard);
                    }

                } catch (err) {
                    console.error('Erro ao ler PPTX:', err);
                    alert('Erro ao carregar o arquivo PowerPoint: ' + err.message);
                }
            }

            btnExecute.addEventListener('click', async () => {
                const slides = slidesContainer.querySelectorAll('.wzw-rendered-slide');
                if (!slides || !slides.length) {
                    alert('Carregue uma apresentação PowerPoint antes de gerar o PDF.');
                    return;
                }

                if (!window.jspdf || !window.html2canvas) {
                    alert('O motor de conversão PDF ainda está sendo carregado.');
                    return;
                }

                btnExecute.disabled = true;
                if (btnPrint) btnPrint.disabled = true;
                progressBox.style.display = 'block';
                progressPercent.textContent = '5%';
                progressFill.style.width = '5%';
                progressStatus.textContent = 'Iniciando compilação slide por slide...';

                try {
                    const { jsPDF } = window.jspdf;
                    const orientation = orientationSelect.value;
                    const format = formatSelect.value;
                    const fileName = (outputNameInput.value.trim() || 'apresentacao-convertida') + '.pdf';

                    const pdf = new jsPDF({
                        orientation: orientation,
                        unit: 'mm',
                        format: format
                    });

                    const pdfWidth = pdf.internal.pageSize.getWidth();
                    const pdfHeight = pdf.internal.pageSize.getHeight();
                    const total = slides.length;

                    for (let i = 0; i < total; i++) {
                        const slide = slides[i];
                        const pct = Math.round(10 + ((i + 1) / total) * 85);
                        progressPercent.textContent = pct + '%';
                        progressFill.style.width = pct + '%';
                        progressStatus.textContent = `Processando slide ${i + 1} de ${total}...`;

                        const canvas = await html2canvas(slide, {
                            scale: 2.0,
                            useCORS: true,
                            backgroundColor: '#ffffff',
                            logging: false
                        });

                        if (i > 0) {
                            pdf.addPage(format, orientation);
                        }

                        const imgData = canvas.toDataURL('image/jpeg', 0.96);
                        pdf.addImage(imgData, 'JPEG', 0, 0, pdfWidth, pdfHeight);
                    }

                    progressPercent.textContent = '100%';
                    progressFill.style.width = '100%';
                    progressStatus.textContent = 'Download concluído com sucesso!';

                    pdf.save(fileName);

                    setTimeout(() => {
                        btnExecute.disabled = false;
                        if (btnPrint) btnPrint.disabled = false;
                        progressBox.style.display = 'none';
                        progressPercent.textContent = '0%';
                        progressFill.style.width = '0%';
                    }, 2500);

                } catch (err) {
                    console.error('Erro na compilação dos slides:', err);
                    alert('Erro ao gerar PDF da apresentação: ' + err.message);
                    btnExecute.disabled = false;
                    if (btnPrint) btnPrint.disabled = false;
                    progressBox.style.display = 'none';
                }
            });

            if (btnPrint) {
                btnPrint.addEventListener('click', () => {
                    if (!slidesContainer.children.length) {
                        alert('Carregue uma apresentação antes de imprimir.');
                        return;
                    }

                    const iframe = document.createElement('iframe');
                    iframe.style.position = 'fixed';
                    iframe.style.right = '0';
                    iframe.style.bottom = '0';
                    iframe.style.width = '0';
                    iframe.style.height = '0';
                    iframe.style.border = '0';
                    document.body.appendChild(iframe);

                    const orientation = orientationSelect.value;
                    const doc = iframe.contentWindow.document;
                    doc.open();
                    doc.write('<!DOCTYPE html><html><head><meta charset="utf-8"><title>' + (outputNameInput.value || 'apresentacao') + '</title>');
                    doc.write('<style>');
                    doc.write('@page { size: A4 ' + orientation + '; margin: 0; }');
                    doc.write('body { margin: 0; padding: 0; background: #fff; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }');
                    doc.write('.wzw-rendered-slide { margin: 0 !important; box-shadow: none !important; border-radius: 0 !important; page-break-after: always; break-after: page; width: 100% !important; min-height: 100vh !important; box-sizing: border-box; padding: 40px !important; }');
                    doc.write('</style></head><body>');
                    doc.write(slidesContainer.innerHTML);
                    doc.write('</body></html>');
                    doc.close();

                    setTimeout(() => {
                        iframe.contentWindow.focus();
                        iframe.contentWindow.print();
                        setTimeout(() => {
                            document.body.removeChild(iframe);
                        }, 3000);
                    }, 500);
                });
            }
        })();
        </script>
    </div>
    
<h2>Por que Converter Apresentações PPTX em PDF?</h2>
<p>Apresentações em PowerPoint costumam ter tamanhos pesados e dependem de fontes instaladas na máquina do destinatário. Ao transformar em PDF:</p>
<ul>
<li><strong>Universalidade de Visualização:</strong> O PDF abre instantaneamente em qualquer dispositivo, incluindo navegadores, celulares e leitores nativos sem exigir PowerPoint instalado.</li>
<li><strong>Impressão sem Surpresas:</strong> Imprima apostilas e apresentações com paginação perfeita e sem cortes indesejados.</li>
<li><strong>Orientação Paisagem Nativa:</strong> Mantém a proporção horizontal clássica dos slides de reunião e apresentações corporativas.</li>
<li><strong>Sigilo Garantido:</strong> Slides estratégicos de vendas e relatórios de diretoria nunca são enviados para bancos de dados na nuvem.</li>
</ul>
<h2>Como Converter Slides PowerPoint em PDF</h2>
<ol>
<li>Arraste o arquivo <code>.pptx</code> para a área de envio ou selecione em seus documentos.</li>
<li>Aguarde o reconhecimento dos slides e confira a pré-visualização de cada lâmina.</li>
<li>Selecione a orientação (Paisagem ou Retrato) e o formato do papel desejado (A4 ou Carta).</li>
<li>Clique em <strong>&#8220;Gerar e Baixar Documento PDF&#8221;</strong> para transferir o arquivo final.</li>
</ol>
<h2>Perguntas Frequentes sobre PowerPoint para PDF (FAQ)</h2>
<h3>O conversor preserva as imagens contidas nos slides?</h3>
<p>Sim. Todas as fotos, gráficos e mídias visuais empacotadas no arquivo PPTX são extraídas e embutidas nas respectivas páginas do PDF final.</p>
<h3>E se eu precisar fazer o caminho inverso (PDF para PowerPoint)?</h3>
<p>Sem problemas! Utilize nossa ferramenta complementar <a href="/conversor-de-pdf-para-powerpoint/">Conversor de PDF para PowerPoint</a> para transformar documentos em slides editáveis.</p>
<h3>Onde encontrar mais ferramentas de documentos?</h3>
<p>Conheça a suíte completa no <a href="/hub-de-pdfs/">Hub Central de Ferramentas de PDF</a> do Web-ZoneWare.</p>
<p><script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "O conversor suporta arquivos de apresentações .pptx modernos?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sim. A ferramenta decodifica apresentações no formato Microsoft Office PowerPoint (.pptx / OpenXML), identificando caixas de texto, títulos, imagens incorporadas e tabelas de cada slide."
      }
    },
    {
      "@type": "Question",
      "name": "O PDF é gerado na orientação paisagem típica de apresentações?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sim. Você pode optar pelo padrão Paisagem (Landscape), ideal para apresentações de slides 16:9, ou alterar para Retrato com formato de página A4 ou Carta."
      }
    },
    {
      "@type": "Question",
      "name": "Preciso ter o Microsoft Office instalado no computador?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Não. Todo o processamento é executado nativamente pelo navegador web, permitindo converter apresentações de qualquer computador, celular ou tablet."
      }
    }
  ]
}
</script></p>
<p>O post <a href="https://webzoneware.com/web-ferramentas/pdf/conversor-de-powerpoint-para-pdf/">Conversor de PowerPoint para PDF Online Grátis | Web-ZoneWare</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webzoneware.com/web-ferramentas/pdf/conversor-de-powerpoint-para-pdf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
