gpt4 book ai didi

c# - 在pdf c#中的另一个图像上添加图像水印

转载 作者:太空狗 更新时间:2023-10-30 00:07:55 25 4
gpt4 key购买 nike

全部,

我正在尝试使用 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();
}

我还附加了当前代码的输出: This is the problematic image

最佳答案

我只是通过替换让它工作

PdfContentByte pdfData = pdfStamper.GetUnderContent(pageIndex);

PdfContentByte pdfData = pdfStamper.GetOverContent(pageIndex);

关于c# - 在pdf c#中的另一个图像上添加图像水印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15612044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com