图片和 PDF 背景无缝融合,不遮挡、不突兀代码如下,需要iText7库:
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.element.Image;
import java.io.File;
public class PdfImageBlendMode {
public static void main(String[] args) throws Exception {
// 输入PDF、图片、输出PDF
String srcPdf = "input.pdf";
String destPdf = "output.pdf";
String imgPath = "image.png";
// 打开PDF
PdfDocument pdfDoc = new PdfDocument(
new PdfReader(srcPdf),
new PdfWriter(destPdf)
);
// 获取第1页画布
PdfCanvas canvas = new PdfCanvas(pdfDoc.getPage(1));
// ==================== 关键:混合模式(正片叠底)====================
PdfExtGState extGState = new PdfExtGState();
extGState.setBlendMode(PdfName.Multiply); // 正片叠底 = 最自然融合
canvas.setExtGState(extGState);
// =================================================================
// 加载图片
Image img = new Image(ImageDataFactory.create(imgPath));
// 设置大小与位置
img.scaleAbsolute(250, 200);
img.setFixedPosition(100, 200);
// 把图片画到画布
img.drawOn(canvas, pdfDoc.getPage(1));
pdfDoc.close();
System.out.println("融合完成!");
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。