/// <summary> /// Searches for watermark with combination of different search criterias /// </summary> public static void SearchWatermarkWithCombinedSearch() { try { //ExStart:SearchWatermarkWithCombinedSearch using (Document doc = Document.Load(Utilities.MapSourceFilePath(DOC_FILE_PATH))) { ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(@"D:\logo.png"); imageSearchCriteria.MaxDifference = 0.9; TextSearchCriteria textSearchCriteria = new TextSearchCriteria("Company Name"); RotateAngleSearchCriteria rotateAngleSearchCriteria = new RotateAngleSearchCriteria(30, 60); SearchCriteria combinedSearchCriteria = imageSearchCriteria.Or(textSearchCriteria).And(rotateAngleSearchCriteria); PossibleWatermarkCollection possibleWatermarks = doc.FindWatermarks(combinedSearchCriteria); // ... } //ExEnd:SearchWatermarkWithCombinedSearch } catch (Exception exp) { Console.Write(exp.Message); } }
/// <summary> /// Replaces image in the found watermarks /// </summary> public static void ReplacesImageInFoundWatermarks() { try { //ExStart:ReplacesImageInFoundWatermarks_18.3 byte[] imageData = File.ReadAllBytes(Utilities.MapSourceFilePath(PNG_FILE_PATH)); using (Document doc = Document.Load(Utilities.MapSourceFilePath(PDF_FILE_PATH))) { // Search watermark matching a particular image SearchCriteria searchCriteria = new ImageDctHashSearchCriteria(@"D:\logo.bmp"); PossibleWatermarkCollection watermarks = doc.FindWatermarks(searchCriteria); foreach (PossibleWatermark watermark in watermarks) { try { // Replace image watermark.ImageData = imageData; } catch (Exception e) { // Found entity may not support image replacment // Passed image can have inappropriate format // Process such cases here } } // Save document doc.Save(); } //ExEnd:ReplacesImageInFoundWatermarks_18.3 } catch (Exception exp) { Console.Write(exp.Message); } }
/// <summary> /// Removes old company logo added as watermark from all the documents in a folder /// </summary> public static void RemoveCompanyLogoWatermarkFromDocuments() { try { //ExStart:RemoveCompanyLogoWatermarkFromDocuments var inputFolder = SourceFolderPath; var outputFolder = SourceFolderPath + "/output"; var logo = @"D:\logo.png"; var files = Directory.GetFiles(inputFolder); ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(logo); var regex = new Regex(@"^Company\sName$", RegexOptions.IgnoreCase); TextSearchCriteria textSearchCriteria = new TextSearchCriteria(regex); foreach (var file in files) { try { using (var doc = Document.Load(file)) { var watermarks = doc.FindWatermarks(textSearchCriteria.Or(imageSearchCriteria)); watermarks.Clear(); doc.Save(Path.Combine(outputFolder, Path.GetFileName(file))); } } catch (UnsupportedFileTypeException) { Console.WriteLine("File format is not supported. File = {0}", Path.GetFileName(file)); } } //ExEnd:RemoveCompanyLogoWatermarkFromDocuments } catch (Exception exp) { Console.Write(exp.Message); } }
/// <summary> /// Searches for image watermark /// </summary> public static void SearchImageWatermark() { try { //ExStart:SearchImageWatermark using (Document doc = Document.Load(Utilities.MapSourceFilePath(PPT_FILE_PATH))) { // Initialize criteria with the image ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria(@"D:\watermark.jpg"); //Set maximum allowed difference between images imageSearchCriteria.MaxDifference = 0.9; PossibleWatermarkCollection possibleWatermarks = doc.FindWatermarks(imageSearchCriteria); // ... } //ExEnd:SearchImageWatermark } catch (Exception exp) { Console.Write(exp.Message); } }