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();
经过一些调查,感谢@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();
希望这个方法能帮助到有类似问题的人。