HelpBot Assistant

How can I help you?

Rotate PDF Pages Using Syncfusion WEB API

24 Mar 20266 minutes to read

The Syncfusion Rotate PDF Web API lets you change the orientation of pages within a PDF quickly and accurately. By submitting a PDF to the API, you can rotate selected pages or the entire document to any desired angle while preserving the original content, layout, and quality. This feature is especially helpful for fixing incorrectly scanned pages or improving the readability and presentation of PDF documents.

Rotate PDF Pages

To rotate PDF pages, send a request to the /v1/edit-pdf/rotate-pages endpoint with a PDF document and its options as shown below.

curl --location 'http://localhost:8003/v1/edit-pdf/rotate-pages' \
--form 'file=@Input1.pdf' \
--form 'settings={
  "RotationAngle": "90",
  "File": "file",
  "Password": null,
  "PageRanges": [
    {
      "Start": 1,
      "End": 2
    },
    {
      "Start": 4,
      "End": 5
    }
     ]
}'
const formdata = new FormData();
formdata.append("file", fileInput.files[0], "Input1.pdf");
formdata.append(
  "settings",
  JSON.stringify({
    RotationAngle: 90, 
    File: "file",      
    Password: null,
    PageRanges: [
      { Start: 1, End: 2 },
      { Start: 4, End: 5 }
    ]
  })
);

const requestOptions = {
  method: "POST",
  body: formdata,
  redirect: "follow"
};

fetch("http://localhost:8003/v1/edit-pdf/rotate-pages", 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/rotate-pages");
var content = new MultipartFormDataContent();
content.Add(new StreamContent(File.OpenRead("Input1.pdf")), "file", "Input1.pdf");
var settings = new
{
    RotationAngle = 90,       
    File = "file",             
    Password = (string)null,   
    PageRanges = new[]
    {
      new { Start = 1, End = 2 },
      new { Start = 4, End = 5 }
    }
};

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());

Rotate PDF pages settings

RotationAngle

Specifies the angle (in degrees) by which the selected pages in the PDF should be rotated.
Supported values are 0, 90, 180, and 270.

Password

Specifies the password required to open and process a protected PDF file.

PageRanges

Specifies the page ranges within the PDF that should be rotated.

Start

Specifies the starting page number of the range to be rotated.

End

Specifies the ending page number of the range to be rotated.

Rotate PDF Job Response

Once the request is sent, it will create a job to rotate PDF pages and return the job details as follows:

{
    "jobID": "6be827c5-d86d-4fe5-9bd5-c8fd5887a455",
    "status": "requested",
    "createdAt": "2024-05-06T09:39:13.9505828Z"
}

Check Rotate 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.pdf
const 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