{"id":4,"date":"2026-08-31T16:58:09","date_gmt":"2026-08-31T16:58:09","guid":{"rendered":"https:\/\/bsolution.me\/it\/pdf-splitter\/"},"modified":"2026-09-22T10:38:26","modified_gmt":"2026-09-22T10:38:26","slug":"pdf-splitter","status":"publish","type":"page","link":"https:\/\/bsolution.me\/it\/pdf-splitter\/","title":{"rendered":"Divisore di file PDF &#8211; Suddivisione PDF in pagine e file separati"},"content":{"rendered":"\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 Modalit\u00e0 Notte<\/button>\n  <\/div>\n\n  <!-- HEADER -->\n  <header>\n    <h1 class=\"main-title\">\u2702\ufe0f Divisore di file PDF<\/h1>\n    <p class=\"subtitle\">Dividi un file PDF in pagine singole o in gruppi di pagine personalizzati &#8211; direttamente nel browser, senza caricamento su server.<\/p>\n    <div class=\"free-badge\">\n      <div class=\"free-dot\"><\/div>\n      <span>Lo strumento \u00e8 gratuito, senza registrazione e senza memorizzazione dei dati sul server<\/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>Trascina qui un file PDF<\/h2>\n      <p>Oppure fai clic per selezionare un file dal tuo computer<\/p>\n      <button class=\"btn-upload\" id=\"pdf-splitter-upload-btn\">\n        \ud83d\udcc2 Seleziona file 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\">Caricamento del file&#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> pagine &nbsp;|&nbsp;\n        <span id=\"pdf-splitter-selected-count\">0<\/span> selezionate\n      <\/div>\n      <div class=\"toolbar-actions\">\n        <button class=\"btn btn-secondary\" id=\"pdf-splitter-select-all-btn\">\u2611\ufe0f Seleziona tutto<\/button>\n        <button class=\"btn btn-secondary\" id=\"pdf-splitter-clear-btn\">\u2716\ufe0f Cancella selezione<\/button>\n        <button class=\"btn btn-primary\" id=\"pdf-splitter-add-group-btn\" disabled>\u2795 Aggiungi gruppo<\/button>\n        <button class=\"btn btn-success\" id=\"pdf-splitter-download-all-btn\">\u2b07\ufe0f Scarica ogni pagina separatamente<\/button>\n        <button class=\"btn btn-secondary\" id=\"pdf-splitter-reset-btn\">\ud83d\udd04 Carica un nuovo file<\/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\">Gruppi da scaricare:<\/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 Scarica gruppi come file separati<\/h3>\n      <div class=\"group-panel-actions\">\n        <button class=\"btn btn-success\" id=\"pdf-splitter-download-groups-btn\">\u2b07\ufe0f Scarica tutti i gruppi<\/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\">Preparazione dei file&#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\">Visualizzazione pagina<\/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 Seleziona questa pagina<\/button>\n          <button class=\"btn btn-secondary\" id=\"pdf-splitter-popup-download-btn\">\u2b07\ufe0f Scarica questa pagina<\/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\">Divisore PDF &#8211; Tutto ci\u00f2 che devi sapere<\/h2>\n\n      <p>Un divisore di file PDF \u00e8 uno strumento che consente di suddividere un singolo documento PDF che contiene molte pagine &#8211; in file separati. Lo strumento funziona <strong>completamente nel tuo browser<\/strong>, senza caricare il file su alcun server, quindi la privacy dei tuoi documenti \u00e8 completamente protetta.<\/p>\n\n      <h2 class=\"wp-block-heading\">Come si divide un file PDF?<\/h2>\n      <p>Tre modi per dividere:<\/p>\n      <ol>\n        <li><strong>Ogni pagina separatamente<\/strong> &#8211; fai clic su &#8220;Scarica ogni pagina separatamente&#8221; e ricevi un ZIP con ogni pagina come file PDF indipendente.<\/li>\n        <li><strong>Gruppi di pagine<\/strong> &#8211; seleziona pagine specifiche e fai clic su &#8220;Aggiungi gruppo&#8221;, torna a selezionare per ogni file desiderato, quindi scarica tutti i gruppi.<\/li>\n        <li><strong>Pagina singola dalla visualizzazione anteprima<\/strong> &#8211; apri una pagina in visualizzazione completa e fai clic su &#8220;Scarica questa pagina&#8221;.<\/li>\n      <\/ol>\n\n      <h2 class=\"wp-block-heading\">Quando avrai bisogno di dividere un PDF?<\/h2>\n      <ul>\n        <li>Hai ricevuto un lungo rapporto e devi inviare solo un capitolo<\/li>\n        <li>Fatture multiple in un unico file &#8211; devi separare ognuna<\/li>\n        <li>Un libro scannerizzato che desideri suddividere in capitoli<\/li>\n        <li>Un documento legale che richiede la firma su una pagina specifica<\/li>\n        <li>Una presentazione PDF che vuoi inviare come diapositive singole<\/li>\n      <\/ul>\n\n      <h2 class=\"wp-block-heading\">Privacy e sicurezza<\/h2>\n      <p>A differenza della maggior parte degli strumenti online, il nostro strumento elabora il file <strong>direttamente nel tuo browser<\/strong> utilizzando la tecnologia <strong>PDF.js<\/strong> e <strong>PDF-lib<\/strong>. Il file non lascia il tuo computer. Nessun server, nessun cloud, nessun storage. Questo \u00e8 particolarmente importante quando si tratta di contratti, documenti medici o documenti finanziari.<\/p>\n\n      <h2 class=\"wp-block-heading\">Altri strumenti per lavorare con PDF<\/h2>\n      <p>Se lavori molto con file PDF, probabilmente troverai utile anche il nostro <a href=\"\/it\/pdf-merger\/\" id=\"pdf-splitter-link-merger\">Unificatore e compressore di file PDF<\/a> &#8211; che consente di prendere pi\u00f9 file PDF e unirli in uno. Inoltre, per modificare le immagini all&#8217;interno dei tuoi documenti, puoi utilizzare il nostro <a href=\"\/it\/compress-image\/\" id=\"pdf-splitter-link-compress\">Strumento di compressione delle immagini<\/a> prima di inserirle nel PDF.<\/p>\n      <p>Per lavorare con file in generale, \u00e8 consigliabile controllare il nostro <a href=\"\/it\/file-preview\/\" id=\"pdf-splitter-link-preview\">Strumento di visualizzazione dei file<\/a>, che supporta una vasta gamma di formati.<\/p>\n\n      <h2 class=\"wp-block-heading\">Statistiche interessanti sui PDF<\/h2>\n      <table>\n        <thead>\n          <tr><th>Dato<\/th><th>Fonte<\/th><\/tr>\n        <\/thead>\n        <tbody>\n          <tr><td>PDF \u00e8 il formato di file pi\u00f9 comune per la condivisione di documenti professionali &#8211; oltre il 73% dei documenti aziendali<\/td><td>Adobe, 2023<\/td><\/tr>\n          <tr><td>Oltre 2,5 trilioni di file PDF esistono attualmente su Internet<\/td><td>PDF Association<\/td><\/tr>\n          <tr><td>Il formato \u00e8 stato definito come standard ISO internazionale (ISO 32000) nel 2008<\/td><td>ISO<\/td><\/tr>\n          <tr><td>PDF\/A \u00e8 la versione per l&#8217;archiviazione a lungo termine &#8211; uso comune nei governi e nel diritto<\/td><td>AIIM<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n\n      <h2 class=\"wp-block-heading\">Domande frequenti (FAQ)<\/h2>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Lo strumento limita il numero di pagine? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">Non ci sono limiti predefiniti. Le prestazioni dipendono dalla potenza del tuo computer e dalle dimensioni del file. File molto grandi (centinaia di pagine) potrebbero richiedere alcuni secondi per il caricamento.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Lo strumento mantiene il layout e le immagini? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">S\u00ec. La suddivisione avviene a livello del PDF originale, quindi il contenuto, i font, le immagini e il layout rimangono invariati.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Qual \u00e8 la differenza tra &#8220;Ogni pagina separatamente&#8221; e &#8220;Gruppi&#8221;? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">&#8220;Ogni pagina separatamente&#8221; scarica un file ZIP con ogni pagina come PDF separato. &#8220;Gruppi&#8221; ti consente di raccogliere pi\u00f9 pagine (ad esempio pagine 1-3) in un unico file PDF, e pagine 4-6 in un altro &#8211; e cos\u00ec via.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Un PDF criptato (con password) funzioner\u00e0? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">I file criptati richiedono l&#8217;inserimento della password. Lo strumento attuale supporta file non criptati. Per i file criptati, dovrai prima rimuovere la crittografia con un software appropriato.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Lo strumento funziona su mobile? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">S\u00ec, lo strumento \u00e8 ottimizzato per tutti i dispositivi. File molto grandi potrebbero essere pi\u00f9 lenti su uno smartphone.<\/div>\n      <\/div>\n\n      <div class=\"faq-item\">\n        <div class=\"faq-question\">Come si scarica un file ZIP al termine? <i class=\"faq-arrow\">\u25bc<\/i><\/div>\n        <div class=\"faq-answer\">Lo strumento utilizza la libreria JSZip e genera un file ZIP direttamente nel browser. Fare clic sul pulsante di download scaricher\u00e0 automaticamente il ZIP sul tuo computer.<\/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('Evento tracciato (GA non caricato):', 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 Modalit\u00e0 Giorno';\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 Modalit\u00e0 Giorno' : '\ud83c\udf19 Modalit\u00e0 Notte';\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 = 'Caricamento del file...';\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 = 'Analizzando le pagine...';\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('Errore nel caricamento del file: ' + 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=\"Visualizzazione completa\">\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\">Pagina ${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 = `Gruppo ${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\">Gruppi da scaricare:<\/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} pagine) <button class=\"chip-remove\" data-idx=\"${i}\" title=\"Rimuovi gruppo\">\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('Preparazione dei file...');\n    const zip = new JSZip();\n\n    for (let i = 1; i <= totalPages; i++) {\n      updateProgress(Math.round((i \/ totalPages) * 100), `Preparazione pagina ${i} di ${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, 'Creazione del file 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('Definisci almeno un gruppo prima.'); return; }\n    sendEvent( 'tool_interaction', { tool_name: 'pdf-splitter', action: 'download_groups', num_groups: groups.length });\n    const startTime = Date.now();\n\n    showProgress('Preparazione dei gruppi...');\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), `Preparazione di ${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, 'Creazione del file 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 = `Visualizzazione pagina ${popupPage}`;\n    popupPageInfo.textContent = `Pagina ${popupPage} di ${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 Rimosso dalla selezione' : '\u2611\ufe0f Seleziona questa pagina';\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 Scaricando...';\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 Scarica questa pagina';\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\": \"Divisore di file PDF\",\n      \"description\": \"Strumento online gratuito per dividere un file PDF in pagine singole o in gruppi di pagine, funziona direttamente nel browser senza caricamento su server.\",\n      \"applicationCategory\": \"UtilityApplication\",\n      \"operatingSystem\": \"Web Browser\",\n      \"offers\": {\n        \"@type\": \"Offer\",\n        \"price\": \"0\",\n        \"priceCurrency\": \"EUR\"\n      },\n      \"inLanguage\": \"it\",\n      \"url\": \"https:\/\/bsolution.me\/it\/pdf-splitter\/\",\n      \"author\": {\n        \"@type\": \"Organization\",\n        \"name\": \"bSolution\",\n        \"url\": \"https:\/\/bsolution.me\",\n        \"address\": {\n          \"@type\": \"PostalAddress\",\n          \"addressCountry\": \"IT\"\n        }\n      }\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Lo strumento limita il numero di pagine?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"Non ci sono limiti predefiniti. Le prestazioni dipendono dalla potenza del tuo computer e dalle dimensioni del file.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Lo strumento mantiene il layout e le immagini?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"S\u00ec. La suddivisione avviene a livello del PDF originale, quindi il contenuto, i font, le immagini e il layout rimangono invariati.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Qual \u00e8 la differenza tra 'Ogni pagina separatamente' e 'Gruppi'?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"'Ogni pagina separatamente' scarica un ZIP con ogni pagina come PDF. 'Gruppi' consente di raccogliere pagine in file composti a scelta.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Un PDF criptato funzioner\u00e0?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"I file criptati richiedono la rimozione della crittografia in anticipo. Lo strumento supporta file non criptati.\" }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Lo strumento funziona su mobile?\",\n          \"acceptedAnswer\": { \"@type\": \"Answer\", \"text\": \"S\u00ec, lo strumento \u00e8 ottimizzato per tutti i dispositivi.\" }\n        }\n      ]\n    },\n    {\n      \"@type\": \"SpeakableSpecification\",\n      \"cssSelector\": [\"h1.main-title\", \".subtitle\", \".wp-block-heading\"]\n    }\n  ]\n}\n<\/script>\n\n<!-- \/wp:post-content -->","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf19 Modalit\u00e0 Notte \u2702\ufe0f Divisore di file PDF Dividi un file PDF in pagine singole o in gruppi di pagine personalizzati &#8211; direttamente nel browser, senza caricamento su server. Lo strumento \u00e8 gratuito, senza registrazione e senza memorizzazione dei dati sul server \ud83d\udcc4 Trascina qui un file PDF Oppure fai clic per selezionare un file [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":14,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_yoast_wpseo_title":"Divisore PDF - Dividi pagine PDF online - bSolution","_yoast_wpseo_metadesc":"Dividi un file PDF in pagine singole o gruppi di pagine personalizzati gratuitamente, direttamente nel browser.","footnotes":"","tool_category":"Modifica dei File","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>Divisore PDF - Dividi pagine PDF online - bSolution<\/title>\n<meta name=\"description\" content=\"Dividi un file PDF in pagine singole o gruppi di pagine personalizzati gratuitamente, direttamente nel browser.\" \/>\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\/it\/pdf-splitter\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Divisore PDF - Dividi pagine PDF online - bSolution\" \/>\n<meta property=\"og:description\" content=\"Dividi un file PDF in pagine singole o gruppi di pagine personalizzati gratuitamente, direttamente nel browser.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bsolution.me\/it\/pdf-splitter\/\" \/>\n<meta property=\"og:site_name\" content=\"Strumenti Gratuiti per le Aziende\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-22T10:38:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bsolution.me\/it\/wp-content\/uploads\/sites\/14\/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=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/\",\"url\":\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/\",\"name\":\"Divisore PDF - Dividi pagine PDF online - bSolution\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bsolution.me\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/14\\\/2026\\\/09\\\/thumbnail.jpg\",\"datePublished\":\"2026-08-31T16:58:09+00:00\",\"dateModified\":\"2026-09-22T10:38:26+00:00\",\"description\":\"Dividi un file PDF in pagine singole o gruppi di pagine personalizzati gratuitamente, direttamente nel browser.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bsolution.me\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/14\\\/2026\\\/09\\\/thumbnail.jpg\",\"contentUrl\":\"https:\\\/\\\/bsolution.me\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/14\\\/2026\\\/09\\\/thumbnail.jpg\",\"width\":800,\"height\":800,\"caption\":\"Divisore PDF - Dividi pagine PDF online\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/pdf-splitter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bsolution.me\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Divisore di file PDF &#8211; Suddivisione PDF in pagine e file separati\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bsolution.me\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/bsolution.me\\\/it\\\/\",\"name\":\"Strumenti Gratuiti per le Aziende\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bsolution.me\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Divisore PDF - Dividi pagine PDF online - bSolution","description":"Dividi un file PDF in pagine singole o gruppi di pagine personalizzati gratuitamente, direttamente nel browser.","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\/it\/pdf-splitter\/","og_locale":"it_IT","og_type":"article","og_title":"Divisore PDF - Dividi pagine PDF online - bSolution","og_description":"Dividi un file PDF in pagine singole o gruppi di pagine personalizzati gratuitamente, direttamente nel browser.","og_url":"https:\/\/bsolution.me\/it\/pdf-splitter\/","og_site_name":"Strumenti Gratuiti per le Aziende","article_modified_time":"2026-09-22T10:38:26+00:00","og_image":[{"width":800,"height":800,"url":"https:\/\/bsolution.me\/it\/wp-content\/uploads\/sites\/14\/2026\/09\/thumbnail.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bsolution.me\/it\/pdf-splitter\/","url":"https:\/\/bsolution.me\/it\/pdf-splitter\/","name":"Divisore PDF - Dividi pagine PDF online - bSolution","isPartOf":{"@id":"https:\/\/bsolution.me\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bsolution.me\/it\/pdf-splitter\/#primaryimage"},"image":{"@id":"https:\/\/bsolution.me\/it\/pdf-splitter\/#primaryimage"},"thumbnailUrl":"https:\/\/bsolution.me\/it\/wp-content\/uploads\/sites\/14\/2026\/09\/thumbnail.jpg","datePublished":"2026-08-31T16:58:09+00:00","dateModified":"2026-09-22T10:38:26+00:00","description":"Dividi un file PDF in pagine singole o gruppi di pagine personalizzati gratuitamente, direttamente nel browser.","breadcrumb":{"@id":"https:\/\/bsolution.me\/it\/pdf-splitter\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bsolution.me\/it\/pdf-splitter\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/bsolution.me\/it\/pdf-splitter\/#primaryimage","url":"https:\/\/bsolution.me\/it\/wp-content\/uploads\/sites\/14\/2026\/09\/thumbnail.jpg","contentUrl":"https:\/\/bsolution.me\/it\/wp-content\/uploads\/sites\/14\/2026\/09\/thumbnail.jpg","width":800,"height":800,"caption":"Divisore PDF - Dividi pagine PDF online"},{"@type":"BreadcrumbList","@id":"https:\/\/bsolution.me\/it\/pdf-splitter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bsolution.me\/it\/"},{"@type":"ListItem","position":2,"name":"Divisore di file PDF &#8211; Suddivisione PDF in pagine e file separati"}]},{"@type":"WebSite","@id":"https:\/\/bsolution.me\/it\/#website","url":"https:\/\/bsolution.me\/it\/","name":"Strumenti Gratuiti per le Aziende","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bsolution.me\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"}]}},"_links":{"self":[{"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/pages\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":3,"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/pages\/4\/revisions"}],"predecessor-version":[{"id":10,"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/pages\/4\/revisions\/10"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/media\/14"}],"wp:attachment":[{"href":"https:\/\/bsolution.me\/it\/wp-json\/wp\/v2\/media?parent=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}