This demo uses the DevExpress PDF Document API to split a document into logical parts.
You can split the predefined sample file or supply your own document. To do the latter, select Upload a File in the file selection drop-down menu. In the Split Settings panel, specify the document pages you want to extract.
Use the Split Document button to split the PDF file and download the result.
Sample document
Sample_Main.pdf
Split Settings
using DevExpress.Pdf;
IReadOnlyList<Stream> SplitDocuments(Stream documentStream, IEnumerable<int> pageRange) {
using var processor = new PdfDocumentProcessor();
processor.LoadDocument(documentStream);
if(!pageRange.Any())
pageRange = Enumerable.Range(0, processor.Document.Pages.Count);
var result = new List<Stream>();
foreach(var index in pageRange) {
if(index < 0 || index >= processor.Document.Pages.Count)
continue;
using var pageProcessor = new PdfDocumentProcessor();
pageProcessor.CreateEmptyDocument();
pageProcessor.Document.Pages.Add(processor.Document.Pages[index]);
var outputStream = new MemoryStream();
pageProcessor.SaveDocument(outputStream);
outputStream.Position = 0;
result.Add(outputStream);
}
return result;
}