<?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 colocar número de página pdf - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/colocar-numero-de-pagina-pdf/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/colocar-numero-de-pagina-pdf/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Thu, 22 Oct 2026 17:23:51 +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 colocar número de página pdf - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/colocar-numero-de-pagina-pdf/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Numerar Páginas de PDF Online Grátis – Rodapé e Cabeçalho &#124; Web-ZoneWare</title>
		<link>https://webzoneware.com/web-ferramentas/pdf/numerar-paginas-pdf/</link>
					<comments>https://webzoneware.com/web-ferramentas/pdf/numerar-paginas-pdf/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Sat, 17 Oct 2026 21:22:57 +0000</pubDate>
				<category><![CDATA[PDF & Documentos]]></category>
		<category><![CDATA[colocar número de página pdf]]></category>
		<category><![CDATA[formato página x de y]]></category>
		<category><![CDATA[inserir numeração pdf]]></category>
		<category><![CDATA[paginar pdf online]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=29009</guid>

					<description><![CDATA[<p>A organização de dossiês jurídicos, monografias, laudos periciais e relatórios executivos exige uma padronização rigorosa de paginação. Ao utilizar nossa ferramenta para numerar páginas de pdf, você adiciona cabeçalhos e rodapés milimetricamente alinhados, garantindo legibilidade perfeita e localização rápida de referências. Projetada para respeitar as exigências de formatação editorial estabelecidas pela Associação Brasileira de Normas [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-ferramentas/pdf/numerar-paginas-pdf/">Numerar Páginas de PDF Online Grátis – Rodapé e Cabeçalho | Web-ZoneWare</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>A organização de dossiês jurídicos, monografias, laudos periciais e relatórios executivos exige uma padronização rigorosa de paginação. Ao utilizar nossa ferramenta para <strong>numerar páginas de pdf</strong>, você adiciona cabeçalhos e rodapés milimetricamente alinhados, garantindo legibilidade perfeita e localização rápida de referências.</p>
<p>Projetada para respeitar as exigências de formatação editorial estabelecidas pela <a href="https://www.abnt.org.br/" target="_blank" rel="noopener noreferrer">Associação Brasileira de Normas Técnicas (ABNT NBR 14724)</a>, a ferramenta permite iniciar a contagem a partir de folhas específicas, preservando capas e índices sem marcações indevidas. Todo o cálculo tipográfico ocorre localmente no seu navegador web com velocidade instantânea.</p>
    <div id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95" class="wzw-tool-container wzw-pdf-suite-wrapper">
        <style>
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 {
                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_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 * {
                box-sizing: border-box;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .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_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-tool-title {
                margin: 0;
                font-size: 1.35rem;
                font-weight: 800;
                color: #10b981;
                display: flex;
                align-items: center;
                gap: 10px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-badge-client {
                background: rgba(16, 185, 129, 0.15);
                color: #6ee7b7;
                border: 1px solid rgba(16, 185, 129, 0.35);
                padding: 4px 10px;
                border-radius: 20px;
                font-size: 11px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: 0.5px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-dropzone {
                border: 2px dashed #10b981;
                background: rgba(16, 185, 129, 0.05);
                border-radius: 14px;
                padding: 44px 20px;
                text-align: center;
                cursor: pointer;
                transition: all 0.25s ease;
                margin-bottom: 20px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-dropzone:hover,
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-dropzone.drag-over {
                background: rgba(16, 185, 129, 0.12);
                border-color: #6ee7b7;
                transform: translateY(-2px);
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-drop-icon {
                font-size: 48px;
                margin-bottom: 12px;
                display: block;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-drop-title {
                font-size: 1.15rem;
                font-weight: 700;
                color: #f1f5f9;
                margin: 0 0 6px 0;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-drop-sub {
                font-size: 13px;
                color: #94a3b8;
                margin: 0;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-workspace {
                display: none;
                background: rgba(15, 23, 42, 0.6);
                border: 1px solid #334155;
                border-radius: 14px;
                padding: 20px;
            }

            /* SUMMARY */
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .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;
                flex-wrap: wrap;
                gap: 12px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-file-meta {
                display: flex;
                align-items: center;
                gap: 12px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-file-icon {
                font-size: 28px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-file-details strong {
                display: block;
                font-size: 14px;
                color: #f8fafc;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-file-details span {
                font-size: 12px;
                color: #94a3b8;
            }

            /* SETTINGS GRID */
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-settings-card {
                background: #1e293b;
                border: 1px solid #475569;
                border-radius: 12px;
                padding: 20px;
                margin-bottom: 20px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-grid-fields {
                display: grid;
                grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
                gap: 16px;
                margin-bottom: 18px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-field-group {
                display: flex;
                flex-direction: column;
                gap: 6px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-field-label {
                font-size: 12px;
                font-weight: 700;
                color: #cbd5e1;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-select,
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-input-num {
                background: #0f172a;
                border: 1px solid #475569;
                color: #f8fafc;
                padding: 10px 12px;
                border-radius: 6px;
                font-size: 13px;
                outline: none;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-select:focus,
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-input-num:focus {
                border-color: #10b981;
            }

            /* POSITION SELECTOR (VISUAL BOX) */
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-pos-picker {
                display: grid;
                grid-template-columns: repeat(3, 1fr);
                gap: 8px;
                background: #0f172a;
                border: 1px solid #334155;
                padding: 12px;
                border-radius: 8px;
                max-width: 320px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-pos-btn {
                background: #1e293b;
                border: 1px solid #475569;
                color: #94a3b8;
                padding: 8px 4px;
                font-size: 11px;
                font-weight: 700;
                border-radius: 4px;
                cursor: pointer;
                text-align: center;
                transition: all 0.2s ease;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-pos-btn:hover {
                background: #334155;
                color: #f8fafc;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-pos-btn.active {
                background: #10b981;
                border-color: #10b981;
                color: #0f172a;
            }

            /* BOTTOM BAR */
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-bottom-bar {
                display: flex;
                align-items: center;
                justify-content: space-between;
                flex-wrap: wrap;
                gap: 16px;
                padding-top: 16px;
                border-top: 1px solid #334155;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-output-group {
                display: flex;
                align-items: center;
                gap: 8px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-output-group label {
                font-size: 13px;
                color: #94a3b8;
                font-weight: 600;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-output-name {
                background: #1e293b;
                border: 1px solid #475569;
                color: #f8fafc;
                padding: 8px 12px;
                border-radius: 6px;
                font-size: 13px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-btn-save {
                background: linear-gradient(135deg, #10b981 0%, #059669 100%);
                color: #ffffff;
                border: none;
                padding: 12px 24px;
                border-radius: 8px;
                font-size: 14px;
                font-weight: 800;
                cursor: pointer;
                transition: all 0.25s ease;
                box-shadow: 0 4px 15px rgba(16, 185, 129, 0.35);
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-btn-save:hover:not(:disabled) {
                background: linear-gradient(135deg, #34d399 0%, #10b981 100%);
                transform: translateY(-2px);
                box-shadow: 0 6px 20px rgba(16, 185, 129, 0.5);
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-btn-save:disabled {
                opacity: 0.5;
                cursor: not-allowed;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-btn-reset {
                background: transparent;
                border: 1px solid #64748b;
                color: #cbd5e1;
                padding: 12px 18px;
                border-radius: 8px;
                font-size: 13px;
                cursor: pointer;
                transition: all 0.2s ease;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-btn-reset:hover {
                background: #334155;
                color: #fff;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-progress-box {
                display: none;
                margin-top: 16px;
                background: #0f172a;
                border-radius: 8px;
                padding: 14px;
                border: 1px solid #334155;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-progress-bar {
                height: 8px;
                background: #334155;
                border-radius: 4px;
                overflow: hidden;
                margin-bottom: 8px;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-progress-fill {
                height: 100%;
                width: 0%;
                background: linear-gradient(90deg, #10b981, #34d399);
                transition: width 0.2s ease;
            }
            #wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95 .wzw-progress-status {
                display: flex;
                justify-content: space-between;
                font-size: 12px;
                color: #94a3b8;
            }
        </style>

        <div class="wzw-tool-header">
            <h2 class="wzw-tool-title">
                <span>🔢</span> Inserir Números de Página em PDF
            </h2>
            <div class="wzw-badge-client">
                ⚡ 100% Client-Side • Paginação Profissional
            </div>
        </div>

        <!-- DROPZONE -->
        <div class="wzw-dropzone" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_dropzone">
            <span class="wzw-drop-icon">📑</span>
            <p class="wzw-drop-title">Arraste seu PDF aqui ou clique para selecionar</p>
            <p class="wzw-drop-sub">Insira números de página no cabeçalho ou rodapé em diversos formatos ("Página X de Y", "X", etc.) com alinhamento perfeito.</p>
            <input type="file" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_file_input" accept="application/pdf" style="display: none;" />
        </div>

        <!-- WORKSPACE -->
        <div class="wzw-workspace" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_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_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_filename">documento.pdf</strong>
                        <span id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_fileinfo">0 KB • 0 páginas</span>
                    </div>
                </div>
                <div style="font-size:12px;color:#34d399;font-weight:700;">
                    ✓ Arquivo pronto para paginação
                </div>
            </div>

            <!-- SETTINGS -->
            <div class="wzw-settings-card">
                <div class="wzw-grid-fields">
                    <!-- FORMATO -->
                    <div class="wzw-field-group">
                        <label class="wzw-field-label">Formato da Numeração:</label>
                        <select id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_format" class="wzw-select">
                            <option value="p_of_tot" selected>Página {n} de {total}</option>
                            <option value="n_of_tot">{n} / {total}</option>
                            <option value="p_n">Página {n}</option>
                            <option value="just_n">{n}</option>
                            <option value="dash_n">- {n} -</option>
                        </select>
                    </div>

                    <!-- PÁGINAS A INCLUIR -->
                    <div class="wzw-field-group">
                        <label class="wzw-field-label">Aplicar em:</label>
                        <select id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_scope" class="wzw-select">
                            <option value="all" selected>Todas as Páginas</option>
                            <option value="skip_first">Ignorar Capa (Começar na Página 2)</option>
                        </select>
                    </div>

                    <!-- COMEÇAR EM -->
                    <div class="wzw-field-group">
                        <label class="wzw-field-label">Iniciar Contagem Em:</label>
                        <input type="number" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_start_num" class="wzw-input-num" value="1" min="1" max="9999" />
                    </div>

                    <!-- TAMANHO DA FONTE -->
                    <div class="wzw-field-group">
                        <label class="wzw-field-label">Tamanho da Fonte (pt):</label>
                        <select id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_font_size" class="wzw-select">
                            <option value="9">9 pt (Discreto / Pequeno)</option>
                            <option value="11" selected>11 pt (Padrão ABNT / Office)</option>
                            <option value="14">14 pt (Grande / Destacado)</option>
                        </select>
                    </div>

                    <!-- COR DO TEXTO -->
                    <div class="wzw-field-group">
                        <label class="wzw-field-label">Cor dos Números:</label>
                        <select id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_color" class="wzw-select">
                            <option value="gray" selected>Cinza Discreto (#64748b)</option>
                            <option value="black">Preto (#0f172a)</option>
                            <option value="blue">Azul (#0284c7)</option>
                        </select>
                    </div>
                </div>

                <!-- SELETOR VISUAL DE POSIÇÃO -->
                <div class="wzw-field-group">
                    <label class="wzw-field-label">Posição na Folha (Clique para Escolher):</label>
                    <div class="wzw-pos-picker">
                        <button type="button" class="wzw-pos-btn" data-pos="top_left">Topo Esq.</button>
                        <button type="button" class="wzw-pos-btn" data-pos="top_center">Topo Centro</button>
                        <button type="button" class="wzw-pos-btn" data-pos="top_right">Topo Dir.</button>
                        <button type="button" class="wzw-pos-btn" data-pos="bottom_left">Rodapé Esq.</button>
                        <button type="button" class="wzw-pos-btn" data-pos="bottom_center">Rodapé Centro</button>
                        <button type="button" class="wzw-pos-btn active" data-pos="bottom_right">Rodapé Dir.</button>
                    </div>
                </div>
            </div>

            <!-- BOTTOM BAR -->
            <div class="wzw-bottom-bar">
                <div class="wzw-output-group">
                    <label for="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_output_name">Nome de saída:</label>
                    <input type="text" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_output_name" class="wzw-output-name" value="documento-numerado" />
                </div>
                <div style="display:flex; gap:10px;">
                    <button type="button" class="wzw-btn-reset" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_btn_reset">Trocar PDF</button>
                    <button type="button" class="wzw-btn-save" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_btn_save">🔢 Numerar e Baixar PDF</button>
                </div>
            </div>

            <!-- PROGRESS BOX -->
            <div class="wzw-progress-box" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_progress">
                <div class="wzw-progress-bar">
                    <div class="wzw-progress-fill" id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_progress_fill"></div>
                </div>
                <div class="wzw-progress-status">
                    <span id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_status_label">Numerando páginas...</span>
                    <span id="wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_progress_percent">0%</span>
                </div>
            </div>
        </div>

        <script>
        (function() {
            var dropzone = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_dropzone');
            var fileInput = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_file_input');
            var workspace = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_workspace');
            var filenameElem = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_filename');
            var fileinfoElem = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_fileinfo');
            var outputNameInput = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_output_name');
            var btnSave = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_btn_save');
            var btnReset = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_btn_reset');

            var formatSelect = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_format');
            var scopeSelect = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_scope');
            var startNumInput = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_start_num');
            var fontSizeSelect = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_font_size');
            var colorSelect = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_color');

            var progressBox = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_progress');
            var progressFill = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_progress_fill');
            var statusLabel = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_status_label');
            var progressPercent = document.getElementById('wzw_numpages_4d7d8c65_9d30_48d3_918a_e7dc4a25fe95_progress_percent');

            var posBtns = workspace.querySelectorAll('.wzw-pos-btn');
            var currentPos = 'bottom_right';

            posBtns.forEach(function(b) {
                b.addEventListener('click', function() {
                    posBtns.forEach(function(x) { x.classList.remove('active'); });
                    b.classList.add('active');
                    currentPos = b.getAttribute('data-pos');
                });
            });

            var currentFile = null;
            var currentFileName = '';
            var totalPagesCount = 0;

            dropzone.addEventListener('click', function() { fileInput.click(); });
            dropzone.addEventListener('dragover', function(e) { e.preventDefault(); dropzone.classList.add('drag-over'); });
            dropzone.addEventListener('dragleave', function() { dropzone.classList.remove('drag-over'); });
            dropzone.addEventListener('drop', function(e) {
                e.preventDefault();
                dropzone.classList.remove('drag-over');
                if (e.dataTransfer.files && e.dataTransfer.files[0]) handleFile(e.dataTransfer.files[0]);
            });

            fileInput.addEventListener('change', function(e) {
                if (e.target.files && e.target.files[0]) handleFile(e.target.files[0]);
            });

            btnReset.addEventListener('click', function() {
                currentFile = null;
                workspace.style.display = 'none';
                dropzone.style.display = 'block';
                fileInput.value = '';
            });

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

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

                currentFile = file;
                currentFileName = file.name.replace(/\.[^/.]+$/, '');
                filenameElem.textContent = file.name;
                outputNameInput.value = currentFileName + '-numerado';

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

                try {
                    var buffer = await file.arrayBuffer();
                    var { PDFDocument } = window.PDFLib;
                    var pdf = await PDFDocument.load(buffer, { ignoreEncryption: true });
                    totalPagesCount = pdf.getPageCount();
                    fileinfoElem.textContent = formatBytes(file.size) + ' • ' + totalPagesCount + ' página(s)';
                } catch (err) {
                    console.error('Erro ao ler PDF:', err);
                    alert('Erro ao carregar o arquivo PDF: ' + err.message);
                    btnReset.click();
                }
            }

            btnSave.addEventListener('click', async function() {
                if (!currentFile) return;

                btnSave.disabled = true;
                btnSave.textContent = '⏳ Numerando páginas...';
                progressBox.style.display = 'block';
                progressFill.style.width = '20%';
                statusLabel.textContent = 'Carregando documento...';
                progressPercent.textContent = '20%';

                try {
                    var { PDFDocument, rgb, StandardFonts } = window.PDFLib;
                    var freshBuffer = await currentFile.arrayBuffer();
                    var pdfDoc = await PDFDocument.load(freshBuffer);
                    var pages = pdfDoc.getPages();
                    var numPages = pages.length;

                    var font = await pdfDoc.embedFont(StandardFonts.Helvetica);
                    var fontSize = parseInt(fontSizeSelect.value) || 11;

                    var colorObj = rgb(0.39, 0.45, 0.55); // gray #64748b
                    if (colorSelect.value === 'black') colorObj = rgb(0.06, 0.09, 0.16);
                    else if (colorSelect.value === 'blue') colorObj = rgb(0.01, 0.52, 0.78);

                    var startNum = parseInt(startNumInput.value) || 1;
                    var skipFirst = (scopeSelect.value === 'skip_first');
                    var effectiveTotal = skipFirst ? (numPages - 1) : numPages;

                    var marginH = 36; // 36pt = 0.5 polegada
                    var marginV = 28;

                    var count = startNum;
                    for (var i = 0; i < numPages; i++) {
                        if (skipFirst && i === 0) continue;

                        var page = pages[i];
                        var { width, height } = page.getSize();

                        // Monta o texto formatado
                        var txt = '';
                        var fType = formatSelect.value;
                        if (fType === 'p_of_tot') txt = 'Página ' + count + ' de ' + (effectiveTotal + startNum - 1);
                        else if (fType === 'n_of_tot') txt = count + ' / ' + (effectiveTotal + startNum - 1);
                        else if (fType === 'p_n') txt = 'Página ' + count;
                        else if (fType === 'dash_n') txt = '- ' + count + ' -';
                        else txt = '' + count;

                        var textWidth = font.widthOfTextAtSize(txt, fontSize);

                        // Determina X e Y conforme a posição
                        var x = 0;
                        var y = 0;

                        if (currentPos.includes('left')) {
                            x = marginH;
                        } else if (currentPos.includes('center')) {
                            x = (width - textWidth) / 2;
                        } else {
                            x = width - marginH - textWidth;
                        }

                        if (currentPos.startsWith('top')) {
                            y = height - marginV;
                        } else {
                            y = marginV;
                        }

                        page.drawText(txt, {
                            x: x,
                            y: y,
                            size: fontSize,
                            font: font,
                            color: colorObj
                        });

                        count++;

                        var pct = 20 + Math.round(((i + 1) / numPages) * 70);
                        progressFill.style.width = pct + '%';
                        progressPercent.textContent = pct + '%';
                        statusLabel.textContent = 'Numerando página ' + (i + 1) + ' de ' + numPages + '...';
                    }

                    progressFill.style.width = '95%';
                    progressPercent.textContent = '95%';
                    statusLabel.textContent = 'Finalizando arquivo PDF...';

                    var pdfBytes = await pdfDoc.save();
                    var blob = new Blob([pdfBytes], { type: 'application/pdf' });
                    var url = URL.createObjectURL(blob);

                    var a = document.createElement('a');
                    a.href = url;
                    a.download = (outputNameInput.value.trim() || currentFileName + '-numerado') + '.pdf';
                    document.body.appendChild(a);
                    a.click();
                    document.body.removeChild(a);
                    URL.revokeObjectURL(url);

                    progressFill.style.width = '100%';
                    progressPercent.textContent = '100%';
                    statusLabel.textContent = '✓ Numeração aplicada com sucesso!';

                    setTimeout(function() {
                        progressBox.style.display = 'none';
                        btnSave.disabled = false;
                        btnSave.textContent = '🔢 Numerar e Baixar PDF';
                    }, 2000);

                } catch (err) {
                    console.error('Erro ao numerar PDF:', err);
                    alert('Erro ao processar PDF: ' + err.message);
                    btnSave.disabled = false;
                    btnSave.textContent = '🔢 Numerar e Baixar PDF';
                    progressBox.style.display = 'none';
                }
            });
        })();
        </script>
    </div>
    
<h2>Vantagens da Paginação Precisa de Documentos Digitais</h2>
<p>Padronizar seus arquivos traz confiabilidade profissional imediata a qualquer apresentação técnica:</p>
<ul>
<li><strong>Alinhamento Flexível:</strong> Posicione os números no rodapé ou no cabeçalho, escolhendo entre alinhamento à esquerda, centralizado ou à direita.</li>
<li><strong>Controle de Início e Intervalo:</strong> Pule a primeira página com um clique para respeitar a capa do projeto e defina valores de início personalizados.</li>
<li><strong>Formatos Diversificados:</strong> Selecione entre algarismos simples (ex: <em>1, 2, 3</em>), fórmulas compostas (ex: <em>Página 1 de 20</em>) ou travessões estilizados.</li>
<li><strong>Integração com a Esteira Editorial:</strong> Caso as folhas do seu arquivo estejam desordenadas antes da numeração, organize-as previamente com o nosso <a href="/organizar-pdf-reordenar/">organizador e reordenador de PDF</a> e conheça outros recursos indispensáveis no <a href="/hub-de-pdfs/">Hub Central de Ferramentas de PDF</a>.</li>
</ul>
<h2>Como Inserir Números de Página Passo a Passo</h2>
<ol>
<li><strong>Carregue seu PDF:</strong> Selecione o arquivo em seu computador ou dispositivo móvel e insira-o na caixa de upload.</li>
<li><strong>Defina o Formato e Posição:</strong> Escolha se prefere a numeração no rodapé inferior direito, centralizado ou no cabeçalho superior, escolhendo a máscara de exibição desejada.</li>
<li><strong>Configure a Folha Inicial:</strong> Indique se a capa deve ser desconsiderada e a partir de qual página a exibição numérica deve começar.</li>
<li><strong>Gere o Arquivo Paginado:</strong> Clique no botão de processamento para baixar o PDF com as legendas numéricas integradas permanentemente.</li>
</ol>
<h2>Perguntas Frequentes sobre Paginação de PDF (FAQ)</h2>
<h3>A ferramenta altera o tamanho da página ou as margens?</h3>
<p>Não. A geometria do arquivo segue rigorosamente a especificação <a href="https://www.iso.org/standard/51502.html" target="_blank" rel="noopener noreferrer">ISO 32000-1 para caixas de mídia (MediaBox)</a>, apenas carimbando as coordenadas escolhidas sem alterar as proporções das margens originais.</p>
<h3>Posso escolher o tamanho e a cor da fonte dos números?</h3>
<p>Sim. É possível ajustar o tamanho dos pontos tipográficos e selecionar tons neutros (como preto ou cinza escuro corporativo) para que a numeração se harmonize com o layout da sua publicação.</p>
<h3>Como proceder se o documento precisar de carimbo de identificação institucional?</h3>
<p>Você pode complementar a paginação aplicando um carimbo oficial ou logotipo utilizando a nossa aplicação de <a href="/marca-dagua-pdf/">inserir marca d&#8217;água em PDF</a>.</p>
<p><script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Posso escolher o formato de numeração Página X de Y?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sim. Você pode optar por números simples (1, 2, 3), sufixos tradicionais ou o padrão completo 'Página X de Y', ideal para relatórios técnicos e acadêmicos."
      }
    },
    {
      "@type": "Question",
      "name": "É possível omitir a numeração na capa do documento?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sim. A ferramenta permite definir a partir de qual página a numeração visual deve ser exibida, mantendo a folha de rosto e sumários limpos."
      }
    },
    {
      "@type": "Question",
      "name": "A numeração desconfigura a diagramação original?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Não. As legendas numéricas são inseridas com margens seguras no cabeçalho ou rodapé, sem sobrepor os blocos de texto pré-existentes."
      }
    }
  ]
}
</script></p>
<p>O post <a href="https://webzoneware.com/web-ferramentas/pdf/numerar-paginas-pdf/">Numerar Páginas de PDF Online Grátis – Rodapé e Cabeçalho | 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/numerar-paginas-pdf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
