import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Image; import com.lowagie.text.PageSize; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.GrayColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfImportedPage; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfWriter; public class TwoOnOne { String filenames; public TwoOnOne(String input) { filenames = input; } public boolean print(){ Document document = new Document(PageSize.A4,55,17,36,36); try { PdfReader currentReader = new PdfReader(filenames); document.setPageSize(PageSize.A4.rotate()); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:\\temp\\notesdone.pdf")); document.open(); int n = currentReader.getNumberOfPages(); float w = PageSize.A4.width()*0.625f; float h = PageSize.A4.height()*0.625f; for(int x = 1; x<=n; x++){ PdfImportedPage page = writer.getImportedPage(currentReader, x); Image image = Image.getInstance(page); if ( (x%2) == 1) { System.out.println(writer.getPageNumber()); PdfContentByte cb = writer.getDirectContent(); image.setBorder(Rectangle.BOX); image.setBorderWidth(3f); image.setBorderColor(new GrayColor(0.5f)); cb.addImage(image, w, 0, 0, h, 55, 32.f); }else { System.out.println(writer.getPageNumber()); PdfContentByte cb = writer.getDirectContent(); image.setBorder(Rectangle.BOX); image.setBorderWidth(3f); image.setBorderColor(new GrayColor(0.5f)); cb.addImage(image, w, 0, 0, h, w+55, 32.f); document.newPage(); } } } catch (IOException e) { e.printStackTrace(); return false; } catch (DocumentException e) { e.printStackTrace(); return false; } document.close(); return true; } }