{"id":4,"date":"2026-08-31T16:57:49","date_gmt":"2026-08-31T16:57:49","guid":{"rendered":"https:\/\/bsolution.me\/fr\/pdf-splitter\/"},"modified":"2026-09-22T10:38:15","modified_gmt":"2026-09-22T10:38:15","slug":"pdf-splitter","status":"publish","type":"page","link":"https:\/\/bsolution.me\/fr\/pdf-splitter\/","title":{"rendered":"Diviseur de fichiers PDF &#8211; Division de PDF en pages et fichiers s\u00e9par\u00e9s"},"content":{"rendered":"\n\n<title>Diviseur de fichiers PDF &#8211; Division de PDF en pages et fichiers s\u00e9par\u00e9s<\/title>\n<meta name=\"description\" content=\"Divisez un fichier PDF en pages individuelles ou en groupes de pages gratuitement, directement dans votre navigateur - sans t\u00e9l\u00e9chargement sur le serveur, sans inscription. Pr\u00e9visualisez chaque page et choisissez exactement ce que vous souhaitez t\u00e9l\u00e9charger.\">\n\n<div id=\"bnet-tool-pdf-splitter\">\n<style>\n  \/* ========================\n     CSS VARIABLES & RESET\n  ======================== *\/\n  #bnet-tool-pdf-splitter {\n    --bg-color: #f8fafc;\n    --card-bg: #ffffff;\n    --border-color: #e2e8f0;\n    --text-color: #1a1a1a;\n    --text-muted: #64748b;\n    --accent: #6366f1;\n    --accent-hover: #4f46e5;\n    --accent-light: rgba(99,102,241,0.1);\n    --danger: #ef4444;\n    --success: #22c55e;\n    --warning: #f59e0b;\n    --shadow: 0 4px 24px rgba(0,0,0,0.07);\n    --radius: 16px;\n    font-family: 'Heebo', 'Arial', sans-serif;\n    direction: ltr;\n    transition: color 0.3s;\n  }\n\n  body.dark-theme {\n    background-color: #0f172a !important;\n    color: #f1f5f9 !important;\n  }\n\n  body.dark-theme #bnet-tool-pdf-splitter {\n    --bg-color: #0f172a;\n    --card-bg: #1e293b;\n    --border-color: #334155;\n    --text-color: #f1f5f9;\n    --text-muted: #94a3b8;\n    --accent: #818cf8;\n    --accent-hover: #6366f1;\n    --accent-light: rgba(129,140,248,0.15);\n    --shadow: 0 4px 24px rgba(0,0,0,0.3);\n  }\n\n  #bnet-tool-pdf-splitter * {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0;\n  }\n\n  #bnet-tool-pdf-splitter .page-wrapper {\n    max-width: 1100px;\n    margin: 0 auto;\n    padding: 24px 16px 80px;\n    background: var(--bg-color);\n    min-height: 60vh;\n    transition: background 0.3s;\n  }\n\n  \/* ========================\n     HEADER\n  ======================== *\/\n  #bnet-tool-pdf-splitter header {\n    text-align: center;\n    margin-bottom: 32px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 12px;\n  }\n\n  #bnet-tool-pdf-splitter h1.main-title {\n    margin: 0;\n    font-size: clamp(2rem, 3vw, 2.8rem);\n    font-weight: 900;\n    color: var(--text-color);\n    letter-spacing: -0.02em;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 12px;\n  }\n\n  #bnet-tool-pdf-splitter .subtitle {\n    margin: 0;\n    color: var(--text-muted);\n    font-size: 1.1rem;\n    line-height: 1.6;\n    max-width: 650px;\n  }\n\n  #bnet-tool-pdf-splitter .free-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    padding: 6px 14px;\n    border-radius: 999px;\n    background: var(--card-bg);\n    border: 1px solid var(--border-color);\n    color: var(--text-color);\n    font-size: 0.9rem;\n    font-weight: 500;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n    margin-top: 4px;\n  }\n\n  #bnet-tool-pdf-splitter .free-dot {\n    width: 10px;\n    height: 10px;\n    border-radius: 50%;\n    background: #22c55e;\n    box-shadow: 0 0 0 4px rgba(34,197,94,0.2);\n  }\n\n  \/* ========================\n     THEME TOGGLE\n  ======================== *\/\n  #bnet-tool-pdf-splitter .theme-toggle-wrap {\n    display: flex;\n    justify-content: flex-start;\n    margin-bottom: 8px;\n  }\n\n  #bnet-tool-pdf-splitter .theme-btn {\n    background: var(--card-bg);\n    border: 1px solid var(--border-color);\n    color: var(--text-muted);\n    padding: 6px 14px;\n    border-radius: 999px;\n    cursor: pointer;\n    font-size: 0.85rem;\n    font-family: inherit;\n    transition: all 0.2s;\n  }\n\n  #bnet-tool-pdf-splitter .theme-btn:hover {\n    background: var(--accent-light);\n    color: var(--accent);\n    border-color: var(--accent);\n  }\n\n  \/* ========================\n     CARDS\n  ======================== *\/\n  #bnet-tool-pdf-splitter .tool-card,\n  #bnet-tool-pdf-splitter .seo-card {\n    background: var(--card-bg);\n    border: 1px solid var(--border-color);\n    border-radius: var(--radius);\n    padding: 28px 24px;\n    box-shadow: var(--shadow);\n    margin-bottom: 28px;\n    width: 100%;\n  }\n\n  \/* ========================\n     DROP ZONE\n  ======================== *\/\n  #bnet-tool-pdf-splitter .drop-zone {\n    position: relative;\n    border: 2px dashed var(--border-color);\n    border-radius: 14px;\n    padding: 48px 24px;\n    text-align: center;\n    cursor: pointer;\n    transition: all 0.25s;\n    background: var(--accent-light);\n    user-select: none;\n    -webkit-user-select: none;\n    overflow: hidden;\n  }\n\n  #bnet-tool-pdf-splitter #pdf-splitter-file-input {\n    width: 0.1px;\n    height: 0.1px;\n    opacity: 0;\n    overflow: hidden;\n    position: absolute;\n    z-index: -1;\n  }\n\n  #bnet-tool-pdf-splitter .drop-zone:hover,\n  #bnet-tool-pdf-splitter .drop-zone.drag-over {\n    border-color: var(--accent);\n    background: var(--accent-light);\n  }\n\n  #bnet-tool-pdf-splitter .drop-zone-icon {\n    font-size: 3rem;\n    margin-bottom: 12px;\n    display: block;\n  }\n\n  #bnet-tool-pdf-splitter .drop-zone h2 {\n    font-size: 1.3rem;\n    font-weight: 700;\n    color: var(--text-color);\n    margin-bottom: 6px;\n  }\n\n  #bnet-tool-pdf-splitter .drop-zone p {\n    color: var(--text-muted);\n    font-size: 0.95rem;\n    margin-bottom: 18px;\n  }\n\n  #bnet-tool-pdf-splitter .btn-upload {\n    display: inline-flex;\n    align-items: center;\n    gap: 8px;\n    background: var(--accent);\n    color: #fff;\n    border: none;\n    padding: 12px 24px;\n    border-radius: 10px;\n    font-size: 1rem;\n    font-weight: 600;\n    cursor: pointer;\n    font-family: inherit;\n    transition: background 0.2s, transform 0.15s;\n  }\n\n  #bnet-tool-pdf-splitter .btn-upload:hover {\n    background: var(--accent-hover);\n    transform: translateY(-1px);\n  }\n\n  #bnet-tool-pdf-splitter #pdf-splitter-file-input {\n    display: none;\n  }\n\n  \/* ========================\n     LOADING STATE\n  ======================== *\/\n  #bnet-tool-pdf-splitter .loading-area {\n    text-align: center;\n    padding: 40px 0;\n    display: none;\n  }\n\n  #bnet-tool-pdf-splitter .spinner {\n    width: 48px;\n    height: 48px;\n    border: 5px solid var(--border-color);\n    border-top-color: var(--accent);\n    border-radius: 50%;\n    animation: spin 0.8s linear infinite;\n    margin: 0 auto 16px;\n  }\n\n  @keyframes spin { to { transform: rotate(360deg); } }\n\n  #bnet-tool-pdf-splitter .loading-area p {\n    color: var(--text-muted);\n    font-size: 1rem;\n  }\n\n  \/* ========================\n     TOOLBAR (after load)\n  ======================== *\/\n  #bnet-tool-pdf-splitter .toolbar {\n    display: none;\n    flex-wrap: wrap;\n    gap: 10px;\n    align-items: center;\n    justify-content: space-between;\n    margin-bottom: 20px;\n    padding: 14px 16px;\n    background: var(--accent-light);\n    border-radius: 12px;\n    border: 1px solid var(--border-color);\n  }\n\n  #bnet-tool-pdf-splitter .toolbar-info {\n    font-size: 0.95rem;\n    color: var(--text-color);\n    font-weight: 600;\n  }\n\n  #bnet-tool-pdf-splitter .toolbar-info span {\n    color: var(--accent);\n  }\n\n  #bnet-tool-pdf-splitter .toolbar-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  #bnet-tool-pdf-splitter .btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 9px 16px;\n    border-radius: 9px;\n    border: none;\n    font-size: 0.9rem;\n    font-weight: 600;\n    cursor: pointer;\n    font-family: inherit;\n    transition: all 0.2s;\n    white-space: nowrap;\n  }\n\n  #bnet-tool-pdf-splitter .btn-primary {\n    background: var(--accent);\n    color: #fff;\n  }\n  #bnet-tool-pdf-splitter .btn-primary:hover {\n    background: var(--accent-hover);\n    transform: translateY(-1px);\n  }\n  #bnet-tool-pdf-splitter .btn-secondary {\n    background: var(--card-bg);\n    color: var(--text-color);\n    border: 1px solid var(--border-color);\n  }\n  #bnet-tool-pdf-splitter .btn-secondary:hover {\n    border-color: var(--accent);\n    color: var(--accent);\n  }\n  #bnet-tool-pdf-splitter .btn-success {\n    background: #22c55e;\n    color: #fff;\n  }\n  #bnet-tool-pdf-splitter .btn-success:hover {\n    background: #16a34a;\n    transform: translateY(-1px);\n  }\n  #bnet-tool-pdf-splitter .btn-danger {\n    background: var(--danger);\n    color: #fff;\n  }\n  #bnet-tool-pdf-splitter .btn-danger:hover {\n    background: #dc2626;\n  }\n  #bnet-tool-pdf-splitter .btn:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n    transform: none !important;\n  }\n\n  \/* ========================\n     GROUP LEGEND\n  ======================== *\/\n  #bnet-tool-pdf-splitter .group-legend {\n    display: none;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin-bottom: 16px;\n    align-items: center;\n  }\n\n  #bnet-tool-pdf-splitter .group-legend-label {\n    font-size: 0.85rem;\n    color: var(--text-muted);\n    font-weight: 600;\n  }\n\n  #bnet-tool-pdf-splitter .group-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 4px 10px;\n    border-radius: 999px;\n    font-size: 0.82rem;\n    font-weight: 600;\n    color: #fff;\n    cursor: pointer;\n    transition: opacity 0.2s, transform 0.15s;\n  }\n\n  #bnet-tool-pdf-splitter .group-chip:hover {\n    opacity: 0.85;\n    transform: scale(1.04);\n  }\n\n  #bnet-tool-pdf-splitter .group-chip .chip-remove {\n    background: rgba(255,255,255,0.3);\n    border: none;\n    border-radius: 50%;\n    width: 16px;\n    height: 16px;\n    font-size: 10px;\n    cursor: pointer;\n    color: #fff;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    line-height: 1;\n  }\n\n  \/* ========================\n     PAGE GRID\n  ======================== *\/\n  #bnet-tool-pdf-splitter .pages-grid {\n    display: none;\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));\n    gap: 16px;\n    margin-top: 4px;\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb {\n    border: 2px solid var(--border-color);\n    border-radius: 12px;\n    overflow: hidden;\n    cursor: pointer;\n    transition: all 0.2s;\n    position: relative;\n    background: var(--card-bg);\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb:hover {\n    border-color: var(--accent);\n    box-shadow: 0 4px 16px rgba(99,102,241,0.18);\n    transform: translateY(-2px);\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb.selected {\n    border-color: var(--accent);\n    box-shadow: 0 0 0 3px var(--accent-light), 0 4px 16px rgba(99,102,241,0.18);\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb.in-group {\n    border-width: 3px;\n  }\n\n  #bnet-tool-pdf-splitter .page-canvas-wrap {\n    position: relative;\n    width: 100%;\n    aspect-ratio: 0.707;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background: #f1f5f9;\n    overflow: hidden;\n  }\n\n  #bnet-tool-pdf-splitter.dark-mode .page-canvas-wrap {\n    background: #1e293b;\n  }\n\n  #bnet-tool-pdf-splitter .page-canvas-wrap canvas {\n    width: 100%;\n    height: 100%;\n    object-fit: contain;\n    display: block;\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb-overlay {\n    position: absolute;\n    top: 0; left: 0; right: 0; bottom: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    opacity: 0;\n    transition: opacity 0.2s;\n    background: rgba(99,102,241,0.15);\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb:hover .page-thumb-overlay {\n    opacity: 1;\n  }\n\n  #bnet-tool-pdf-splitter .thumb-fullscreen-btn {\n    background: rgba(255,255,255,0.9);\n    border: none;\n    border-radius: 8px;\n    padding: 6px 10px;\n    cursor: pointer;\n    font-size: 1.1rem;\n    transition: transform 0.15s;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n  }\n\n  #bnet-tool-pdf-splitter .thumb-fullscreen-btn:hover {\n    transform: scale(1.1);\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb-footer {\n    padding: 6px 8px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    border-top: 1px solid var(--border-color);\n  }\n\n  #bnet-tool-pdf-splitter .page-num {\n    font-size: 0.8rem;\n    color: var(--text-muted);\n    font-weight: 600;\n  }\n\n  #bnet-tool-pdf-splitter .page-group-badge {\n    font-size: 0.72rem;\n    font-weight: 700;\n    padding: 2px 7px;\n    border-radius: 999px;\n    color: #fff;\n  }\n\n  #bnet-tool-pdf-splitter .page-check {\n    position: absolute;\n    top: 6px;\n    right: 6px;\n    width: 22px;\n    height: 22px;\n    border-radius: 50%;\n    background: var(--accent);\n    border: 2px solid #fff;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n    box-shadow: 0 2px 6px rgba(0,0,0,0.2);\n  }\n\n  #bnet-tool-pdf-splitter .page-thumb.selected .page-check {\n    display: flex;\n  }\n\n  \/* ========================\n     GROUP SELECTION PANEL\n  ======================== *\/\n  #bnet-tool-pdf-splitter .group-panel {\n    display: none;\n    margin-top: 20px;\n    padding: 16px;\n    background: var(--accent-light);\n    border-radius: 12px;\n    border: 1px solid var(--border-color);\n  }\n\n  #bnet-tool-pdf-splitter .group-panel h3 {\n    font-size: 1rem;\n    color: var(--text-color);\n    margin-bottom: 10px;\n    font-weight: 700;\n  }\n\n  #bnet-tool-pdf-splitter .group-panel-actions {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    align-items: center;\n  }\n\n  \/* ========================\n     FULLSCREEN POPUP\n  ======================== *\/\n  #bnet-tool-pdf-splitter .popup-overlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    background: rgba(0,0,0,0.85);\n    z-index: 99999;\n    align-items: center;\n    justify-content: center;\n    padding: 24px;\n  }\n\n  #bnet-tool-pdf-splitter .popup-overlay.open {\n    display: flex;\n  }\n\n  #bnet-tool-pdf-splitter .popup-inner {\n    background: var(--card-bg);\n    border-radius: 18px;\n    max-width: 800px;\n    width: 100%;\n    max-height: 90vh;\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    box-shadow: 0 24px 80px rgba(0,0,0,0.5);\n    position: relative;\n  }\n\n  #bnet-tool-pdf-splitter .popup-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 16px 20px;\n    border-bottom: 1px solid var(--border-color);\n    flex-shrink: 0;\n  }\n\n  #bnet-tool-pdf-splitter .popup-header h3 {\n    font-size: 1.1rem;\n    font-weight: 700;\n    color: var(--text-color);\n  }\n\n  #bnet-tool-pdf-splitter .popup-nav {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n\n  #bnet-tool-pdf-splitter .popup-nav-btn {\n    background: var(--accent-light);\n    border: 1px solid var(--border-color);\n    border-radius: 8px;\n    padding: 6px 12px;\n    cursor: pointer;\n    font-size: 1rem;\n    color: var(--accent);\n    transition: all 0.2s;\n    font-family: inherit;\n  }\n\n  #bnet-tool-pdf-splitter .popup-nav-btn:hover:not(:disabled) {\n    background: var(--accent);\n    color: #fff;\n  }\n\n  #bnet-tool-pdf-splitter .popup-nav-btn:disabled {\n    opacity: 0.35;\n    cursor: not-allowed;\n  }\n\n  #bnet-tool-pdf-splitter .popup-close {\n    background: none;\n    border: none;\n    font-size: 1.5rem;\n    cursor: pointer;\n    color: var(--text-muted);\n    padding: 4px 8px;\n    border-radius: 6px;\n    transition: background 0.15s;\n    line-height: 1;\n    font-family: inherit;\n  }\n\n  #bnet-tool-pdf-splitter .popup-close:hover {\n    background: rgba(239,68,68,0.1);\n    color: var(--danger);\n  }\n\n  #bnet-tool-pdf-splitter .popup-canvas-area {\n    flex: 1;\n    overflow: auto;\n    display: flex;\n    align-items: flex-start;\n    justify-content: center;\n    padding: 20px;\n    background: #1a1a2e;\n  }\n\n  #bnet-tool-pdf-splitter #pdf-splitter-popup-canvas {\n    max-width: 100%;\n    height: auto;\n    border-radius: 6px;\n    box-shadow: 0 8px 32px rgba(0,0,0,0.4);\n  }\n\n  #bnet-tool-pdf-splitter .popup-footer {\n    padding: 12px 20px;\n    border-top: 1px solid var(--border-color);\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-shrink: 0;\n    flex-wrap: wrap;\n    gap: 8px;\n  }\n\n  #bnet-tool-pdf-splitter .popup-page-info {\n    font-size: 0.9rem;\n    color: var(--text-muted);\n    font-weight: 600;\n  }\n\n  \/* ========================\n     PROGRESS BAR\n  ======================== *\/\n  #bnet-tool-pdf-splitter .progress-area {\n    display: none;\n    margin-top: 20px;\n  }\n\n  #bnet-tool-pdf-splitter .progress-label {\n    font-size: 0.9rem;\n    color: var(--text-muted);\n    margin-bottom: 8px;\n    font-weight: 600;\n  }\n\n  #bnet-tool-pdf-splitter .progress-bar-wrap {\n    background: var(--border-color);\n    border-radius: 999px;\n    height: 8px;\n    overflow: hidden;\n  }\n\n  #bnet-tool-pdf-splitter .progress-bar-fill {\n    height: 100%;\n    background: linear-gradient(90deg, var(--accent), #a78bfa);\n    border-radius: 999px;\n    width: 0%;\n    transition: width 0.3s ease;\n  }\n\n  \/* ========================\n     SEO ARTICLE\n  ======================== *\/\n  #bnet-tool-pdf-splitter #seo-article {\n    margin-top: 0;\n    font-size: 0.92rem;\n    line-height: 1.8;\n    color: var(--text-muted);\n  }\n\n  #bnet-tool-pdf-splitter #seo-article h2,\n  #bnet-tool-pdf-splitter #seo-article h3 {\n    color: var(--text-color);\n    margin-top: 20px;\n    margin-bottom: 8px;\n    font-weight: 700;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article h2 {\n    font-size: 1.3rem;\n    border-bottom: 2px solid var(--border-color);\n    padding-bottom: 6px;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article h3 {\n    font-size: 1.05rem;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article p {\n    margin-bottom: 12px;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article ul,\n  #bnet-tool-pdf-splitter #seo-article ol {\n    padding-right: 22px;\n    margin-bottom: 12px;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article li {\n    margin-bottom: 6px;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article a {\n    color: var(--accent);\n    text-decoration: none;\n    font-weight: 600;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article a:hover {\n    text-decoration: underline;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article table {\n    width: 100%;\n    border-collapse: collapse;\n    margin-bottom: 16px;\n    font-size: 0.88rem;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article th,\n  #bnet-tool-pdf-splitter #seo-article td {\n    padding: 8px 12px;\n    border: 1px solid var(--border-color);\n    text-align: right;\n  }\n\n  #bnet-tool-pdf-splitter #seo-article th {\n    background: var(--accent-light);\n    color: var(--text-color);\n    font-weight: 700;\n  }\n\n  #bnet-tool-pdf-splitter .faq-item {\n    border: 1px solid var(--border-color);\n    border-radius: 10px;\n    margin-bottom: 10px;\n    overflow: hidden;\n  }\n\n  #bnet-tool-pdf-splitter .faq-question {\n    padding: 12px 16px;\n    cursor: pointer;\n    font-weight: 700;\n    color: var(--text-color);\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    transition: background 0.2s;\n    user-select: none;\n  }\n\n  #bnet-tool-pdf-splitter .faq-question:hover {\n    background: var(--accent-light);\n  }\n\n  #bnet-tool-pdf-splitter .faq-answer {\n    padding: 0 16px;\n    max-height: 0;\n    overflow: hidden;\n    transition: max-height 0.35s ease, padding 0.2s;\n    color: var(--text-muted);\n    line-height: 1.7;\n  }\n\n  #bnet-tool-pdf-splitter .faq-item.open .faq-answer {\n    max-height: 500px;\n    padding: 12px 16px;\n  }\n\n  #bnet-tool-pdf-splitter .faq-arrow {\n    transition: transform 0.3s;\n    font-style: normal;\n    font-size: 0.85rem;\n  }\n\n  #bnet-tool-pdf-splitter .faq-item.open .faq-arrow {\n    transform: rotate(180deg);\n  }\n\n  \/* ========================\n     RESPONSIVE\n  ======================== *\/\n  @media (max-width: 768px) {\n    #bnet-tool-pdf-splitter .pages-grid {\n      grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));\n      gap: 10px;\n    }\n    #bnet-tool-pdf-splitter .toolbar {\n      flex-direction: column;\n      align-items: flex-start;\n    }\n    #bnet-tool-pdf-splitter .popup-inner {\n      max-height: 95vh;\n    }\n    #bnet-tool-pdf-splitter .page-wrapper {\n      padding: 16px 12px 60px;\n    }\n    #bnet-tool-pdf-splitter .tool-card,\n    #bnet-tool-pdf-splitter .seo-card {\n      padding: 18px 14px;\n    }\n  }\n\n  @media (max-width: 480px) {\n    #bnet-tool-pdf-splitter .pages-grid {\n      grid-template-columns: repeat(3, 1fr);\n      gap: 8px;\n    }\n  }\n<\/style>\n\n<div class=\"page-wrapper\">\n\n  <!-- THEME TOGGLE -->\n  <div class=\"theme-toggle-wrap\">\n    <button class=\"theme-btn\" id=\"pdf-splitter-theme-btn\">\ud83c\udf19 Mode nuit<\/button>\n  <\/div>\n\n  <!-- HEADER -->\n  <header>\n    <h1 class=\"main-title\">\u2702\ufe0f Diviseur de fichiers PDF<\/h1>\n    <p class=\"subtitle\">Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s &#8211; directement dans votre navigateur, sans t\u00e9l\u00e9chargement sur le serveur.<\/p>\n    <div class=\"free-badge\">\n      <div class=\"free-dot\"><\/div>\n      <span>L&rsquo;outil est gratuit, sans inscription et sans stockage de donn\u00e9es sur le serveur<\/span>\n    <\/div>\n  <\/header>\n\n  <!-- TOOL CARD -->\n  <div class=\"tool-card\">\n\n    <!-- DROP ZONE -->\n    <div class=\"drop-zone\" id=\"pdf-splitter-drop-zone\">\n      <span class=\"drop-zone-icon\">\ud83d\udcc4<\/span>\n      <h2>Faites glisser un fichier PDF ici<\/h2>\n      <p>Ou cliquez pour s\u00e9lectionner un fichier depuis votre ordinateur<\/p>\n      <button class=\"btn-upload\" id=\"pdf-splitter-upload-btn\">\n        \ud83d\udcc2 Choisir un fichier PDF\n      <\/button>\n      <input type=\"file\" id=\"pdf-splitter-file-input\" accept=\".pdf,application\/pdf\">\n    <\/div>\n\n    <!-- LOADING -->\n    <div class=\"loading-area\" id=\"pdf-splitter-loading\">\n      <div class=\"spinner\"><\/div>\n      <p id=\"pdf-splitter-loading-text\">Chargement du fichier&#8230;<\/p>\n    <\/div>\n\n    <!-- TOOLBAR -->\n    <div class=\"toolbar\" id=\"pdf-splitter-toolbar\">\n      <div class=\"toolbar-info\">\n        \ud83d\udcc4 <span id=\"pdf-splitter-filename-label\"><\/span> &nbsp;|&nbsp;\n        <span id=\"pdf-splitter-page-count\"><\/span> pages &nbsp;|&nbsp;\n        <span id=\"pdf-splitter-selected-count\">0<\/span> s\u00e9lectionn\u00e9es\n      <\/div>\n      <div class=\"toolbar-actions\">\n        <button class=\"btn btn-secondary\" id=\"pdf-splitter-select-all-btn\">\u2611\ufe0f Tout s\u00e9lectionner<\/button>\n        <button class=\"btn btn-secondary\" id=\"pdf-splitter-clear-btn\">\u2716\ufe0f Effacer la s\u00e9lection<\/button>\n        <button class=\"btn btn-primary\" id=\"pdf-splitter-add-group-btn\" disabled>\u2795 Ajouter un groupe<\/button>\n        <button class=\"btn btn-success\" id=\"pdf-splitter-download-all-btn\">\u2b07\ufe0f T\u00e9l\u00e9charger chaque page s\u00e9par\u00e9ment<\/button>\n        <button class=\"btn btn-secondary\" id=\"pdf-splitter-reset-btn\">\ud83d\udd04 Charger un nouveau fichier<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- GROUP LEGEND -->\n    <div class=\"group-legend\" id=\"pdf-splitter-group-legend\">\n      <span class=\"group-legend-label\">Groupes \u00e0 t\u00e9l\u00e9charger :<\/span>\n      <!-- chips injected here -->\n    <\/div>\n\n    <!-- PAGES GRID -->\n    <div class=\"pages-grid\" id=\"pdf-splitter-pages-grid\" style=\"display:none\"><\/div>\n\n    <!-- GROUP PANEL -->\n    <div class=\"group-panel\" id=\"pdf-splitter-group-panel\">\n      <h3>\ud83d\udcc1 T\u00e9l\u00e9charger des groupes en tant que fichiers s\u00e9par\u00e9s<\/h3>\n      <div class=\"group-panel-actions\">\n        <button class=\"btn btn-success\" id=\"pdf-splitter-download-groups-btn\">\u2b07\ufe0f T\u00e9l\u00e9charger tous les groupes<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- PROGRESS -->\n    <div class=\"progress-area\" id=\"pdf-splitter-progress-area\">\n      <div class=\"progress-label\" id=\"pdf-splitter-progress-label\">Pr\u00e9paration des fichiers&#8230;<\/div>\n      <div class=\"progress-bar-wrap\">\n        <div class=\"progress-bar-fill\" id=\"pdf-splitter-progress-bar\"><\/div>\n      <\/div>\n    <\/div>\n\n  <\/div><!-- \/tool-card -->\n\n  <!-- FULLSCREEN POPUP -->\n  <div class=\"popup-overlay\" id=\"pdf-splitter-popup\">\n    <div class=\"popup-inner\">\n      <div class=\"popup-header\">\n        <h3 id=\"pdf-splitter-popup-title\">Aper\u00e7u de la page<\/h3>\n        <div class=\"popup-nav\">\n          <button class=\"popup-nav-btn\" id=\"pdf-splitter-popup-prev\">&#8594;<\/button>\n          <span id=\"pdf-splitter-popup-counter\" style=\"font-size:0.9rem; color:var(--text-muted); font-weight:600;\"><\/span>\n          <button class=\"popup-nav-btn\" id=\"pdf-splitter-popup-next\">&#8592;<\/button>\n        <\/div>\n        <button class=\"popup-close\" id=\"pdf-splitter-popup-close\">\u2715<\/button>\n      <\/div>\n      <div class=\"popup-canvas-area\">\n        <canvas id=\"pdf-splitter-popup-canvas\"><\/canvas>\n      <\/div>\n      <div class=\"popup-footer\">\n        <span class=\"popup-page-info\" id=\"pdf-splitter-popup-page-info\"><\/span>\n        <div style=\"display:flex;gap:8px;\">\n          <button class=\"btn btn-primary\" id=\"pdf-splitter-popup-select-btn\">\u2611\ufe0f S\u00e9lectionner cette page<\/button>\n          <button class=\"btn btn-secondary\" id=\"pdf-splitter-popup-download-btn\">\u2b07\ufe0f T\u00e9l\u00e9charger cette page<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- SEO ARTICLE CARD -->\n  <div class=\"seo-card\">\n    <div id=\"seo-article\">\n\n      <h2 class=\"wp-block-heading\">Diviseur PDF &#8211; Tout ce que vous devez savoir<\/h2>\n\n      <p>Un diviseur de fichier PDF est un outil qui permet de d\u00e9composer un document PDF unique contenant de nombreuses pages &#8211; en fichiers s\u00e9par\u00e9s. L&rsquo;outil fonctionne <strong>enti\u00e8rement dans votre navigateur<\/strong>, sans t\u00e9l\u00e9chargement du fichier sur un serveur, garantissant ainsi la confidentialit\u00e9 de vos documents.<\/p>\n\n      <h2 class=\"wp-block-heading\">Comment diviser un fichier PDF ?<\/h2>\n      <p>Trois fa\u00e7ons de diviser :<\/p>\n      <ol>\n        <li><strong>Chaque page s\u00e9par\u00e9ment<\/strong> &#8211; Cliquez sur \u00ab\u00a0T\u00e9l\u00e9charger chaque page s\u00e9par\u00e9ment\u00a0\u00bb et obtenez un ZIP avec chaque page en tant que fichier PDF autonome.<\/li>\n        <li><strong>Groupes de pages<\/strong> &#8211; S\u00e9lectionnez des pages sp\u00e9cifiques et cliquez sur \u00ab\u00a0Ajouter un groupe\u00a0\u00bb, revenez pour s\u00e9lectionner chaque fichier souhait\u00e9, puis t\u00e9l\u00e9chargez tous les groupes.<\/li>\n        <li><strong>Une seule page depuis l&rsquo;aper\u00e7u<\/strong> &#8211; Ouvrez une page en plein \u00e9cran et cliquez sur \u00ab\u00a0T\u00e9l\u00e9charger cette page\u00a0\u00bb.<\/li>\n      <\/ol>\n\n      <h2 class=\"wp-block-heading\">Quand aurez-vous besoin de diviser un PDF ?<\/h2>\n      <ul>\n        <li>Vous avez re\u00e7u un long rapport et devez envoyer seulement un chapitre<\/li>\n        <li>Plusieurs factures dans un seul fichier &#8211; besoin de les s\u00e9parer<\/li>\n        <li>Un livre scann\u00e9 que vous souhaitez diviser en chapitres<\/li>\n        <li>Un document juridique n\u00e9cessitant une signature sur une page sp\u00e9cifique uniquement<\/li>\n        <li>Une pr\u00e9sentation PDF que vous souhaitez envoyer en tant que diapositives individuelles<\/li>\n      <\/ul>\n\n      <h2 class=\"wp-block-heading\">Confidentialit\u00e9 et s\u00e9curit\u00e9<\/h2>\n      <p>Contrairement \u00e0 la plupart des outils en ligne, notre outil traite le fichier <strong>directement dans votre navigateur<\/strong> en utilisant la technologie <strong>PDF.js<\/strong> et <strong>PDF-lib<\/strong>. Le fichier ne quitte pas votre ordinateur. Pas de serveur, pas de cloud, pas de stockage. Cela est particuli\u00e8rement important lorsqu&rsquo;il s&rsquo;agit de contrats, de documents m\u00e9dicaux ou de documents financiers.<\/p>\n\n      <h2 class=\"wp-block-heading\">Autres outils pour travailler avec PDF<\/h2>\n      <p>Si vous travaillez beaucoup avec des fichiers PDF, vous trouverez probablement \u00e9galement utile notre <a href=\"\/fr\/pdf-merger\/\" id=\"pdf-splitter-link-merger\">outil de fusion et de compression de fichiers PDF<\/a> &#8211; qui permet de prendre plusieurs fichiers PDF et de les combiner en un seul. De plus, pour \u00e9diter des images dans vos documents, vous pouvez utiliser notre <a href=\"\/fr\/compress-image\/\" id=\"pdf-splitter-link-compress\">outil de compression d&rsquo;images<\/a> avant de les ins\u00e9rer dans le PDF.<\/p>\n      <p>Pour travailler avec des fichiers en g\u00e9n\u00e9ral, il est conseill\u00e9 de v\u00e9rifier notre <a href=\"\/fr\/file-preview\/\" id=\"pdf-splitter-link-preview\">outil de pr\u00e9visualisation de fichiers<\/a>, qui prend en charge une large gamme de formats.<\/p>\n\n      <h2 class=\"wp-block-heading\">Statistiques int\u00e9ressantes sur PDF<\/h2>\n      <table>\n        <thead>\n          <tr><th>Donn\u00e9es<\/th><th>Source<\/th><\/tr>\n        <\/thead>\n        <tbody>\n          <tr><td>PDF est le format de fichier le plus courant pour le partage de documents professionnels &#8211; plus de 73 % des documents d&rsquo;entreprise<\/td><td>Adobe, 2023<\/td><\/tr>\n          <tr><td>Plus de 2,5 trillions de fichiers PDF existent actuellement sur Internet<\/td><td>PDF Association<\/td><\/tr>\n          <tr><td>Le format a \u00e9t\u00e9 d\u00e9fini comme norme ISO internationale (ISO 32000) en 2008<\/td><td>ISO<\/td><\/tr>\n          <tr><td>PDF\/A est la version pour archivage \u00e0 long terme &#8211; utilisation courante dans les gouvernements et le droit<\/td><td>AIIM<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n\n      <h2 class=\"wp-block-heading\">Questions fr\u00e9quentes (FAQ)<\/h2>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">L&rsquo;outil limite-t-il le nombre de pages ? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">Il n&rsquo;y a pas de limite int\u00e9gr\u00e9e. Les performances d\u00e9pendent de la puissance de votre ordinateur et de la taille du fichier. Les fichiers tr\u00e8s volumineux (des centaines de pages) peuvent prendre quelques secondes \u00e0 charger.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">L&rsquo;outil conserve-t-il la mise en page et les images ? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">Oui. La division se fait au niveau du PDF d&rsquo;origine, de sorte que le contenu, les polices, les images et la mise en page restent inchang\u00e9s.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Quelle est la diff\u00e9rence entre \u00ab\u00a0Chaque page s\u00e9par\u00e9ment\u00a0\u00bb et \u00ab\u00a0Groupes\u00a0\u00bb ? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">\u00ab\u00a0Chaque page s\u00e9par\u00e9ment\u00a0\u00bb t\u00e9l\u00e9charge un fichier ZIP avec chaque page en tant que PDF s\u00e9par\u00e9. \u00ab\u00a0Groupes\u00a0\u00bb vous permet de rassembler plusieurs pages (par exemple, pages 1-3) dans un seul fichier PDF, et pages 4-6 dans un autre fichier &#8211; et ainsi de suite.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Un PDF chiffr\u00e9 (avec mot de passe) fonctionnera-t-il ? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">Les fichiers chiffr\u00e9s n\u00e9cessitent la saisie d&rsquo;un mot de passe. L&rsquo;outil actuel prend en charge les fichiers non chiffr\u00e9s. Pour les fichiers chiffr\u00e9s, vous devrez d&rsquo;abord supprimer le chiffrement avec un logiciel appropri\u00e9.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">L&rsquo;outil fonctionne-t-il sur mobile ? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">Oui, l&rsquo;outil est adapt\u00e9 \u00e0 tous les appareils. En raison des limitations de m\u00e9moire, un PDF tr\u00e8s volumineux peut \u00eatre plus lent sur un smartphone.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Comment t\u00e9l\u00e9charger un fichier ZIP \u00e0 la fin ? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">L&rsquo;outil utilise la biblioth\u00e8que JSZip et g\u00e9n\u00e8re un fichier ZIP directement dans le navigateur. En cliquant sur le bouton de t\u00e9l\u00e9chargement, le ZIP sera automatiquement t\u00e9l\u00e9charg\u00e9 sur votre ordinateur.<\/div>\n      <\/div>\n\n    <\/div>\n  <\/div><!-- \/seo-card -->\n\n<\/div><!-- \/page-wrapper -->\n<\/div><!-- \/bnet-tool-pdf-splitter -->\n\n<!-- PDF.js CDN -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.min.js\"><\/script>\n<!-- PDF-lib CDN -->\n<script src=\"https:\/\/unpkg.com\/pdf-lib@1.17.1\/dist\/pdf-lib.min.js\"><\/script>\n<!-- JSZip CDN -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jszip\/3.10.1\/jszip.min.js\"><\/script>\n\n<script>\n(function() {\n  'use strict';\n\n  \/\/ \u2500\u2500\u2500 STATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const ROOT       = document.getElementById('bnet-tool-pdf-splitter');\n  let pdfDoc       = null;   \/\/ pdf.js doc\n  let pdfLibDoc    = null;   \/\/ pdf-lib doc for splitting\n  let pdfBytes     = null;   \/\/ raw ArrayBuffer\n  let totalPages   = 0;\n  let selectedPages = new Set();\n  let groups       = [];     \/\/ [{label, pages:[1-indexed], color}]\n  let popupPage    = 1;\n  const GROUP_COLORS = ['#6366f1','#0ea5e9','#22c55e','#f59e0b','#ef4444','#a21caf','#0891b2','#65a30d'];\n\n  \/\/ \u2500\u2500\u2500 DOM REFS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const dropZone          = ROOT.querySelector('#pdf-splitter-drop-zone');\n  const fileInput         = ROOT.querySelector('#pdf-splitter-file-input');\n  const uploadBtn         = ROOT.querySelector('#pdf-splitter-upload-btn');\n  const loadingArea       = ROOT.querySelector('#pdf-splitter-loading');\n  const loadingText       = ROOT.querySelector('#pdf-splitter-loading-text');\n  const toolbar           = ROOT.querySelector('#pdf-splitter-toolbar');\n  const pagesGrid         = ROOT.querySelector('#pdf-splitter-pages-grid');\n  const groupLegend       = ROOT.querySelector('#pdf-splitter-group-legend');\n  const groupPanel        = ROOT.querySelector('#pdf-splitter-group-panel');\n  const progressArea      = ROOT.querySelector('#pdf-splitter-progress-area');\n  const progressLabel     = ROOT.querySelector('#pdf-splitter-progress-label');\n  const progressBar       = ROOT.querySelector('#pdf-splitter-progress-bar');\n  const filenameLabel     = ROOT.querySelector('#pdf-splitter-filename-label');\n  const pageCountLabel    = ROOT.querySelector('#pdf-splitter-page-count');\n  const selectedCountLabel= ROOT.querySelector('#pdf-splitter-selected-count');\n  const selectAllBtn      = ROOT.querySelector('#pdf-splitter-select-all-btn');\n  const clearBtn          = ROOT.querySelector('#pdf-splitter-clear-btn');\n  const addGroupBtn       = ROOT.querySelector('#pdf-splitter-add-group-btn');\n  const downloadAllBtn    = ROOT.querySelector('#pdf-splitter-download-all-btn');\n  const downloadGroupsBtn = ROOT.querySelector('#pdf-splitter-download-groups-btn');\n  const resetBtn          = ROOT.querySelector('#pdf-splitter-reset-btn');\n  const themeBtn          = ROOT.querySelector('#pdf-splitter-theme-btn');\n  const popup             = ROOT.querySelector('#pdf-splitter-popup');\n  const popupTitle        = ROOT.querySelector('#pdf-splitter-popup-title');\n  const popupCanvas       = ROOT.querySelector('#pdf-splitter-popup-canvas');\n  const popupClose        = ROOT.querySelector('#pdf-splitter-popup-close');\n  const popupPrev         = ROOT.querySelector('#pdf-splitter-popup-prev');\n  const popupNext         = ROOT.querySelector('#pdf-splitter-popup-next');\n  const popupCounter      = ROOT.querySelector('#pdf-splitter-popup-counter');\n  const popupPageInfo     = ROOT.querySelector('#pdf-splitter-popup-page-info');\n  const popupSelectBtn    = ROOT.querySelector('#pdf-splitter-popup-select-btn');\n  const popupDownloadBtn  = ROOT.querySelector('#pdf-splitter-popup-download-btn');\n\n  \/\/ \u2500\u2500\u2500 SAFE GA4 TRACKING \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function sendEvent(eventName, params) {\n    try {\n      if (typeof gtag === 'function') {\n        gtag('event', eventName, params);\n      } else {\n        console.log('\u00c9v\u00e9nement suivi (GA non charg\u00e9) :', eventName, params);\n      }\n    } catch(e) {}\n  }\n\n  \/\/ Set pdf.js worker\n  pdfjsLib.GlobalWorkerOptions.workerSrc = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.worker.min.js';\n\n  \/\/ \u2500\u2500\u2500 THEME \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  const savedTheme = localStorage.getItem('bsolution_theme') || 'light';\n  if (savedTheme === 'dark') {\n    document.body.classList.add('dark-theme');\n    themeBtn.textContent = '\u2600\ufe0f Mode jour';\n  }\n\n  themeBtn.addEventListener('click', () => {\n    document.body.classList.toggle('dark-theme');\n    const isDark = document.body.classList.contains('dark-theme');\n    themeBtn.textContent = isDark ? '\u2600\ufe0f Mode jour' : '\ud83c\udf19 Mode nuit';\n    localStorage.setItem('bsolution_theme', isDark ? 'dark' : 'light');\n    sendEvent('tool_interaction', { tool_name: 'pdf-splitter', action: 'toggle_theme', theme: isDark ? 'dark' : 'light' });\n  });\n\n  \/\/ \u2500\u2500\u2500 FILE INPUT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  uploadBtn.addEventListener('click', (e) => { e.stopPropagation(); fileInput.click(); });\n  dropZone.addEventListener('click', () => fileInput.click());\n  fileInput.addEventListener('change', (e) => { if (e.target.files[0]) handleFile(e.target.files[0]); });\n\n  \/\/ Drag & drop\n  dropZone.addEventListener('dragover', (e) => { e.preventDefault(); dropZone.classList.add('drag-over'); });\n  dropZone.addEventListener('dragleave', () => dropZone.classList.remove('drag-over'));\n  dropZone.addEventListener('drop', (e) => {\n    e.preventDefault();\n    dropZone.classList.remove('drag-over');\n    const f = e.dataTransfer.files[0];\n    if (f && f.type === 'application\/pdf') handleFile(f);\n  });\n\n  \/\/ \u2500\u2500\u2500 HANDLE FILE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  async function handleFile(file) {\n    const startTime = Date.now();\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'file_uploaded', file_size_kb: Math.round(file.size\/1024) });\n\n    dropZone.style.display = 'none';\n    loadingArea.style.display = 'block';\n    loadingText.textContent = 'Chargement du fichier...';\n\n    try {\n      pdfBytes = await file.arrayBuffer();\n\n      \/\/ Load with pdf.js for rendering (create a copy so the worker doesn't detach our buffer)\n      loadingText.textContent = 'Analyse des pages...';\n      const typedArray = new Uint8Array(pdfBytes.slice(0));\n      pdfDoc = await pdfjsLib.getDocument({ data: typedArray }).promise;\n      totalPages = pdfDoc.numPages;\n\n      \/\/ Load with pdf-lib for splitting\n      pdfLibDoc = await PDFLib.PDFDocument.load(pdfBytes);\n\n      \/\/ Reset state\n      selectedPages.clear();\n      groups = [];\n      pagesGrid.innerHTML = '';\n\n      filenameLabel.textContent = file.name.length > 30 ? file.name.substring(0,27)+'...' : file.name;\n      pageCountLabel.textContent = totalPages;\n      updateSelectedCount();\n\n      \/\/ Show UI\n      loadingArea.style.display = 'none';\n      toolbar.style.display = 'flex';\n      pagesGrid.style.display = 'grid';\n      groupLegend.style.display = 'none';\n      groupPanel.style.display = 'none';\n\n      const duration = ((Date.now() - startTime) \/ 1000).toFixed(1);\n      sendEvent( 'tool_duration', { tool_name: 'pdf-splitter', action: 'file_loaded', duration_seconds: parseFloat(duration), pages: totalPages });\n\n      \/\/ Render thumbnails progressively\n      await renderAllThumbnails();\n\n    } catch (err) {\n      loadingArea.style.display = 'none';\n      dropZone.style.display = 'block';\n      alert('Erreur lors du chargement du fichier : ' + err.message);\n      sendEvent( 'tool_error', { tool_name: 'pdf-splitter', error_message: err.message });\n    }\n  }\n\n  \/\/ \u2500\u2500\u2500 RENDER THUMBNAILS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  async function renderAllThumbnails() {\n    for (let i = 1; i <= totalPages; i++) {\n      const thumb = createThumbElement(i);\n      pagesGrid.appendChild(thumb);\n      await renderPageToCanvas(i, thumb.querySelector('canvas'), 180);\n    }\n  }\n\n  function createThumbElement(pageNum) {\n    const div = document.createElement('div');\n    div.className = 'page-thumb';\n    div.dataset.page = pageNum;\n    div.innerHTML = `\n      <div class=\"page-canvas-wrap\">\n        <canvas><\/canvas>\n        <div class=\"page-thumb-overlay\">\n          <button class=\"thumb-fullscreen-btn\" title=\"Aper\u00e7u complet\">\ud83d\udd0d<\/button>\n        <\/div>\n        <div class=\"page-check\">\u2713<\/div>\n      <\/div>\n      <div class=\"page-thumb-footer\">\n        <span class=\"page-num\">Page ${pageNum}<\/span>\n        <span class=\"page-group-badge\" style=\"display:none;\"><\/span>\n      <\/div>\n    `;\n\n    \/\/ Click thumbnail = toggle selection\n    div.addEventListener('click', (e) => {\n      if (e.target.closest('.thumb-fullscreen-btn')) return;\n      togglePageSelection(pageNum, div);\n    });\n\n    \/\/ Fullscreen button\n    div.querySelector('.thumb-fullscreen-btn').addEventListener('click', (e) => {\n      e.stopPropagation();\n      openPopup(pageNum);\n    });\n\n    return div;\n  }\n\n  async function renderPageToCanvas(pageNum, canvas, targetWidth) {\n    const page = await pdfDoc.getPage(pageNum);\n    const viewport = page.getViewport({ scale: 1 });\n    const scale = targetWidth \/ viewport.width;\n    const scaledViewport = page.getViewport({ scale });\n    canvas.width  = scaledViewport.width;\n    canvas.height = scaledViewport.height;\n    await page.render({ canvasContext: canvas.getContext('2d'), viewport: scaledViewport }).promise;\n  }\n\n  \/\/ \u2500\u2500\u2500 SELECTION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function togglePageSelection(pageNum, thumbEl) {\n    if (selectedPages.has(pageNum)) {\n      selectedPages.delete(pageNum);\n      thumbEl.classList.remove('selected');\n    } else {\n      selectedPages.add(pageNum);\n      thumbEl.classList.add('selected');\n    }\n    updateSelectedCount();\n  }\n\n  function updateSelectedCount() {\n    selectedCountLabel.textContent = selectedPages.size;\n    addGroupBtn.disabled = selectedPages.size === 0;\n  }\n\n  selectAllBtn.addEventListener('click', () => {\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'select_all' });\n    for (let i = 1; i <= totalPages; i++) {\n      selectedPages.add(i);\n      const thumb = pagesGrid.querySelector(`[data-page=\"${i}\"]`);\n      if (thumb) thumb.classList.add('selected');\n    }\n    updateSelectedCount();\n  });\n\n  clearBtn.addEventListener('click', () => {\n    selectedPages.clear();\n    pagesGrid.querySelectorAll('.page-thumb').forEach(t => t.classList.remove('selected'));\n    updateSelectedCount();\n  });\n\n  \/\/ \u2500\u2500\u2500 GROUPS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  addGroupBtn.addEventListener('click', () => {\n    if (selectedPages.size === 0) return;\n    const groupIdx = groups.length;\n    const color = GROUP_COLORS[groupIdx % GROUP_COLORS.length];\n    const sortedPages = [...selectedPages].sort((a,b) => a-b);\n    const label = `Groupe ${groupIdx + 1}`;\n    groups.push({ label, pages: sortedPages, color });\n\n    \/\/ Mark pages\n    sortedPages.forEach(p => {\n      const thumb = pagesGrid.querySelector(`[data-page=\"${p}\"]`);\n      if (thumb) {\n        thumb.classList.add('in-group');\n        thumb.style.borderColor = color;\n        const badge = thumb.querySelector('.page-group-badge');\n        badge.style.display = 'inline-block';\n        badge.style.background = color;\n        badge.textContent = `G${groupIdx + 1}`;\n        thumb.classList.remove('selected');\n      }\n    });\n\n    selectedPages.clear();\n    updateSelectedCount();\n    renderGroupLegend();\n\n    groupLegend.style.display = 'flex';\n    groupPanel.style.display = 'block';\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'add_group', group_num: groupIdx+1, pages: sortedPages.length });\n  });\n\n  function renderGroupLegend() {\n    groupLegend.innerHTML = '<span class=\"group-legend-label\">Groupes \u00e0 t\u00e9l\u00e9charger :<\/span>';\n    groups.forEach((g, i) => {\n      const chip = document.createElement('span');\n      chip.className = 'group-chip';\n      chip.style.background = g.color;\n      chip.innerHTML = `${g.label} (${g.pages.length} pages) <button class=\"chip-remove\" data-idx=\"${i}\" title=\"Supprimer le groupe\">\u00d7<\/button>`;\n      groupLegend.appendChild(chip);\n    });\n    \/\/ Remove handlers\n    groupLegend.querySelectorAll('.chip-remove').forEach(btn => {\n      btn.addEventListener('click', (e) => {\n        e.stopPropagation();\n        const idx = parseInt(btn.dataset.idx);\n        removeGroup(idx);\n      });\n    });\n  }\n\n  function removeGroup(idx) {\n    const g = groups[idx];\n    g.pages.forEach(p => {\n      const thumb = pagesGrid.querySelector(`[data-page=\"${p}\"]`);\n      if (thumb) {\n        thumb.classList.remove('in-group');\n        thumb.style.borderColor = '';\n        const badge = thumb.querySelector('.page-group-badge');\n        badge.style.display = 'none';\n      }\n    });\n    groups.splice(idx, 1);\n    if (groups.length === 0) {\n      groupLegend.style.display = 'none';\n      groupPanel.style.display = 'none';\n    } else {\n      renderGroupLegend();\n    }\n  }\n\n  \/\/ \u2500\u2500\u2500 DOWNLOAD ALL (individual pages) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  downloadAllBtn.addEventListener('click', async () => {\n    if (!pdfLibDoc) return;\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'download_all_pages', total_pages: totalPages });\n    const startTime = Date.now();\n\n    showProgress('Pr\u00e9paration des fichiers...');\n    const zip = new JSZip();\n\n    for (let i = 1; i <= totalPages; i++) {\n      updateProgress(Math.round((i \/ totalPages) * 100), `Pr\u00e9paration de la page ${i} sur ${totalPages}...`);\n      const newDoc = await PDFLib.PDFDocument.create();\n      const [copiedPage] = await newDoc.copyPages(pdfLibDoc, [i - 1]);\n      newDoc.addPage(copiedPage);\n      const pdfOut = await newDoc.save();\n      zip.file(`page-${String(i).padStart(3, '0')}.pdf`, pdfOut);\n    }\n\n    updateProgress(100, 'Cr\u00e9ation du fichier ZIP...');\n    const blob = await zip.generateAsync({ type: 'blob' });\n    triggerDownload(blob, 'pdf-pages.zip');\n    hideProgress();\n\n    const duration = ((Date.now() - startTime) \/ 1000).toFixed(1);\n    sendEvent( 'tool_duration', { tool_name: 'pdf-splitter', action: 'download_all', duration_seconds: parseFloat(duration) });\n  });\n\n  \/\/ \u2500\u2500\u2500 DOWNLOAD GROUPS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  downloadGroupsBtn.addEventListener('click', async () => {\n    if (groups.length === 0) { alert('Veuillez d\u00e9finir au moins un groupe d\\'abord.'); return; }\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'download_groups', num_groups: groups.length });\n    const startTime = Date.now();\n\n    showProgress('Pr\u00e9paration des groupes...');\n    const zip = new JSZip();\n\n    for (let gi = 0; gi < groups.length; gi++) {\n      const g = groups[gi];\n      updateProgress(Math.round(((gi + 1) \/ groups.length) * 100), `Pr\u00e9paration de ${g.label}...`);\n      const newDoc = await PDFLib.PDFDocument.create();\n      for (const p of g.pages) {\n        const [copiedPage] = await newDoc.copyPages(pdfLibDoc, [p - 1]);\n        newDoc.addPage(copiedPage);\n      }\n      const pdfOut = await newDoc.save();\n      zip.file(`group-${gi + 1}-pages-${g.pages[0]}-${g.pages[g.pages.length - 1]}.pdf`, pdfOut);\n    }\n\n    updateProgress(100, 'Cr\u00e9ation du fichier ZIP...');\n    const blob = await zip.generateAsync({ type: 'blob' });\n    triggerDownload(blob, 'pdf-groups.zip');\n    hideProgress();\n\n    const duration = ((Date.now() - startTime) \/ 1000).toFixed(1);\n    sendEvent( 'tool_duration', { tool_name: 'pdf-splitter', action: 'download_groups', duration_seconds: parseFloat(duration) });\n  });\n\n  \/\/ \u2500\u2500\u2500 RESET \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  resetBtn.addEventListener('click', () => {\n    pdfDoc = pdfLibDoc = pdfBytes = null;\n    totalPages = 0;\n    selectedPages.clear();\n    groups = [];\n    pagesGrid.innerHTML = '';\n    pagesGrid.style.display = 'none';\n    toolbar.style.display = 'none';\n    groupLegend.style.display = 'none';\n    groupPanel.style.display = 'none';\n    progressArea.style.display = 'none';\n    dropZone.style.display = 'block';\n    fileInput.value = '';\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'reset' });\n  });\n\n  \/\/ \u2500\u2500\u2500 POPUP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function openPopup(pageNum) {\n    popupPage = pageNum;\n    popup.classList.add('open');\n    document.body.style.overflow = 'hidden';\n    renderPopupPage();\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'open_page_preview', page: pageNum });\n  }\n\n  async function renderPopupPage() {\n    popupTitle.textContent = `Aper\u00e7u de la page ${popupPage}`;\n    popupPageInfo.textContent = `Page ${popupPage} sur ${totalPages}`;\n    popupCounter.textContent = `${popupPage} \/ ${totalPages}`;\n    popupPrev.disabled = (popupPage >= totalPages);\n    popupNext.disabled = (popupPage <= 1);\n\n    const isSelected = selectedPages.has(popupPage);\n    popupSelectBtn.textContent = isSelected ? '\u2713 Annul\u00e9 de la s\u00e9lection' : '\u2611\ufe0f S\u00e9lectionner cette page';\n    popupSelectBtn.className = isSelected ? 'btn btn-secondary' : 'btn btn-primary';\n\n    const page = await pdfDoc.getPage(popupPage);\n    const viewport = page.getViewport({ scale: 1 });\n    const maxW = Math.min(760, window.innerWidth - 80);\n    const scale = maxW \/ viewport.width;\n    const scaledViewport = page.getViewport({ scale });\n    popupCanvas.width  = scaledViewport.width;\n    popupCanvas.height = scaledViewport.height;\n    await page.render({ canvasContext: popupCanvas.getContext('2d'), viewport: scaledViewport }).promise;\n  }\n\n  popupClose.addEventListener('click', () => { popup.classList.remove('open'); document.body.style.overflow = ''; });\n  popup.addEventListener('click', (e) => { if (e.target === popup) { popup.classList.remove('open'); document.body.style.overflow = ''; } });\n\n  popupPrev.addEventListener('click', () => { if (popupPage < totalPages) { popupPage++; renderPopupPage(); } });\n  popupNext.addEventListener('click', () => { if (popupPage > 1) { popupPage--; renderPopupPage(); } });\n\n  \/\/ Keyboard nav\n  document.addEventListener('keydown', (e) => {\n    if (!popup.classList.contains('open')) return;\n    if (e.key === 'Escape') { popup.classList.remove('open'); document.body.style.overflow = ''; }\n    if (e.key === 'ArrowLeft') { if (popupPage > 1) { popupPage--; renderPopupPage(); } }\n    if (e.key === 'ArrowRight') { if (popupPage < totalPages) { popupPage++; renderPopupPage(); } }\n  });\n\n  popupSelectBtn.addEventListener('click', () => {\n    const thumb = pagesGrid.querySelector(`[data-page=\"${popupPage}\"]`);\n    if (selectedPages.has(popupPage)) {\n      selectedPages.delete(popupPage);\n      if (thumb) thumb.classList.remove('selected');\n    } else {\n      selectedPages.add(popupPage);\n      if (thumb) thumb.classList.add('selected');\n    }\n    updateSelectedCount();\n    renderPopupPage();\n  });\n\n  popupDownloadBtn.addEventListener('click', async () => {\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'download_single_page', page: popupPage });\n    popupDownloadBtn.disabled = true;\n    popupDownloadBtn.textContent = '\u23f3 T\u00e9l\u00e9chargement...';\n    try {\n      const newDoc = await PDFLib.PDFDocument.create();\n      const [copiedPage] = await newDoc.copyPages(pdfLibDoc, [popupPage - 1]);\n      newDoc.addPage(copiedPage);\n      const pdfOut = await newDoc.save();\n      const blob = new Blob([pdfOut], { type: 'application\/pdf' });\n      triggerDownload(blob, `page-${popupPage}.pdf`);\n    } catch(err) {\n      sendEvent( 'tool_error', { tool_name: 'pdf-splitter', error_message: err.message });\n    }\n    popupDownloadBtn.disabled = false;\n    popupDownloadBtn.textContent = '\u2b07\ufe0f T\u00e9l\u00e9charger cette page';\n  });\n\n  \/\/ \u2500\u2500\u2500 HELPERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function triggerDownload(blob, filename) {\n    const url = URL.createObjectURL(blob);\n    const a = document.createElement('a');\n    a.href = url; a.download = filename; a.click();\n    setTimeout(() => URL.revokeObjectURL(url), 2000);\n  }\n\n  function showProgress(text) {\n    progressArea.style.display = 'block';\n    progressLabel.textContent = text;\n    progressBar.style.width = '0%';\n  }\n\n  function updateProgress(pct, text) {\n    progressBar.style.width = pct + '%';\n    progressLabel.textContent = text;\n  }\n\n  function hideProgress() {\n    setTimeout(() => { progressArea.style.display = 'none'; }, 1200);\n  }\n\n  \/\/ \u2500\u2500\u2500 INTERNAL LINK GA TRACKING \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  document.querySelectorAll('#pdf-splitter-link-merger, #pdf-splitter-link-compress, #pdf-splitter-link-preview').forEach(link => {\n    link.addEventListener('click', () => {\n      sendEvent( 'internal_link_click', { link_url: link.href, tool_name: 'pdf-splitter' });\n    });\n  });\n\n  \/\/ \u2500\u2500\u2500 FAQ ACCORDION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  ROOT.querySelectorAll('.faq-question').forEach(q => {\n    q.addEventListener('click', () => {\n      const item = q.closest('.faq-item');\n      item.classList.toggle('open');\n    });\n  });\n\n})();\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"SoftwareApplication\",\n      \"name\": \"Diviseur de fichiers PDF\",\n      \"description\": \"Outil en ligne gratuit pour diviser un fichier PDF en pages individuelles ou en groupes de pages, fonctionne directement dans le navigateur sans t\u00e9l\u00e9chargement sur le serveur.\",\n      \"applicationCategory\": \"UtilityApplication\",\n      \"operatingSystem\": \"Web Browser\",\n      \"offers\": {\n        \"@type\": \"Offer\",\n        \"price\": \"0\",\n        \"priceCurrency\": \"EUR\"\n      },\n      \"inLanguage\": \"fr\",\n      \"url\": \"https:\/\/bsolution.me\/fr\/pdf-splitter\/\",\n      \"author\": {\n        \"@type\": \"Organization\",\n        \"name\": \"bSolution\",\n        \"url\": \"https:\/\/bsolution.me\",\n        \"address\": {\n          \"@type\": \"PostalAddress\",\n          \"addressCountry\": \"FR\"\n        }\n      }\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"L'outil limite-t-il le nombre de pages ?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Il n'y a pas de limite int\u00e9gr\u00e9e. Les performances d\u00e9pendent de la puissance de votre ordinateur et de la taille du fichier.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"L'outil conserve-t-il la mise en page et les images ?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Oui. La division se fait au niveau du PDF d'origine, de sorte que le contenu, les polices, les images et la mise en page restent inchang\u00e9s.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Quelle est la diff\u00e9rence entre chaque page s\u00e9par\u00e9ment et groupes ?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Chaque page s\u00e9par\u00e9ment t\u00e9l\u00e9charge un ZIP avec chaque page en tant que PDF. Les groupes permettent de rassembler des pages dans des fichiers composites selon votre choix.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Un PDF chiffr\u00e9 fonctionnera-t-il ?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Les fichiers chiffr\u00e9s n\u00e9cessitent la suppression du chiffrement au pr\u00e9alable. L'outil prend en charge les fichiers non chiffr\u00e9s.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"L'outil fonctionne-t-il sur mobile ?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Oui, l'outil est adapt\u00e9 \u00e0 tous les appareils. Les fichiers volumineux peuvent \u00eatre plus lents sur smartphone.\" }\n        }\n      ]\n    },\n    {\n      \"@type\": \"SpeakableSpecification\",\n      \"cssSelector\": [\"h1.main-title\", \".subtitle\", \".wp-block-heading\"]\n    }\n  ]\n}\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Diviseur de fichiers PDF &#8211; Division de PDF en pages et fichiers s\u00e9par\u00e9s \ud83c\udf19 Mode nuit \u2702\ufe0f Diviseur de fichiers PDF Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s &#8211; directement dans votre navigateur, sans t\u00e9l\u00e9chargement sur le serveur. L&rsquo;outil est gratuit, sans inscription et sans stockage de donn\u00e9es sur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":24,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_yoast_wpseo_title":"Diviseur PDF - Diviser les pages PDF en ligne - bSolution","_yoast_wpseo_metadesc":"Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s gratuitement, directement dans votre navigateur.","footnotes":"","tool_category":"\u00c9dition de Fichiers","tool_emoji":"\u2702\ufe0f","tool_featured":"no"},"class_list":["post-4","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Diviseur PDF - Diviser les pages PDF en ligne - bSolution<\/title>\n<meta name=\"description\" content=\"Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s gratuitement, directement dans votre navigateur.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bsolution.me\/fr\/pdf-splitter\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Diviseur PDF - Diviser les pages PDF en ligne - bSolution\" \/>\n<meta property=\"og:description\" content=\"Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s gratuitement, directement dans votre navigateur.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bsolution.me\/fr\/pdf-splitter\/\" \/>\n<meta property=\"og:site_name\" content=\"Outils Gratuits pour Entreprises\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-22T10:38:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bsolution.me\/fr\/wp-content\/uploads\/sites\/11\/2026\/09\/thumbnail.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/\",\"url\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/\",\"name\":\"Diviseur PDF - Diviser les pages PDF en ligne - bSolution\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/09\\\/thumbnail.jpg\",\"datePublished\":\"2026-08-31T16:57:49+00:00\",\"dateModified\":\"2026-09-22T10:38:15+00:00\",\"description\":\"Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s gratuitement, directement dans votre navigateur.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/09\\\/thumbnail.jpg\",\"contentUrl\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/wp-content\\\/uploads\\\/sites\\\/11\\\/2026\\\/09\\\/thumbnail.jpg\",\"width\":800,\"height\":800,\"caption\":\"Diviseur PDF - Diviser les pages PDF en ligne\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/pdf-splitter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Diviseur de fichiers PDF &#8211; Division de PDF en pages et fichiers s\u00e9par\u00e9s\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/\",\"name\":\"Outils Gratuits pour Entreprises\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bsolution.me\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Diviseur PDF - Diviser les pages PDF en ligne - bSolution","description":"Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s gratuitement, directement dans votre navigateur.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bsolution.me\/fr\/pdf-splitter\/","og_locale":"fr_FR","og_type":"article","og_title":"Diviseur PDF - Diviser les pages PDF en ligne - bSolution","og_description":"Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s gratuitement, directement dans votre navigateur.","og_url":"https:\/\/bsolution.me\/fr\/pdf-splitter\/","og_site_name":"Outils Gratuits pour Entreprises","article_modified_time":"2026-09-22T10:38:15+00:00","og_image":[{"width":800,"height":800,"url":"https:\/\/bsolution.me\/fr\/wp-content\/uploads\/sites\/11\/2026\/09\/thumbnail.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bsolution.me\/fr\/pdf-splitter\/","url":"https:\/\/bsolution.me\/fr\/pdf-splitter\/","name":"Diviseur PDF - Diviser les pages PDF en ligne - bSolution","isPartOf":{"@id":"https:\/\/bsolution.me\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bsolution.me\/fr\/pdf-splitter\/#primaryimage"},"image":{"@id":"https:\/\/bsolution.me\/fr\/pdf-splitter\/#primaryimage"},"thumbnailUrl":"https:\/\/bsolution.me\/fr\/wp-content\/uploads\/sites\/11\/2026\/09\/thumbnail.jpg","datePublished":"2026-08-31T16:57:49+00:00","dateModified":"2026-09-22T10:38:15+00:00","description":"Divisez un fichier PDF en pages individuelles ou en groupes de pages personnalis\u00e9s gratuitement, directement dans votre navigateur.","breadcrumb":{"@id":"https:\/\/bsolution.me\/fr\/pdf-splitter\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bsolution.me\/fr\/pdf-splitter\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/bsolution.me\/fr\/pdf-splitter\/#primaryimage","url":"https:\/\/bsolution.me\/fr\/wp-content\/uploads\/sites\/11\/2026\/09\/thumbnail.jpg","contentUrl":"https:\/\/bsolution.me\/fr\/wp-content\/uploads\/sites\/11\/2026\/09\/thumbnail.jpg","width":800,"height":800,"caption":"Diviseur PDF - Diviser les pages PDF en ligne"},{"@type":"BreadcrumbList","@id":"https:\/\/bsolution.me\/fr\/pdf-splitter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bsolution.me\/fr\/"},{"@type":"ListItem","position":2,"name":"Diviseur de fichiers PDF &#8211; Division de PDF en pages et fichiers s\u00e9par\u00e9s"}]},{"@type":"WebSite","@id":"https:\/\/bsolution.me\/fr\/#website","url":"https:\/\/bsolution.me\/fr\/","name":"Outils Gratuits pour Entreprises","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bsolution.me\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"}]}},"_links":{"self":[{"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/pages\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":3,"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/pages\/4\/revisions"}],"predecessor-version":[{"id":10,"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/pages\/4\/revisions\/10"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/media\/24"}],"wp:attachment":[{"href":"https:\/\/bsolution.me\/fr\/wp-json\/wp\/v2\/media?parent=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}