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();
希望这种方法可以帮助遇到类似问题的人。
有谁知道是否有办法使用 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();
希望这种方法可以帮助遇到类似问题的人。