Java: Get Page Size, Orientation and Rotation of PDF

Getting the PDF page size, orientation and rotation angle are tasks that are often required when working with PDF documents. These parameters are important to ensure that the printout meets expectations and that the document content is displayed correctly on different devices. In this article, you will learn how to get the page size, orientation and rotation angle of PDFs in Java using Spire.PDF for Java.

Install Spire.PDF for Java

First of all, you're required to add the Spire.Pdf.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>10.10.7</version>
    </dependency>
</dependencies>
    

Get PDF Page Size in Java

Spire.PDF for Java offers the PdfPageBase.getSize().getWidth() and PdfPageBase.getSize().getHeight() methods to get the width and height of a PDF page in points. If you want to convert the default unit of measure to other units, you can use the PdfUnitConvertor class. The following are the detailed steps.

  • Create a PdfDocument instance.
  • Load a PDF file using PdfDocument.loadFromFile() method.
  • Get a specified page using PdfDocument.getPages().get() method.
  • Get the width and height of the PDF page using PdfPageBase.getSize().getWidth() and PdfPageBase.getSize().getHeight() methods.
  • Create a PdfUnitConvertor instance, and then convert the size units from points to other units of measure using PdfUnitConvertor.convertUnits() method.
  • Add the page size information to a StringBuilder instance, and then save the result to a TXT file.
  • Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.io.*;

public class GetPDFPageSize {
    public static void main(String[] args) throws IOException {

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();

        //Load a PDF file from disk
        pdf.loadFromFile("SamplePDF.pdf");

        //Get the first page
        PdfPageBase page = pdf.getPages().get(0);

        //Get the width and height of the page in "point"
        double pointWidth = page.getSize().getWidth();
        double pointHeight = page.getSize().getHeight();

        //Create PdfUnitConvertor to convert the unit
        PdfUnitConvertor unitCvtr = new PdfUnitConvertor();

        //Convert size units from points to pixels
        float pixelWidth = unitCvtr.convertUnits((float) pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel);
        float pixelHeight = unitCvtr.convertUnits((float) pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Pixel);

        //Convert size units from points to inches
        float inchWidth = unitCvtr.convertUnits((float) pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Inch);
        float inchHeight = unitCvtr.convertUnits((float) pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Inch);

        //Convert size units from points to centimeters
        float centimeterWidth = unitCvtr.convertUnits((float) pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter);
        float centimeterHeight = unitCvtr.convertUnits((float) pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter);

        //Create StringBuilder to save
        StringBuilder content = new StringBuilder();

        //Add the page size information to the StringBuilder instance
        content.append("The page size of the file in points is (width: " + pointWidth + "pt, height: " + pointHeight + "pt)." + "\r\n");
        content.append("The page size of the file in pixels is (width: " + pixelWidth + "pixel, height: " + pixelHeight + "pixel)." + "\r\n");
        content.append("The page size of the file in inches is (width: " + inchWidth + "inch, height: " + inchHeight + "inch)." + "\r\n");
        content.append("The page size of the file in centimeters is (width: " + centimeterWidth + "cm, height: " + centimeterHeight + "cm)." + "\r\n");

        //Write information to a txt file
        FileWriter writer = new FileWriter("GetPageSize.txt");
        writer.write(content.toString());
        writer.flush();
        writer.close();
        
        pdf.close();
        pdf.dispose();
    }
}

Java: Get Page Size, Orientation and Rotation of PDF

Detect PDF Page Orientation in Java

To detect the orientation of a PDF page, you can compare the width and height of the page. If the page width is greater than the height, then the page orientation is landscape, otherwise it is portrait. The following are the detailed steps.

  • Create a PdfDocument instance.
  • Load a PDF file using PdfDocument.loadFromFile() method.
  • Get a specified page using PdfDocument.getPages().get() method.
  • Get the width and height of the PDF page using PdfPageBase.getSize().getWidth() and PdfPageBase.getSize().getHeight() methods.
  • Compare the values of page width and height to detect the page orientation.
  • Print out the result.
  • Java
import com.spire.pdf.*;
import java.io.*;

public class GetPDFPageOrientation {
    public static void main(String[] args) throws IOException {

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();

        //Load a PDF file from disk
        pdf.loadFromFile("SamplePDF.pdf");

        //Get the first page
        PdfPageBase page = pdf.getPages().get(0);

        //Get the width and height of the page
        double width = page.getSize().getWidth();
        double height = page.getSize().getHeight();

        //Compare the value of page width and height
        if (width> height){
            System.out.println("The page orientation is Landscape");
        }
        else{
            System.out.println("The page orientation is Portrait");
        }
    }
}

Java: Get Page Size, Orientation and Rotation of PDF

Detect PDF Page Rotation Angle in Java

The rotation angle of a PDF page can be obtained through the PdfPageBase.getRotation() method. The following are the detailed steps.

  • Create a PdfDocument instance.
  • Load a PDF file using PdfDocument.loadFromFile() method.
  • Get a specified page using PdfDocument.getPages().get() method.
  • Get the rotation angle of the page using PdfPageBase.getRotation() method, and then convert it to text string.
  • Create a PdfUnitConvertor instance, and then convert the size units from points to other units of measure using PdfUnitConvertor.convertUnits() method.
  • Print out the result.
  • Java
import com.spire.pdf.*;
import java.io.*;

public class GetPDFPageOrientation {
    public static void main(String[] args) throws IOException {

        //Create a PdfDocument object
        PdfDocument pdf = new PdfDocument();

        //Load a PDF file from disk
        pdf.loadFromFile("Sample.pdf");

        //Get the first page
        PdfPageBase page = pdf.getPages().get(0);

        //Get the rotation angle of the current page
        PdfPageRotateAngle rotationAngle = page.getRotation();
        String rotation = rotationAngle.toString();
        
        //Print out the page rotation angle information
        System.out.println("The rotation angle of the current page is: " + rotation);
    }
}

Java: Get Page Size, Orientation and Rotation of PDF

Apply for a Temporary License

If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.