on 02-11-2022 12:14 PM
Hello Experts,
I need to add company logo into the pdf file, picked up from SFTP.
Could you suggest some groovy script to achieve this please.
regards, Avinash
Hi Avinash,
I used itext5 (or fourth? version) for similar task, it works on CPI environment (JDK8 etc).
Latest itext7 could ask more fresher JDK and it's commercial (some royalti is required).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Well, it works with itext7. Your client MUST buy the license for using it!
The PoC is simple and works on CF trial CPI:
The resources with itext7 and custom new logo:
Script:
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
}
Postman: POST https://92022ebbtrial.it-cpitrial03-rt.cfapps.ap21.hana.ondemand.com/http/itext7 with some pages.pdf as input
Expected behaviour: Response is hero.pdf + pages.pdf concatenated into new pdf.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.