package it.stefanochizzolini.clown.samples; import it.stefanochizzolini.clown.documents.Document; import it.stefanochizzolini.clown.documents.Page; import it.stefanochizzolini.clown.documents.Pages; import it.stefanochizzolini.clown.files.File; import it.stefanochizzolini.clown.tools.PageManager; /** This sample demonstrates how to split a document into its constituting pages. @author Stefano Chizzolini (http://www.stefanochizzolini.it) @version 0.0.6 */ public class SplitSample implements ISample { public void run( PDFClownSampleLoader loader ) { // 1. Opening the PDF file... File file; { // (boilerplate user choice -- ignore it) String filePath = loader.getPdfFileChoice("Please select a PDF file"); try{file = new File(filePath);} catch(Exception e){throw new RuntimeException(filePath + " file access error.",e);} } Document document = file.getDocument(); // 2. Splitting the document into single-page documents... int index = 0; int pagesCount = document.getPages().size(); for(Document pageDocument : new PageManager(document).split()) { // (boilerplate metadata insertion -- ignore it) loader.buildAccessories(pageDocument,this.getClass(),"Split (" + (index + 1) + "/" + pagesCount + ")","splitting a PDF file into its constituting pages"); // Page file serialization (again, boilerplate code -- see the PDFClownSampleLoader class source code). loader.serialize(pageDocument.getFile(),this.getClass().getSimpleName() + "." + (++index),false); } } }