How can I help you?
Splitting PDFs Using Syncfusion WEB API
24 Mar 20265 minutes to read
The Syncfusion Split PDF Web API makes it easy to split a PDF into multiple smaller files. You can extract single pages or specific page ranges while preserving the document’s original layout and quality. This feature is ideal for separating important sections, sharing only the needed pages, or organizing large PDFs into more manageable files. It helps simplify document handling and improves distribution efficiency.
Split PDF Document
To split a PDF file, send a request to the /v1/edit-pdf/split endpoint with a PDF document and split options as shown below.
curl --location 'http://localhost:8003/v1/edit-pdf/split' \
--form 'file=@Input.pdf' \
--form 'settings={
"File": "file",
"Password": null,
"SplitOption":{"FileCount":10}
}'const formdata = new FormData();
formdata.append("file", fileInput.files[0], "Input1.pdf");
const formdata = new FormData();
formdata.append("file", file, file.name);
formdata.append(
"settings",
JSON.stringify({
File: "file",
Password: null,
SplitOption: { "FileCount": 10 }
})
);
const requestOptions = {
method: "POST",
body: formdata,
redirect: "follow"
};
fetch("http://localhost:8003/v1/edit-pdf/split", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:8003/v1/edit-pdf/split");
var content = new MultipartFormDataContent();
content.Add(new StreamContent(File.OpenRead("Input1.pdf")), "file", "Input1.pdf");
var settings = new
{
File = "file",
Password = (string?)null,
SplitOption = new
{
FileCount = 10
}
};
var json = JsonSerializer.Serialize(settings);
var settingsContent = new StringContent(json, Encoding.UTF8, "application/json");
content.Add(settingsContent, "settings");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());Split PDFs settings
File
Specifies the input PDF file that will be split into multiple documents.
Password
Specifies the password required to open and process a protected PDF file.
SplitOption
Defines the method and rules used to split the input PDF file.
FileCount
Specifies the number of output PDF files to create by evenly splitting the input document.
PageCount
Specifies the number of pages per output PDF file during the split process.
PageRanges
Specifies custom page ranges to split the input PDF into multiple documents.
ExtractRanges
Specifies specific pages or page groups to extract from the input PDF.
Start
Specifies the starting page number of the range to be split.
End
Specifies the ending page number of the range to be split.
ExtractPages
Specifies the pages to extract using page numbers or ranges (for example, 1,3,5‑7).
DownloadAsSinglePdf
Indicates whether the extracted pages should be combined into a single PDF file or saved as separate files.
Split PDF Job Response
Once the request is sent, it will create a job to split the PDF document and return the job details as follows:
{
"jobID": "6be827c5-d86d-4fe5-9bd5-c8fd5887a455",
"status": "requested",
"createdAt": "2024-05-06T09:39:13.9505828Z"
}
Check Split PDF Job Status
Next, you can retrieve the job status by sending a request to the /v1/edit-pdf/status/{jobID} endpoint with the job ID.
curl --location 'http://localhost:8003/v1/edit-pdf/status/f58c9739-622e-41d4-9dd2-57a901dc13c3' \
--output Output.pdfconst requestOptions = {
method: "GET",
redirect: "follow"
};
fetch("http://localhost:8003/v1/edit-pdf/status/4413bbb5-6b26-4c07-9af2-c26cd2c42fe3", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:8003/v1/edit-pdf/status/ef0766ab-bc74-456c-8143-782e730a89df");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());You will receive one of the following statuses until the job is completed. Upon completion, you will receive the actual output file.
Job Statuses:
- Queued:
{
"jobID": "4b2782b2-9f08-478b-98fc-4464bd219ca0",
"status": "queued"
}
- In Progress:
{
"jobID": "ef0766ab-bc74-456c-8143-782e730a89df",
"status": "in progress"
}
- Error:
{
"jobID": "ef0766ab-bc74-456c-8143-782e730a89df",
"status": "errror",
"code": "500",
"message": "Failed to convert the document to PDF"
}
NOTE
The Syncfusion Document Processing API is now available as a Docker-based solution. Try it out