iTextSharp添加水印仅当它不't已经存在

本文关键字:存在 添加 iTextSharp | 更新日期: 2023-09-27 18:05:08

有没有人知道是否有一种方法来检查PDF文档上的水印使用iTextSharp?

我想在添加新文件之前执行此操作。在我的情况下,我必须添加一个新的水印,如果它还没有被人添加,但我不知道如何使用iTextSharp的PdfReader类来检查这一点。像这样:

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

iTextSharp添加水印仅当它不't已经存在

经过一些调查,感谢@ChrisHaas的评论,我能够实现这个验证。因此,如果文本存在于特定页面上,我可以使用SimpleTextExtractionStrategy找到它,即使它在水印集合中。

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

希望这个方法能帮助到有类似问题的人。