在pdf c#中将图像水印添加到另一个图像上

所有,

我正在尝试使用itextsharp在pdf中添加图像水印。 水印按预期显示在所有页面上,但是已经有图像的页面。 我希望我的水印图像能够显示在pdf上的现有图像之上。 我正在使用以下代码添加图像

using (Stream output = new FileStream(outputFile, FileMode.Create, FileAccess.Write, FileShare.None)) { using (PdfStamper pdfStamper = new PdfStamper(pdfReader, output)) { for (int pageIndex = 1; pageIndex <= pdfReader.NumberOfPages; pageIndex++) { pdfStamper.FormFlattening = false; iTextSharp.text.Rectangle pageRectangle = pdfReader.GetPageSizeWithRotation(pageIndex); PdfContentByte pdfData = pdfStamper.GetUnderContent(pageIndex); pdfData.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED), 10); PdfGState graphicsState = new PdfGState(); graphicsState.FillOpacity = 0.4F; pdfData.SetGState(graphicsState); pdfData.BeginText(); iTextSharp.text.Image jpeg = iTextSharp.text.Image.GetInstance(wtrmrkimg, BaseColor.GREEN); float width = pageRectangle.Width; float height = pageRectangle.Height; jpeg.ScaleToFit(width, height); jpeg.SetAbsolutePosition(width / 2 - jpeg.Width / 2, height / 2 - jpeg.Height / 2); jpeg.SetAbsolutePosition(50, 50); jpeg.Rotation = 45; pdfData.AddImage(jpeg); pdfData.EndText(); } pdfStamper.Close(); } output.Close(); output.Dispose(); } 

我还附加了当前代码的输出: 这是有问题的形象

我只是通过更换来实现它

 PdfContentByte pdfData = pdfStamper.GetUnderContent(pageIndex); 

 PdfContentByte pdfData = pdfStamper.GetOverContent(pageIndex); 

更换

 jpeg.SetAbsolutePosition(width / 2 - jpeg.Width / 2, height / 2 - jpeg.Height / 2); 

 jpeg.SetAbsolutePosition(width / 2 - jpeg.ScaledWidth / 2, height / 2 - jpeg.ScaledHeight / 2); 

并删除

 jpeg.SetAbsolutePosition(50, 50); 

以水印为中心