//@include lib_Class.js /** * PDF utilities * * @author MW, ELO Digital Office GmbH * * @eloas * * @requires sol.common.RepoUtils */ sol.define("sol.common.as.PdfUtils", { singleton: true, /** * Merges PDF streams * @param {Array} inputStreams PDF input streams * @param {java.io.OutputStream} outputStream */ mergePdfStreams: function (inputStreams, outputStream) { var me = this, pdfBoxVersion, pdfMerger; if (!inputStreams) { throw "Input streams are empty"; } pdfBoxVersion = (new Packages.org.apache.pdfbox.pdmodel.PDDocument()).class.package.implementationVersion; me.logger.debug(["PDF box version: {0}", pdfBoxVersion]); if (pdfBoxVersion > "2.0.0") { pdfMerger = new Packages.org.apache.pdfbox.multipdf.PDFMergerUtility(); } else { pdfMerger = new Packages.org.apache.pdfbox.util.PDFMergerUtility(); } inputStreams.forEach(function (inputStream) { pdfMerger.addSource(inputStream); }); pdfMerger.destinationStream = outputStream; pdfMerger.mergeDocuments(); inputStreams.forEach(function (inputStream) { inputStream.close(); }); } });