Skip to content

Instantly share code, notes, and snippets.

@chumpa
Created February 11, 2022 17:07
Show Gist options
  • Save chumpa/6d37953ff7626f27de70880417169b8f to your computer and use it in GitHub Desktop.
Save chumpa/6d37953ff7626f27de70880417169b8f to your computer and use it in GitHub Desktop.
itext7 pdf merger
import com.sap.gateway.ip.core.customdev.util.Message as CpiMsg
import com.itextpdf.kernel.pdf.PdfDocument
import com.itextpdf.kernel.pdf.PdfReader
import com.itextpdf.kernel.pdf.PdfWriter
import com.itextpdf.kernel.utils.PdfMerger
import java.util.zip.ZipInputStream
CpiMsg addCover(CpiMsg msg) {
ZipInputStream zis = new ZipInputStream(getClass().getResourceAsStream("/lib/hero.jar")) // zipped new cover
zis.nextEntry
PdfDocument cover = new PdfDocument(new PdfReader(zis))
ByteArrayOutputStream dest = new ByteArrayOutputStream()
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest))
PdfDocument input = new PdfDocument(new PdfReader(msg.getBody(InputStream)))
PdfMerger merger = new PdfMerger(pdfDoc)
merger.merge(cover, 1, 1)
merger.merge(input, 1, input.getNumberOfPages())
cover.close()
input.close()
merger.close()
dest.close()
msg.headers."content-type" = "application/pdf"
msg.setBody(dest.toByteArray())
return msg
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment