iTextSharp - добавление штампа - штамп не поверх содержимого, а под ним - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь штамповать существующий документ в формате PDF, используя штамп ITextSharp.Я могу открыть существующий PDF-файл и поместить изображение в нужную позицию.(печать в формате pdf)

Проблема в том, что штамп (красное изображение) всегда находится под чертежом.(черные линии над красным изображением) Я не могу сделать это наоборот.

Мой результат: enter image description here

Желаемый результат с точностью до наоборот- красное изображение над черными линиями

Есть идеи, как этого добиться?Спасибо за любой совет.

Вот мой код:

        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();
        }
...