iTextSharp仅添加水印如果它还没有存在

时间:2015-07-28 19:33:04

标签: c# .net pdf-generation itextsharp

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

我想在添加新的之前这样做。在我的情况下,我必须添加一个新的水印,如果它还没有被某人添加,但我不知道如何使用iTextSharp的PdfReader课程进行检查。 像这样:

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

1 个答案:

答案 0 :(得分:0)

经过一些调查,感谢@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();

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