
[英]add itext WaterMark to android java pdf
[英]Add watermark to pdf java iText
我想将图像或文本水印添加到pdf文件中。 我在网上找到了一些示例,但是我的情况有些不同。
我有一个现有的pdf模板,该模板已经填充了动态数据,并已转换为byte []。 生成的字节随后导出为pdf。
我想将水印添加到生成的字节中。 就像是:
byte[] addWatermark(byte[] generatedBytes){
byte[] bytesWithWatermark;
//add watermark to bytes
return bytesWithWatermark;
}
我只是似乎不知道如何使用iText做到这一点。
您说您已经有使用iText应用水印的示例。 由于已经有了PDF,因此应使用示例中的代码,该示例向现有 PDF添加水印。 这应该是一个与PdfReader
/ PdfStamper
对配合使用的PdfReader
,例如此处的所有,都具有以下结构
PdfReader reader = new PdfReader(SOME_SOURCE);
PdfStamper stamper = new PdfStamper(reader, SOME_TARGET_STREAM);
[... add watermark to all pages in stamper ...]
stamper.close();
reader.close();
为了使这些示例适合您的addWatermark
方法,只需使用byte[]
而不是SOME_SOURCE
和ByteArrayOutputStream
而不是SOME_TARGET_STREAM
:
byte[] addWatermark(byte[] generatedBytes) {
try (ByteArrayOutputStream target = new ByteArrayOutputStream()) {
PdfReader reader = new PdfReader(generatedBytes);
PdfStamper stamper = new PdfStamper(reader, target);
[... add watermark to all pages in stamper ...]
stamper.close();
reader.close();
return target.toByteArray();
}
}
PS当您仅使用标签itext而不使用标签itext7时 ,我假设您正在寻找iText 5.5.x的解决方案。 但是,与此处应用的原理相同,即使用byte[]
作为源参数,并使用ByteArrayOutputStream
作为目标参数,也可以使iText 7.x示例适合您的方法框架。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.