diff --git a/src/main/java/net/faustedition/gen/PdfMerger.java b/src/main/java/net/faustedition/gen/PdfMerger.java new file mode 100644 index 0000000..c79617f --- /dev/null +++ b/src/main/java/net/faustedition/gen/PdfMerger.java @@ -0,0 +1,35 @@ +package net.faustedition.gen; + +import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfReader; +import com.itextpdf.kernel.pdf.PdfWriter; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class PdfMerger { + + public static void main(String[] argv) { + final PdfWriter writer; + try { + writer = new PdfWriter("/tmp/out.pdf"); + writer.setSmartMode(true); + final PdfDocument pdfDocument = new PdfDocument(writer); + pdfDocument.initializeOutlines(); + Path root = Paths.get("/home/tv/git/faust-gen/target/www/transcript/diplomatic/2_H"); + + for (int i = 1; i < 390; i++) { + PdfDocument addedDoc = new PdfDocument(new PdfReader(root.resolve(String.format("page_%d.pdf", i)).toString())); + addedDoc.copyPagesTo(1, addedDoc.getNumberOfPages(), pdfDocument); + addedDoc.close(); + } + pdfDocument.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/net/faustedition/gen/PdfMergerBoxBased.java b/src/main/java/net/faustedition/gen/PdfMergerBoxBased.java new file mode 100644 index 0000000..0f369c2 --- /dev/null +++ b/src/main/java/net/faustedition/gen/PdfMergerBoxBased.java @@ -0,0 +1,32 @@ +package net.faustedition.gen; + +import org.apache.pdfbox.io.MemoryUsageSetting; +import org.apache.pdfbox.multipdf.PDFMergerUtility; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class PdfMergerBoxBased { + + + public static void main(String[] argv) { + final PDFMergerUtility merger = new PDFMergerUtility(); + merger.setDestinationFileName("/tmp/2_H_box.pdf"); + final Path root = Paths.get("/home/tv/git/faust-gen/target/www/transcript/diplomatic/2_H"); + for (int i = 1; i < 390; i++) { + try { + merger.addSource(root.resolve(String.format("page_%d.pdf", i)).toFile()); + } catch (FileNotFoundException e) { + System.err.println("file not found" + e.getMessage()); + } + } + try { + merger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly()); + } catch (IOException e) { + e.printStackTrace(); + } + } + +}