import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.PdfNumber;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfName;
import com.lowagie.text.pdf.PdfStamper;
import java.io.FileOutputStream;
import java.io.IOException;
public class RotatePages
{
public static void main(String[] args)
{
String fileName = "";
String outFileName = "";
int degrees = 0;
String usage = "usage: RotatePages <input> <output> <degrees>";
if (args.length > 2)
{
fileName = args[0];
outFileName = args[1];
try
{
degrees = Integer.parseInt(args[2]);
if (degrees != 90 && degrees != 180)
{
System.out.println("Entered: " + degrees);
throw new NumberFormatException();
}
}
catch (NumberFormatException e)
{
System.out.println(usage);
System.out.println("Please specify either 90 or 180 degrees.");
return;
}
}
else
{
System.out.println(usage);
return;
}
try
{
System.out.println("Rotating all pages in " + fileName + " by "
+ degrees + " degrees.");
PdfReader reader = new PdfReader(fileName);
for (int p = 1; p <= reader.getNumberOfPages(); ++p)
{
reader.getPageN(p).put(PdfName.ROTATE, new PdfNumber(degrees));
}
PdfStamper stp = new PdfStamper(reader, new FileOutputStream(
outFileName));
stp.close();
System.out.println("Writing " + outFileName + " ...");
}
catch (DocumentException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}