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