iTextSharp 仅在水印不存在时才添加水印

iTextSharp Add Watermark Only If it Doesn't Already Exist

有谁知道是否有办法使用 iTextSharp 检查 PDF 文档上的水印?

我想在添加新的之前执行此操作。就我而言,如果某人尚未添加新水印,我必须添加新水印,但我不知道如何使用 iTextSharp 的 PdfReader class 进行检查。 像这样:

var reader = new PdfReader(bytes);
var stamper = new PdfStamper(reader, ms);
var dc = stamper.GetOverContent(pageNumber);
bool alreadyStamped = cd.CheckIfTextOrImageExists();

感谢@ChrisHaas 的评论,经过一番调查后,我得以实现验证。因此,如果文本出现在特定页面上,我可以使用 SimpleTextExtractionStrategy 找到它,即使它在 WaterMark 集合中也是如此。

PdfReader pdfReader = new PdfReader(bytes);
  for (int page = 1; page <= pdfReader.NumberOfPages; page++)
  {
    ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();

    string currentPageText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
    if (currentPageText.Contains(searthText))
    {
      // adding new WaterMark here
      Console.WriteLine("text was found on page "+i);
    }
  }
pdfReader.Close();

希望这种方法可以帮助遇到类似问题的人。