Skip to main content
Skip table of contents

Page orientation and rotation

Examples written in answer to questions such as:


pageorientations

JAVA

JAVA
/**
 * This example was written by Bruno Lowagie.
 */
package sandbox.events;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfName;
import com.itextpdf.text.pdf.PdfNumber;
import com.itextpdf.text.pdf.PdfPage;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import sandbox.WrapToTest;

@WrapToTest
public class PageOrientations {
    public static final String DEST = "results/events/orientations.pdf";
    
    public class Rotate extends PdfPageEventHelper {
        
        protected PdfNumber orientation = PdfPage.PORTRAIT;
        
        public void setOrientation(PdfNumber orientation) {
            this.orientation = orientation;
        }
        
        @Override
        public void onStartPage(PdfWriter writer, Document document) {
            writer.addPageDictEntry(PdfName.ROTATE, orientation);
        }
    }
    
    public static void main(String[] args) throws IOException, DocumentException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new PageOrientations().createPdf(DEST);
    }
    
    public void createPdf(String filename) throws IOException, DocumentException {
        // step 1
        Document document = new Document();
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
        Rotate event = new Rotate();
        writer.setPageEvent(event);
        // step 3
        document.open();
        // step 4
        document.add(new Paragraph("A simple page in portrait orientation"));
        event.setOrientation(PdfPage.LANDSCAPE);
        document.newPage();
        document.add(new Paragraph("A simple page in landscape orientation"));;
        event.setOrientation(PdfPage.INVERTEDPORTRAIT);
        document.newPage();
        document.add(new Paragraph("A simple page in inverted portrait orientation"));;
        event.setOrientation(PdfPage.SEASCAPE);
        document.newPage();
        document.add(new Paragraph("A simple page in seascape orientation"));
        // step 5
        document.close();
    }
}


pagerotation

JAVA

JAVA
/**
 * This example was written by Bruno Lowagie in answer to the following question:
 * http://stackoverflow.com/questions/22051835/itext-pdf-document-rotate-some-but-not-all-pages
 */
package sandbox.events;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfName;
import com.itextpdf.text.pdf.PdfNumber;
import com.itextpdf.text.pdf.PdfPage;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import sandbox.WrapToTest;

@WrapToTest
public class PageRotation {
    public static final String DEST = "results/events/rotate_pages.pdf";
    
    
    public class Rotate extends PdfPageEventHelper {
        protected PdfNumber rotation = PdfPage.PORTRAIT;
        public void setRotation(PdfNumber rotation) {
            this.rotation = rotation;
        }
        public void onEndPage(PdfWriter writer, Document document) {
            writer.addPageDictEntry(PdfName.ROTATE, rotation);
        }
    }
    
    public static void main(String[] args) throws IOException, DocumentException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new PageRotation().createPdf(DEST);
    }
    
    public void createPdf(String filename) throws IOException, DocumentException {
        // step 1
        Document document = new Document();
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
        Rotate rotation = new Rotate();
        writer.setPageEvent(rotation);
        // step 3
        document.open();
        // step 4
        document.add(new Paragraph("Hello World!"));
        document.newPage();
        rotation.setRotation(PdfPage.LANDSCAPE);
        document.add(new Paragraph("Hello World!"));
        document.newPage();
        rotation.setRotation(PdfPage.INVERTEDPORTRAIT);
        document.add(new Paragraph("Hello World!"));
        document.newPage();
        rotation.setRotation(PdfPage.SEASCAPE);
        document.add(new Paragraph("Hello World!"));
        document.newPage();
        rotation.setRotation(PdfPage.PORTRAIT);
        document.add(new Paragraph("Hello World!"));
        // step 5
        document.close();
    }
}


seascape

JAVA

JAVA
/**
 * This example was written by Bruno Lowagie in answer to the following question:
 * http://stackoverflow.com/questions/29152313/fix-the-orientation-of-a-pdf-in-order-to-scale-it
 */
package sandbox.events;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfName;
import com.itextpdf.text.pdf.PdfPage;
import com.itextpdf.text.pdf.PdfPageEventHelper;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import sandbox.WrapToTest;

@WrapToTest
public class Seascape {
    public static final String DEST = "results/events/seascape.pdf";
    
    public class Rotate extends PdfPageEventHelper {
        @Override
        public void onStartPage(PdfWriter writer, Document document) {
            writer.addPageDictEntry(PdfName.ROTATE, PdfPage.SEASCAPE);
        }
    }
    
    public static void main(String[] args) throws IOException, DocumentException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new Seascape().createPdf(DEST);
    }
    
    public void createPdf(String filename) throws IOException, DocumentException {
        // step 1
        Document document = new Document();
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
        Rotate event = new Rotate();
        writer.setPageEvent(event);
        // step 3
        document.open();
        // step 4
        for (int i = 0; i < 50; i++)
            document.add(new Paragraph("Hello World!"));
        document.newPage();
        document.add(new Paragraph("Hello World!"));
        document.newPage();
        document.add(new Paragraph("Hello World!"));
        // step 5
        document.close();
    }
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.