1

我正在尝试使用 ITextSharp 的压模来标记现有的 pdf 文档。我能够打开现有的 pdf 并将图像放入所需位置。(在 pdf 上盖章)

问题是邮票(红色图像)总是在图纸下方。(黑色线条在红色图像上方)反之亦然。

我的结果: 在此处输入图像描述

想要的结果正好相反——黑色线条上的红色图像

知道如何正确完成此操作吗?谢谢任何建议。

这是我的代码:

        using (Stream inputPdfStream = new FileStream(@"D:\tmp\go\input.pdf", FileMode.Open, FileAccess.Read, FileShare.Read))
        using (Stream outputPdfStream = new FileStream(@"D:\tmp\go\output.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
        using (Stream inputImageStream = new FileStream(@"D:\tmp\go\stamp.png", FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            var reader = new PdfReader(inputPdfStream);
            var stamper = new PdfStamper(reader, outputPdfStream);

            int lastPage = reader.NumberOfPages;
            Image image = Image.GetInstance(inputImageStream);
            image.ScalePercent(35.5f);
            image.SetAbsolutePosition(30, 30);

            PdfGState graphicsState = new PdfGState();
            graphicsState.BlendMode = PdfGState.BM_DARKEN;

            var pdfContentByte = stamper.GetOverContent(lastPage);

            pdfContentByte.SetGState(graphicsState);
            pdfContentByte.SaveState();
            pdfContentByte.AddImage(image);

            stamper.Close();
        }
4

0 回答 0