<?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 desmembrar pdf online - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/desmembrar-pdf-online/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/desmembrar-pdf-online/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Thu, 22 Oct 2026 17:26:33 +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 desmembrar pdf online - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/desmembrar-pdf-online/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Dividir PDF Online Grátis — Separar Páginas e ZIP &#124; Web-ZoneWare</title>
		<link>https://webzoneware.com/web-ferramentas/pdf/dividir-pdf-online/</link>
					<comments>https://webzoneware.com/web-ferramentas/pdf/dividir-pdf-online/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Fri, 16 Oct 2026 18:46:48 +0000</pubDate>
				<category><![CDATA[PDF & Documentos]]></category>
		<category><![CDATA[desmembrar pdf online]]></category>
		<category><![CDATA[extrair paginas pdf]]></category>
		<category><![CDATA[separar paginas pdf]]></category>
		<category><![CDATA[split pdf online]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=28976</guid>

					<description><![CDATA[<p>O Dividir PDF Online do Web-ZoneWare oferece precisão absoluta para você extrair páginas específicas, separar intervalos de relatórios extensos ou transformar cada folha de um documento em arquivos PDF individuais compactados em ZIP. Com interface intuitiva e processamento instantâneo, a ferramenta opera com as bibliotecas modernas PDF-Lib e JSZip, garantindo conformidade com os padrões da [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-ferramentas/pdf/dividir-pdf-online/">Dividir PDF Online Grátis — Separar Páginas e ZIP | Web-ZoneWare</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>O <strong>Dividir PDF Online</strong> do Web-ZoneWare oferece precisão absoluta para você extrair páginas específicas, separar intervalos de relatórios extensos ou transformar cada folha de um documento em arquivos PDF individuais compactados em ZIP.</p>
<p>Com interface intuitiva e processamento instantâneo, a ferramenta opera com as bibliotecas modernas <a href="https://pdf-lib.js.org/" target="_blank" rel="noopener noreferrer">PDF-Lib</a> e <a href="https://stuk.github.io/jszip/" target="_blank" rel="noopener noreferrer">JSZip</a>, garantindo conformidade com os padrões da <a href="https://developer.mozilla.org/pt-BR/docs/Web/API" target="_blank" rel="noopener noreferrer">Web APIs da Mozilla</a> e segurança total dos seus dados corporativos e pessoais.</p>
    <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67" class="wzw-tool-container wzw-pdf-suite-wrapper">
        <style>
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 {
                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_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 * {
                box-sizing: border-box;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .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_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-tool-title {
                margin: 0;
                font-size: 1.35rem;
                font-weight: 800;
                color: #38bdf8;
                display: flex;
                align-items: center;
                gap: 10px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-badge-client {
                background: rgba(16, 185, 129, 0.2);
                color: #34d399;
                border: 1px solid rgba(16, 185, 129, 0.4);
                padding: 4px 10px;
                border-radius: 20px;
                font-size: 11px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: 0.5px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-dropzone {
                border: 2px dashed #0284c7;
                background: rgba(2, 132, 199, 0.05);
                border-radius: 14px;
                padding: 44px 20px;
                text-align: center;
                cursor: pointer;
                transition: all 0.25s ease;
                margin-bottom: 20px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-dropzone:hover,
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-dropzone.drag-over {
                background: rgba(2, 132, 199, 0.12);
                border-color: #38bdf8;
                transform: translateY(-2px);
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-drop-icon {
                font-size: 48px;
                margin-bottom: 12px;
                display: block;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-drop-title {
                font-size: 1.15rem;
                font-weight: 700;
                color: #f1f5f9;
                margin: 0 0 6px 0;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-drop-sub {
                font-size: 13px;
                color: #94a3b8;
                margin: 0;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-workspace {
                display: none;
                background: rgba(15, 23, 42, 0.6);
                border-radius: 14px;
                padding: 20px;
                border: 1px solid #334155;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .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_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-file-meta {
                display: flex;
                align-items: center;
                gap: 12px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-file-icon {
                font-size: 28px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-file-details strong {
                display: block;
                font-size: 14px;
                color: #f8fafc;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-file-details span {
                font-size: 12px;
                color: #94a3b8;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .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_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-btn-outline:hover {
                border-color: #38bdf8;
                color: #38bdf8;
                background: rgba(56, 189, 248, 0.1);
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-tabs-nav {
                display: flex;
                gap: 8px;
                border-bottom: 1px solid #334155;
                margin-bottom: 18px;
                padding-bottom: 8px;
                flex-wrap: wrap;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-tab-btn {
                background: #1e293b;
                border: 1px solid #334155;
                color: #94a3b8;
                padding: 8px 16px;
                border-radius: 8px;
                font-size: 13px;
                font-weight: 600;
                cursor: pointer;
                transition: all 0.2s;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-tab-btn.active {
                background: #0284c7;
                border-color: #38bdf8;
                color: #ffffff;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-tab-pane {
                display: none;
                margin-bottom: 20px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-tab-pane.active {
                display: block;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-form-label {
                display: block;
                font-size: 13px;
                font-weight: 600;
                color: #cbd5e1;
                margin-bottom: 8px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-input-text {
                width: 100%;
                background: #0f172a;
                border: 1px solid #475569;
                border-radius: 8px;
                padding: 10px 14px;
                color: #f8fafc;
                font-size: 14px;
                outline: none;
                transition: border 0.2s;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-input-text:focus {
                border-color: #38bdf8;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-hint {
                font-size: 12px;
                color: #94a3b8;
                margin-top: 6px;
                display: block;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-radio-group {
                display: flex;
                flex-direction: column;
                gap: 10px;
                margin-top: 14px;
                background: rgba(15, 23, 42, 0.4);
                padding: 14px;
                border-radius: 8px;
                border: 1px solid #334155;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-radio-item {
                display: flex;
                align-items: center;
                gap: 10px;
                font-size: 13px;
                color: #e2e8f0;
                cursor: pointer;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-info-box {
                background: rgba(2, 132, 199, 0.1);
                border: 1px solid rgba(2, 132, 199, 0.3);
                border-radius: 8px;
                padding: 14px 18px;
                font-size: 13px;
                color: #bae6fd;
                line-height: 1.5;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-grid-toolbar {
                display: flex;
                justify-content: space-between;
                align-items: center;
                margin-bottom: 10px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-grid-actions {
                display: flex;
                gap: 10px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-grid-container {
                display: grid;
                grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
                gap: 10px;
                max-height: 240px;
                overflow-y: auto;
                background: #0f172a;
                border: 1px solid #334155;
                border-radius: 8px;
                padding: 12px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-page-thumb {
                height: 75px;
                background: #1e293b;
                border: 2px solid #334155;
                border-radius: 6px;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                cursor: pointer;
                transition: all 0.15s ease;
                user-select: none;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-page-thumb:hover {
                border-color: #64748b;
                background: #334155;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-page-thumb.selected {
                background: rgba(2, 132, 199, 0.25);
                border-color: #38bdf8;
                color: #38bdf8;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-page-thumb-num {
                font-size: 15px;
                font-weight: 700;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-page-thumb-sub {
                font-size: 10px;
                text-transform: uppercase;
                color: #94a3b8;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .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_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-btn-execute {
                background: linear-gradient(135deg, #0284c7 0%, #0369a1 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(2, 132, 199, 0.4);
                transition: all 0.2s;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-btn-execute:hover {
                transform: translateY(-1px);
                box-shadow: 0 6px 20px rgba(2, 132, 199, 0.6);
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-btn-execute:disabled {
                opacity: 0.6;
                cursor: not-allowed;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .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_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-progress-bar-wrap {
                width: 100%;
                height: 8px;
                background: #1e293b;
                border-radius: 4px;
                overflow: hidden;
                margin-top: 6px;
            }
            #wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67 .wzw-progress-bar-fill {
                width: 0%;
                height: 100%;
                background: linear-gradient(90deg, #38bdf8, #10b981);
                transition: width 0.2s ease;
            }
        </style>

        <div class="wzw-tool-header">
            <h3 class="wzw-tool-title">
                <span>✂️</span> Dividir PDF Online Grátis
            </h3>
            <span class="wzw-badge-client">100% Client-Side • Privacidade Garantida</span>
        </div>

        <!-- Dropzone de Entrada -->
        <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_dropzone" class="wzw-dropzone">
            <input type="file" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_file_input" accept="application/pdf" style="display: none;">
            <span class="wzw-drop-icon">📄</span>
            <p class="wzw-drop-title">Arraste o arquivo PDF aqui ou clique para selecionar</p>
            <p class="wzw-drop-sub">Divida páginas com precisão cirúrgica sem enviar nada ao servidor</p>
        </div>

        <!-- Espaço de Trabalho do Usuário -->
        <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_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_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_file_name">documento.pdf</strong>
                        <span id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_file_stats">0 páginas • 0 KB</span>
                    </div>
                </div>
                <button type="button" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_change" class="wzw-btn-outline">Trocar Arquivo</button>
            </div>

            <!-- Abas de Modos de Divisão -->
            <div class="wzw-tabs-nav">
                <button type="button" class="wzw-tab-btn active" data-mode="range">📋 Por Intervalos / Páginas</button>
                <button type="button" class="wzw-tab-btn" data-mode="all">📦 Extrair Todas as Páginas (ZIP)</button>
                <button type="button" class="wzw-tab-btn" data-mode="visual">🖱️ Seleção Visual no Grid</button>
            </div>

            <!-- Painel 1: Intervalos -->
            <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_panel_range" class="wzw-tab-pane active">
                <label class="wzw-form-label" for="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_input_range">Intervalos de páginas para extrair:</label>
                <input type="text" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_input_range" class="wzw-input-text" placeholder="Ex: 1-3, 5, 8-12">
                <span class="wzw-hint">Separe números por vírgula e utilize hífen (-) para faixas contínuas.</span>

                <div class="wzw-radio-group">
                    <label class="wzw-radio-item">
                        <input type="radio" name="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_range_action" value="single" checked>
                        <span>Mesclar páginas selecionadas em um <strong>novo arquivo PDF único</strong></span>
                    </label>
                    <label class="wzw-radio-item">
                        <input type="radio" name="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_range_action" value="zip">
                        <span>Salvar cada página selecionada separadamente em um pacote compactado <strong>(.ZIP)</strong></span>
                    </label>
                </div>
            </div>

            <!-- Painel 2: Todas em ZIP -->
            <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_panel_all" class="wzw-tab-pane">
                <div class="wzw-info-box">
                    💡 Cada uma das <strong id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_all_count">0</strong> páginas do seu documento será desmembrada em um arquivo PDF independente (`pagina-1.pdf`, `pagina-2.pdf`, etc.) e empacotada em um único download <strong>.ZIP</strong>.
                </div>
            </div>

            <!-- Painel 3: Seleção Visual -->
            <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_panel_visual" class="wzw-tab-pane">
                <div class="wzw-grid-toolbar">
                    <span class="wzw-hint">Clique nas miniaturas para selecionar as páginas que deseja salvar:</span>
                    <div class="wzw-grid-actions">
                        <button type="button" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_select_all" class="wzw-btn-outline">Marcar Todas</button>
                        <button type="button" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_deselect_all" class="wzw-btn-outline">Desmarcar</button>
                    </div>
                </div>
                <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_grid" class="wzw-grid-container"></div>
            </div>

            <!-- Nome do Arquivo Final -->
            <div style="margin-top: 18px;">
                <label class="wzw-form-label" for="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_output_name">Nome do Arquivo Gerado:</label>
                <input type="text" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_output_name" class="wzw-input-text" value="documento-dividido">
            </div>

            <!-- Barra de Progresso -->
            <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress" class="wzw-progress-box">
                <div style="display: flex; justify-content: space-between; font-size: 12px; color: #cbd5e1;">
                    <span id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress_status">Processando páginas...</span>
                    <span id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress_percent">0%</span>
                </div>
                <div class="wzw-progress-bar-wrap">
                    <div id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress_fill" class="wzw-progress-bar-fill"></div>
                </div>
            </div>

            <!-- Barra de Ações -->
            <div class="wzw-action-bar">
                <button type="button" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_reset" class="wzw-btn-outline">Recomeçar</button>
                <button type="button" id="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_execute" class="wzw-btn-execute">
                    <span>⚡</span> Dividir e Baixar Arquivos
                </button>
            </div>
        </div>

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

            const dropZone = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_dropzone');
            const fileInput = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_file_input');
            const workspace = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_workspace');
            const fileNameElem = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_file_name');
            const fileStatsElem = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_file_stats');
            const btnChange = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_change');
            const btnReset = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_reset');
            const btnExecute = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_execute');
            const tabButtons = root.querySelectorAll('.wzw-tab-btn');
            const tabPanes = root.querySelectorAll('.wzw-tab-pane');
            const rangeInput = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_input_range');
            const allCountElem = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_all_count');
            const visualGrid = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_grid');
            const btnSelectAll = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_select_all');
            const btnDeselectAll = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_btn_deselect_all');
            const outputNameInput = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_output_name');
            const progressBox = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress');
            const progressStatus = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress_status');
            const progressPercent = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress_percent');
            const progressFill = root.querySelector('#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_progress_fill');

            let currentPdfBuffer = null;
            let currentFileName = '';
            let totalPageCount = 0;
            let currentMode = 'range';
            let visualSelected = new Set();

            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]) {
                    processFile(e.dataTransfer.files[0]);
                }
            });

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

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

            btnReset.addEventListener('click', () => {
                currentPdfBuffer = null;
                totalPageCount = 0;
                visualSelected.clear();
                fileInput.value = '';
                workspace.style.display = 'none';
                dropZone.style.display = 'block';
                progressBox.style.display = 'none';
            });

            tabButtons.forEach(btn => {
                btn.addEventListener('click', () => {
                    tabButtons.forEach(b => b.classList.remove('active'));
                    tabPanes.forEach(p => p.classList.remove('active'));
                    btn.classList.add('active');
                    currentMode = btn.getAttribute('data-mode');
                    const targetPane = root.querySelector(`#wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_panel_${currentMode}`);
                    if (targetPane) targetPane.classList.add('active');
                });
            });

            async function processFile(file) {
                if (file.type !== 'application/pdf' && !file.name.toLowerCase().endsWith('.pdf')) {
                    alert('Por favor, selecione um arquivo em formato PDF.');
                    return;
                }

                if (typeof window.PDFLib === 'undefined') {
                    alert('O motor de processamento PDF ainda está carregando. Tente novamente em alguns segundos.');
                    return;
                }

                try {
                    currentFileName = file.name;
                    currentPdfBuffer = await file.arrayBuffer();
                    const pdfDoc = await PDFLib.PDFDocument.load(currentPdfBuffer, { ignoreEncryption: true });
                    totalPageCount = pdfDoc.getPageCount();

                    fileNameElem.textContent = file.name;
                    fileStatsElem.textContent = `${totalPageCount} ${totalPageCount === 1 ? 'página' : 'páginas'} • ${formatBytes(file.size)}`;
                    allCountElem.textContent = totalPageCount;

                    rangeInput.value = totalPageCount > 1 ? `1-${Math.min(3, totalPageCount)}` : '1';
                    outputNameInput.value = file.name.replace(/\.[^/.]+$/, "") + '-dividido';

                    buildVisualGrid();

                    dropZone.style.display = 'none';
                    workspace.style.display = 'block';
                } catch (err) {
                    console.error('Erro ao ler PDF:', err);
                    alert('Não foi possível ler o arquivo PDF. Verifique se ele não possui senha de segurança restritiva.');
                }
            }

            function buildVisualGrid() {
                visualGrid.innerHTML = '';
                visualSelected.clear();

                for (let i = 1; i <= totalPageCount; i++) {
                    const block = document.createElement('div');
                    block.className = 'wzw-page-thumb';
                    block.setAttribute('data-page', i);
                    block.innerHTML = `
                        <span class="wzw-page-thumb-num">${i}</span>
                        <span class="wzw-page-thumb-sub">Pág</span>
                    `;

                    block.addEventListener('click', () => {
                        if (visualSelected.has(i)) {
                            visualSelected.delete(i);
                            block.classList.remove('selected');
                        } else {
                            visualSelected.add(i);
                            block.classList.add('selected');
                        }
                    });

                    visualGrid.appendChild(block);
                }
            }

            btnSelectAll.addEventListener('click', () => {
                visualSelected.clear();
                visualGrid.querySelectorAll('.wzw-page-thumb').forEach(b => {
                    b.classList.add('selected');
                    visualSelected.add(parseInt(b.getAttribute('data-page')));
                });
            });

            btnDeselectAll.addEventListener('click', () => {
                visualSelected.clear();
                visualGrid.querySelectorAll('.wzw-page-thumb').forEach(b => b.classList.remove('selected'));
            });

            function parseRange(str, max) {
                const pages = new Set();
                const parts = str.split(',');

                for (let part of parts) {
                    part = part.trim();
                    if (!part) continue;

                    if (part.includes('-')) {
                        const [startStr, endStr] = part.split('-');
                        const start = parseInt(startStr);
                        const end = parseInt(endStr);
                        if (!isNaN(start) && !isNaN(end)) {
                            const minVal = Math.max(1, Math.min(start, end));
                            const maxVal = Math.min(max, Math.max(start, end));
                            for (let i = minVal; i <= maxVal; i++) {
                                pages.add(i);
                            }
                        }
                    } else {
                        const p = parseInt(part);
                        if (!isNaN(p) && p >= 1 && p <= max) {
                            pages.add(p);
                        }
                    }
                }
                return Array.from(pages).sort((a, b) => a - b);
            }

            btnExecute.addEventListener('click', async () => {
                if (!currentPdfBuffer) return;

                btnExecute.disabled = true;
                progressBox.style.display = 'block';
                progressPercent.textContent = '10%';
                progressFill.style.width = '10%';
                progressStatus.textContent = 'Lendo estrutura original...';

                try {
                    const donorPdf = await PDFLib.PDFDocument.load(currentPdfBuffer, { ignoreEncryption: true });
                    const baseFileName = (outputNameInput.value.trim() || 'documento-dividido');

                    if (currentMode === 'all') {
                        // Todas as páginas em ZIP
                        if (typeof window.JSZip === 'undefined') {
                            throw new Error('Biblioteca JSZip não carregada.');
                        }
                        const zip = new JSZip();

                        for (let i = 0; i < totalPageCount; i++) {
                            const pct = Math.round(10 + ((i + 1) / totalPageCount) * 80);
                            progressPercent.textContent = pct + '%';
                            progressFill.style.width = pct + '%';
                            progressStatus.textContent = `Extraindo página ${i + 1} de ${totalPageCount}...`;

                            const singleDoc = await PDFLib.PDFDocument.create();
                            const [copiedPage] = await singleDoc.copyPages(donorPdf, [i]);
                            singleDoc.addPage(copiedPage);

                            const pdfBytes = await singleDoc.save();
                            zip.file(`pagina-${i + 1}-${baseFileName}.pdf`, pdfBytes);
                        }

                        progressStatus.textContent = 'Compactando arquivo ZIP...';
                        const zipBlob = await zip.generateAsync({ type: 'blob' });
                        const zipUrl = URL.createObjectURL(zipBlob);
                        const a = document.createElement('a');
                        a.href = zipUrl;
                        a.download = `${baseFileName}-todas-paginas.zip`;
                        document.body.appendChild(a);
                        a.click();
                        document.body.removeChild(a);

                    } else if (currentMode === 'range' || currentMode === 'visual') {
                        let selectedPageNumbers = [];

                        if (currentMode === 'range') {
                            selectedPageNumbers = parseRange(rangeInput.value, totalPageCount);
                            if (selectedPageNumbers.length === 0) {
                                alert(`Informe intervalos válidos entre 1 e ${totalPageCount}.`);
                                resetProgress();
                                return;
                            }
                        } else {
                            selectedPageNumbers = Array.from(visualSelected).sort((a, b) => a - b);
                            if (selectedPageNumbers.length === 0) {
                                alert('Selecione pelo menos uma página no grid visual.');
                                resetProgress();
                                return;
                            }
                        }

                        const rangeAction = root.querySelector(`input[name="wzw_split_9a2a339c_3b88_4039_b7d9_c713e4582f67_range_action"]:checked`).value;

                        if (rangeAction === 'single' || currentMode === 'visual') {
                            // Mesclar em um único PDF
                            progressStatus.textContent = 'Gerando novo documento PDF unificado...';
                            progressPercent.textContent = '60%';
                            progressFill.style.width = '60%';

                            const newPdf = await PDFLib.PDFDocument.create();
                            const zeroIndexedPages = selectedPageNumbers.map(p => p - 1);
                            const copiedPages = await newPdf.copyPages(donorPdf, zeroIndexedPages);
                            copiedPages.forEach(p => newPdf.addPage(p));

                            const pdfBytes = await newPdf.save();
                            const blob = new Blob([pdfBytes], { type: 'application/pdf' });
                            const url = URL.createObjectURL(blob);
                            const a = document.createElement('a');
                            a.href = url;
                            a.download = `${baseFileName}.pdf`;
                            document.body.appendChild(a);
                            a.click();
                            document.body.removeChild(a);

                        } else {
                            // Salvar páginas em ZIP
                            if (typeof window.JSZip === 'undefined') {
                                throw new Error('Biblioteca JSZip não carregada.');
                            }
                            const zip = new JSZip();

                            for (let idx = 0; idx < selectedPageNumbers.length; idx++) {
                                const pageNum = selectedPageNumbers[idx];
                                const pct = Math.round(10 + ((idx + 1) / selectedPageNumbers.length) * 80);
                                progressPercent.textContent = pct + '%';
                                progressFill.style.width = pct + '%';
                                progressStatus.textContent = `Processando página ${pageNum}...`;

                                const singleDoc = await PDFLib.PDFDocument.create();
                                const [copiedPage] = await singleDoc.copyPages(donorPdf, [pageNum - 1]);
                                singleDoc.addPage(copiedPage);

                                const pdfBytes = await singleDoc.save();
                                zip.file(`pagina-${pageNum}-${baseFileName}.pdf`, pdfBytes);
                            }

                            progressStatus.textContent = 'Compactando pacote ZIP...';
                            const zipBlob = await zip.generateAsync({ type: 'blob' });
                            const zipUrl = URL.createObjectURL(zipBlob);
                            const a = document.createElement('a');
                            a.href = zipUrl;
                            a.download = `${baseFileName}-paginas-selecionadas.zip`;
                            document.body.appendChild(a);
                            a.click();
                            document.body.removeChild(a);
                        }
                    }

                    progressPercent.textContent = '100%';
                    progressFill.style.width = '100%';
                    progressStatus.textContent = 'Concluído com sucesso!';
                    setTimeout(() => {
                        resetProgress();
                    }, 2000);

                } catch (err) {
                    console.error('Erro na divisão:', err);
                    alert('Ocorreu um erro ao dividir o documento: ' + err.message);
                    resetProgress();
                }
            });

            function resetProgress() {
                btnExecute.disabled = false;
                progressBox.style.display = 'none';
                progressPercent.textContent = '0%';
                progressFill.style.width = '0%';
            }
        })();
        </script>
    </div>
    
<h2>3 Modos Inteligentes de Divisão de Arquivos PDF</h2>
<p>Diferentes necessidades exigem abordagens sob medida. Nossa ferramenta traz três opções flexíveis:</p>
<ul>
<li><strong>Divisão por Intervalos / Páginas:</strong> Especifique faixas personalizadas como <code>1-3, 5, 8-12</code> e escolha se deseja salvar o resultado em um único PDF ou em arquivos separados.</li>
<li><strong>Extrair Todas as Páginas em Pacote ZIP:</strong> Separa automaticamente todas as páginas do PDF em arquivos numerados individuais (<code>pagina-1.pdf</code>, <code>pagina-2.pdf</code>, etc.) e empacota tudo em um único download <code>.zip</code>.</li>
<li><strong>Seleção Visual no Grid:</strong> Clique nas miniaturas das páginas para marcar e desmarcar visualmente quais você deseja salvar.</li>
</ul>
<h2>Como Dividir e Extrair Páginas de um PDF</h2>
<ol>
<li>Carregue o arquivo PDF arrastando-o para a caixa de upload ou clicando no botão de seleção.</li>
<li>Escolha o modo de divisão desejado nas abas superiores.</li>
<li>Configure o intervalo de páginas ou clique nas páginas no painel visual.</li>
<li>Clique em <strong>&#8220;Dividir e Baixar Arquivos&#8221;</strong> para receber seu PDF extraído ou arquivo ZIP imediatamente.</li>
</ol>
<h2>Perguntas Frequentes sobre Dividir PDF (FAQ)</h2>
<h3>Como funciona o modo de seleção visual?</h3>
<p>O grid visual lista todas as páginas numeradas do seu documento. Cada clique seleciona ou desmarca a página, permitindo extrair exatamente as folhas de interesse sem precisar digitar números.</p>
<h3>O que fazer se eu precisar juntar páginas de PDFs diferentes?</h3>
<p>Você pode dividir os documentos necessários nesta página e em seguida utilizar o <a href="/juntar-pdf-online/">Juntar PDF Online</a> para compor o seu documento final consolidado.</p>
<h3>Onde explorar mais ferramentas gratuitas?</h3>
<p>Acesse o <a href="/hub-de-pdfs/">Hub de Ferramentas de PDF</a> para descobrir recursos para documentos, ou confira nosso catálogo de <a href="/ferramentas-de-imagens/">Ferramentas de Imagens</a>.</p>
<p><script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Como extrair páginas não sequenciais como 1, 4 e 7 a 10?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Basta digitar as páginas separadas por vírgula e usar hífen para intervalos no campo de texto (ex: 1, 4, 7-10), ou clicar diretamente nas miniaturas no Modo Visual."
      }
    },
    {
      "@type": "Question",
      "name": "Posso baixar todas as páginas desmembradas de uma vez?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sim. Com a opção 'Extrair Todas as Páginas (ZIP)', a ferramenta gera automaticamente um pacote compactado .zip contendo cada página individualmente como um novo arquivo PDF."
      }
    },
    {
      "@type": "Question",
      "name": "Existe risco de perda de formatação ou texto cortado?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Nenhum. A extração é realizada com precisão binária direta nas árvores de objetos do PDF, preservando fontes embutidas, imagens e camadas intactas."
      }
    }
  ]
}
</script></p>
<p>O post <a href="https://webzoneware.com/web-ferramentas/pdf/dividir-pdf-online/">Dividir PDF Online Grátis — Separar Páginas e ZIP | 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/dividir-pdf-online/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
