예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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);
            }
        }
예제 #4
0
        /// <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);
            }
        }