Splitting creates consecutive page groups: a 10-page source split at three pages produces ranges 1-3, 4-6, 7-9, and 10. The final part may contain fewer pages.
Split from .NET
using OfficeIMO.Pdf;
PdfDocument source = PdfDocument.Open("book.pdf");
int pageCount = source.Inspect().PageCount;
const int pagesPerPart = 10;
for (int first = 1, part = 1; first <= pageCount; first += pagesPerPart, part++) {
int last = Math.Min(pageCount, first + pagesPerPart - 1);
PdfPageSelector pages = PdfPageSelector.Parse($"{first}-{last}");
File.WriteAllBytes($"book.part-{part:000}.pdf", source.Pages.Extract(pages).ToBytes());
}
Application code decides how to name and store individual outputs. The browser packages them into ZIP because browsers handle one bounded download more predictably than a burst of separate files.
Boundaries
Splitting does not infer chapters, bookmarks, invoices, or logical document boundaries. Use extract pages when the required ranges are not consecutive fixed-size groups. Signed and encrypted sources also require deliberate policy because each output is a newly written document.