// Create a pdf file stream FileOutputStream outputStream = null; try { outputStream = new FileOutputStream("PrintMultipleWorksheetsToOnePage.pdf"); } catch (FileNotFoundException e) { e.printStackTrace(); } // Create a new workbook Workbook workbook = new Workbook(); workbook.open(this.getResourceStream("xlsx/Multiple sheets one page.xlsx")); IWorksheet worksheet = workbook.getWorksheets().get(0); //Create a pdf document. PDDocument doc = new PDDocument(); //This page will save datas for multiple pages. PDPage page = new PDPage(); doc.addPage(page); //Create a PrintManager. PrintManager printManager = new PrintManager(); //Get the pagination information of the workbook. List pages = printManager.paginate(workbook); //Divide the multiple pages into 1 rows and 2 columns and printed them on one page. printManager.draw(doc, page, pages, 1, 2); //Save the modified pages into pdf file. try { doc.save(outputStream); doc.close(); } catch (IOException e) { // Log ignored error of your code // log.debug(e.getMessage()); } // Close the file stream try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); }