public class Main {
String rootIn
= "/home/lbonaldo/tmpdir/PdfExtension/in"; String rootOut
= "/home/lbonaldo/tmpdir/PdfExtension/out";
FileUtils.
cleanDirectory(new File(rootOut
)); merge(rootIn + "/pdf_02.pdf", rootOut + "/MERGE", rootOut + "/RESULT.pdf");
}
log("Splitting document by pages using PDFBox...");
PDDocument document = new PDDocument();
document = PDDocument.load(input);
// split delle pagine in singoli documenti pdf
Splitter splitter = new Splitter();
List<PDDocument> listOfSplitPages = splitter.split(document);
// li salvo nel fs per log
Iterator<PDDocument> iterator = listOfSplitPages.listIterator();
int i = 1;
while (iterator.hasNext()) {
PDDocument pd = iterator.next();
try {
pd.save(prefix + "_" + i + ".pdf");
i++;
} catch (COSVisitorException anException) {
System.
err.
println("Something went wrong with page " + (i
- 1) + "\n Here is the error essage" + anException
); }
}
// ******************
// svuoto la lista e la riempio con gli stessi pdf ma letti da fs
listOfSplitPages.clear();
for (int j = 1; j < i; j++) {
PDDocument pd = PDDocument.load(in);
listOfSplitPages.add(pd);
}
// ******************
log("Merging pages using PDFBox...");
PDDocument merged = new PDDocument();
i = 1;
for (PDDocument pdDoc : listOfSplitPages) {
List<PDPage> pdPageList = pdDoc.getDocumentCatalog().getAllPages();
for (PDPage pdPage : pdPageList) {
merged.importPage(pdPage);
}
i++;
}
merged.save(destination);
}
public static void log
(String str
) { }
}