Example #1
0
        public void Add_Watermark_File_Not_Supported()
        {
            var testFile = TestFiles.Zip;
            var options  = new WatermarkOptions
            {
                FileInfo         = testFile.ToFileInfo(),
                WatermarkDetails = new List <WatermarkDetails>
                {
                    new WatermarkDetails
                    {
                        TextWatermarkOptions = new TextWatermarkOptions
                        {
                            Text           = "Text",
                            FontFamilyName = "Arial",
                            FontSize       = 18
                        }
                    }
                },
            };

            var request = new AddRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { WatermarkApi.Add(request); });

            Assert.AreEqual($"The specified file '{testFile.FullName}' has type which is not currently supported.", ex.Message);
        }
Example #2
0
        public void Add_Watermark_Incorrect_Password()
        {
            var testFile = TestFiles.PasswordProtected;
            var options  = new WatermarkOptions
            {
                FileInfo = new FileInfo
                {
                    FilePath = testFile.FullName,
                    Password = "******"
                },
                WatermarkDetails = new List <WatermarkDetails>
                {
                    new WatermarkDetails
                    {
                        ImageWatermarkOptions = new ImageWatermarkOptions
                        {
                            Image = TestFiles.SampleWatermarkTransparent.ToFileInfo()
                        }
                    }
                },
            };

            var request = new AddRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { WatermarkApi.Add(request); });

            Assert.AreEqual($"Password provided for file '{testFile.FullName}' is incorrect.", ex.Message);
        }
 public NamedWatermark(string name, string virtualPath, WatermarkOptions watermark)
 {
     Name = name;
     VirtualPath = virtualPath;
     Watermark = watermark;
     serialized = null;
 }
Example #4
0
        public void Add_Watermark_No_Details()
        {
            var testFile = TestFiles.Docx;
            var options  = new WatermarkOptions
            {
                FileInfo         = testFile.ToFileInfo(),
                WatermarkDetails = new List <WatermarkDetails>()
            };

            var request = new AddRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { WatermarkApi.Add(request); });

            Assert.AreEqual("Request parameters missing or have incorrect format", ex.Message);
        }
Example #5
0
        public static void Run()
        {
            var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey);
            var apiInstance   = new WatermarkApi(configuration);

            try
            {
                var fileInfo = new FileInfo
                {
                    FilePath    = "documents/sample.docx",
                    StorageName = Common.MyStorage
                };

                var options = new WatermarkOptions()
                {
                    FileInfo         = fileInfo,
                    WatermarkDetails = new List <WatermarkDetails>
                    {
                        new WatermarkDetails
                        {
                            ImageWatermarkOptions = new ImageWatermarkOptions()
                            {
                                Image = new FileInfo {
                                    FilePath = "watermark_images/sample_watermark.png", StorageName = Common.MyStorage
                                }
                            }
                        }
                    },
                    ProtectLevel = WatermarkOptions.ProtectLevelEnum.DocumentAndImages
                };

                var request = new AddRequest(options);

                var response = apiInstance.Add(request);
                Console.WriteLine("Resultant file path: " + response.Path);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception while calling WatermarkApi: " + e.Message);
            }
        }
        public static void Run()
        {
            var configuration = new Configuration(Common.MyAppSid, Common.MyAppKey);
            var apiInstance   = new WatermarkApi(configuration);

            try
            {
                var fileInfo = new FileInfo
                {
                    FilePath    = "documents/sample.docx",
                    StorageName = Common.MyStorage
                };

                var options = new WatermarkOptions()
                {
                    FileInfo         = fileInfo,
                    WatermarkDetails = new List <WatermarkDetails>
                    {
                        new WatermarkDetails
                        {
                            TextWatermarkOptions = new TextWatermarkOptions
                            {
                                Text           = "New watermark text",
                                FontFamilyName = "Arial",
                                FontSize       = 12d,
                            }
                        }
                    }
                };

                var request = new AddRequest(options);

                var response = apiInstance.Add(request);
                Console.WriteLine("Resultant file path: " + response.Path);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception while calling WatermarkApi: " + e.Message);
            }
        }
Example #7
0
        public static void Run()
        {
            try
            {
                // Create necessary API instances
                var apiInstance = new ConvertApi(Constants.GetConfig());

                // Prepare convert settings
                var watermark = new WatermarkOptions
                {
                    Text       = "Sample watermark",
                    Color      = "Red",
                    Width      = 100,
                    Height     = 100,
                    Background = true
                };

                var settings = new ConvertSettings
                {
                    StorageName    = Constants.MyStorage,
                    FilePath       = "WordProcessing/four-pages.docx",
                    Format         = "pdf",
                    ConvertOptions = new PdfConvertOptions
                    {
                        WatermarkOptions = watermark
                    },
                    OutputPath = "converted"
                };

                // Convert to specified format
                var response = apiInstance.ConvertDocument(new ConvertDocumentRequest(settings));
                Console.WriteLine("Document converted successfully: " + response[0].Url);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception: " + e.Message);
            }
        }
Example #8
0
        public void TestAddImageWatermark()
        {
            var testFile = TestFiles.Pdf;
            var options  = new WatermarkOptions()
            {
                FileInfo         = testFile.ToFileInfo(),
                WatermarkDetails = new List <WatermarkDetails>
                {
                    new WatermarkDetails
                    {
                        ImageWatermarkOptions = new ImageWatermarkOptions()
                        {
                            Image = TestFiles.SampleWatermarkTransparent.ToFileInfo()
                        }
                    }
                },
                ProtectLevel = WatermarkOptions.ProtectLevelEnum.DocumentAndImages
            };
            var request = new AddRequest(options);
            var result  = WatermarkApi.Add(request);

            CheckIfWatermarkExist(result.Path, null, TestFiles.SampleWatermarkTransparent.ToFileInfo());
        }
Example #9
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (curentVHDLFile != null)
            {
                inputListBox.Items.Clear();
                outputListBox.Items.Clear();

                var fileService = new FileService();

                vhdlLib  = fileService.GetVHDL(@"D:\111\unisim_VCOMP.vhd");
                vhdlCode = fileService.GetVHDL(curentVHDLFile);

                _document = new VHDLDocument(vhdlCode);
                _document.Parse(vhdlLib);
                _watermarkOptions = new WatermarkOptions(_document);
                Validator validator = new Validator();
                var       results   = validator.Validate(_document);

                //TODO Null Checks
                if (_document.Entity == null)
                {
                    string            message = "You did not enter a server name. Cancel this operation?";
                    string            caption = "There is no entity parsed";
                    MessageBoxButtons buttons = MessageBoxButtons.OK;
                    MessageBox.Show(message, caption, buttons);
                }
                else
                {
                    infoGroupBox.Enabled = true;
                    _document.Entity.Ports.Where(p => p.PortType == PortTypes.In).ToList().ForEach(x => inputListBox.Items.Add(x));
                    _document.Entity.Ports.Where(p => p.PortType == PortTypes.Out).ToList().ForEach(x => outputListBox.Items.Add(x));
                    entityNameLabel.Text = "Entity Name: " + _document.Entity.Name;
                    freeBitsLabel.Text   = "Free Bits for Watermarking: " + _watermarkOptions.WotermarikingDocument.FreeLuts.Count() + " bits";
                }
                //File.WriteAllText(@"D:\111.vhdl", document.Text);
            }
        }
Example #10
0
        public void Add_Watermark_No_Text_And_Image()
        {
            var testFile = TestFiles.Docx;
            var options  = new WatermarkOptions
            {
                FileInfo         = testFile.ToFileInfo(),
                WatermarkDetails = new List <WatermarkDetails>
                {
                    new WatermarkDetails
                    {
                        TextWatermarkOptions = new TextWatermarkOptions
                        {
                            FontFamilyName = "Arial",
                            FontSize       = 18
                        }
                    }
                }
            };

            var request = new AddRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { WatermarkApi.Add(request); });

            Assert.AreEqual("Request parameters missing or have incorrect format", ex.Message);
        }
Example #11
0
        public void Add_Watermark_File_Not_Found()
        {
            var testFile = TestFiles.NotExist;
            var options  = new WatermarkOptions
            {
                FileInfo         = testFile.ToFileInfo(),
                WatermarkDetails = new List <WatermarkDetails>
                {
                    new WatermarkDetails
                    {
                        ImageWatermarkOptions = new ImageWatermarkOptions
                        {
                            Image = TestFiles.SampleWatermarkTransparent.ToFileInfo()
                        }
                    }
                },
                ProtectLevel = WatermarkOptions.ProtectLevelEnum.DocumentAndImages
            };

            var request = new AddRequest(options);
            var ex      = Assert.Throws <ApiException>(() => { WatermarkApi.Add(request); });

            Assert.AreEqual($"Can't find file located at '{testFile.FullName}'.", ex.Message);
        }
Example #12
0
        public void TestAddTextWatermark()
        {
            var testFile = TestFiles.Docx;
            var options  = new WatermarkOptions()
            {
                FileInfo         = testFile.ToFileInfo(),
                WatermarkDetails = new List <WatermarkDetails>
                {
                    new WatermarkDetails
                    {
                        TextWatermarkOptions = new TextWatermarkOptions
                        {
                            Text           = "New watermark text",
                            FontFamilyName = "Arial",
                            FontSize       = 12d,
                        }
                    }
                }
            };
            var request = new AddRequest(options);
            var result  = WatermarkApi.Add(request);

            CheckIfWatermarkExist(result.Path, "New watermark text", null);
        }
 public InputWatermark(IBytesSource source, WatermarkOptions watermark)
 {
     Source    = source;
     Watermark = watermark;
 }
 public InputWatermark(IBytesSource source, int ioId, WatermarkOptions watermark)
 {
     Source    = source;
     IoId      = ioId;
     Watermark = watermark;
 }
 public abstract int AddVideoWatermark(string watermarkUrl, WatermarkOptions options);
 /// <summary>
 /// Initializes a new instance of the <see cref="AddRequest"/> class.
 /// </summary>
 /// <param name="options"></param>
 public AddRequest(WatermarkOptions options)
 {
     this.options = options;
 }
Example #17
0
        public static void WatermarkImage(this Image b, WatermarkOptions options)
        {
            using (var g = Graphics.FromImage(b))
            {
                var align  = options.WatermarkAlignment;
                var opac   = options.WatermarkOpacity;
                var margin = new SizeF(20, 20);
                if (options.WatermarkType == WatermarkType.Text)
                {
                    var text = options.WatermarkText;
                    var font = options.WatermarkFont;

                    var tSize = g.MeasureString(text, font);

                    var tPos = new PointF();

                    switch (align)
                    {
                    case Alignment.Top_Left:
                    case Alignment.Top_Center:
                    case Alignment.Top_Right:
                        tPos.Y = margin.Height;
                        break;

                    case Alignment.Middle_Left:
                    case Alignment.Middle_Center:
                    case Alignment.Middle_Right:
                        tPos.Y = (b.Height / 2f) - (tSize.Height / 2f);
                        break;

                    case Alignment.Bottom_Left:
                    case Alignment.Bottom_Center:
                    case Alignment.Bottom_Right:
                        tPos.Y = b.Height - margin.Height - tSize.Height;
                        break;
                    }

                    switch (align)
                    {
                    case Alignment.Top_Left:
                    case Alignment.Middle_Left:
                    case Alignment.Bottom_Left:
                        tPos.X = margin.Width;
                        break;

                    case Alignment.Top_Center:
                    case Alignment.Middle_Center:
                    case Alignment.Bottom_Center:
                        tPos.X = (b.Width / 2f) - (tSize.Width / 2f);
                        break;

                    case Alignment.Top_Right:
                    case Alignment.Middle_Right:
                    case Alignment.Bottom_Right:
                        tPos.X = b.Width - margin.Width - tSize.Width;
                        break;
                    }

                    using (var brush = new SolidBrush(Color.FromArgb((int)(255 * opac), Color.White)))
                    {
                        g.SmoothingMode     = SmoothingMode.HighQuality;
                        g.TextRenderingHint = TextRenderingHint.AntiAlias;
                        g.DrawString(text, font, brush, tPos.X, tPos.Y);
                        brush.Color = Color.FromArgb((int)(255 * opac), Color.Black);
                        g.DrawString(text, font, brush, tPos.X - (font.SizeInPoints / 24) - 1, tPos.Y - (font.SizeInPoints / 24) - 1);
                    }
                }
                else
                {
                    var path = options.WatermarkImagePath;

                    if (!System.IO.File.Exists(path))
                    {
                        return;
                    }

                    var grey = options.WatermarkGreyscale;

                    float tl = 1f, tc = 0f, tr = 0f, ml = 0f, mc = 1f, mr = 0f, bl = 0f, bc = 0f, br = 1f;

                    const float rwgt = .3086f;
                    const float gwgt = .6094f;
                    const float bwgt = .0820f;

                    if (grey)
                    {
                        tl = tc = tr = rwgt;
                        ml = mc = mr = gwgt;
                        bl = bc = br = bwgt;
                    }

                    float[][] ptsArray =
                    {
                        new[] { tl, tc, tr, 0f, 0f },                           // RED
                        new[] { ml, mc, mr, 0f, 0f },                           // GREEN
                        new[] { bl, bc, br, 0f, 0f },                           // BLUE
                        new[] { 0f, 0f, 0f, 1f, 0f },                           // Alpha
                        new[] {  0,  0,  0, 0f, 1f }
                    };

                    var imageAttributes = new ImageAttributes();
                    imageAttributes.ClearColorMatrix();
                    var colorMatrix = new ColorMatrix(ptsArray)
                    {
                        Matrix33 = (float)opac
                    };
                    imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);

                    var i    = Image.FromFile(path);
                    var tPos = new PointF();
                    switch (align)
                    {
                    case Alignment.Top_Left:
                    case Alignment.Top_Center:
                    case Alignment.Top_Right:
                        tPos.Y = margin.Height;
                        break;

                    case Alignment.Middle_Left:
                    case Alignment.Middle_Center:
                    case Alignment.Middle_Right:
                        tPos.Y = (b.Height / 2f) - (i.Height / 2f);
                        break;

                    case Alignment.Bottom_Left:
                    case Alignment.Bottom_Center:
                    case Alignment.Bottom_Right:
                        tPos.Y = b.Height - margin.Height - i.Height;
                        break;
                    }

                    switch (align)
                    {
                    case Alignment.Top_Left:
                    case Alignment.Middle_Left:
                    case Alignment.Bottom_Left:
                        tPos.X = margin.Width;
                        break;

                    case Alignment.Top_Center:
                    case Alignment.Middle_Center:
                    case Alignment.Bottom_Center:
                        tPos.X = (b.Width / 2f) - (i.Width / 2f);
                        break;

                    case Alignment.Top_Right:
                    case Alignment.Middle_Right:
                    case Alignment.Bottom_Right:
                        tPos.X = b.Width - margin.Width - i.Width;
                        break;
                    }

                    g.DrawImage(i, new Rectangle((int)tPos.X, (int)tPos.Y, i.Width, i.Height), 0, 0, i.Width, i.Height,
                                GraphicsUnit.Pixel, imageAttributes);
                }
            }
        }
 /// <summary>
 /// Sets custom watermark options
 /// </summary>
 /// <param name="watermark">An instance of the object containing the watermark options</param>
 /// <returns>An instance of the widget object</returns>
 public AnnotationWidget Watermark(WatermarkOptions watermark)
 {
     _options.Watermark = watermark;
     return(this);
 }
        public VHDLDocument Watermark(WatermarkOptions options)
        {
            //-----------------DECODER----------------------------------------
            FullSignal isWatermark = new FullSignal
            {
                Name        = "IS_WATERMARK",
                ValueType   = "STD_LOGIC",
                Enumeration = null
            };

            _document.AddSignal(isWatermark);

            Decoder decoder = new Decoder(isWatermark);

            decoder.CodedSignals.AddRange(options.WatermarkSettings.Where(x => x.IsUsed).ToList());
            //-----------------DECODER----------------------------------------

            _document.AddVHDLInBehaviorSection(decoder.ToString());

            FullSignal watermarkedSignal = new  FullSignal()
            {
                Name      = "WATERMARKED_OUT",
                ValueType = StdLogicVector,
            };


            List <PartialSignal> stSignalBits = new List <PartialSignal>();
            int i = 0;

            _document.FreeLuts.ForEach(lut =>
            {
                ChangeLutConstIputs(lut, isWatermark, _document.ConstValueGenerators);

                ChangeLutInitVector(lut, true);


                var newSignal = watermarkedSignal.CreatePartial(new SimpleIndex(i));
                stSignalBits.Add(newSignal);

                InjectLutOutput(lut, newSignal);

                i++;
            });

            watermarkedSignal.Enumeration = new ComplexEnumeration(stSignalBits.Sum(x => x.Bits),
                                                                   EnumerationDirections.Downto);


            _document.AddSignal(watermarkedSignal);

            i = 0;
            options.SignatureOutputSettings.Where(y => y.IsUsed).ToList().ForEach(x =>
            {
                FullSignal fictionOutSignal = new FullSignal()
                {
                    Name        = "FICTION_OUT" + i,
                    ValueType   = x.Port.ValueType,
                    Enumeration = x.Port.Enumeration
                };
                _document.AddSignal(fictionOutSignal);
                _document.Redirect(x.Port, fictionOutSignal);                                                                                                                                    //TODO
                _document.AddMuxAssigment(x.Port, isWatermark + " = '1'", watermarkedSignal.CreatePartial(new ComplexEnumeration(x.Port.Bits, EnumerationDirections.Downto)), fictionOutSignal); //TODO
                i++;
            });

            return(_document);
        }
        public VHDLDocument Watermark(WatermarkOptions options)
        {
            var doc = options.WotermarikingDocument.Document;

            var IOBuffesLayer = new IOBuffesLayer(_document);

            IOBuffesLayer.Parse();

            options.WatermarkSettings.ForEach(x => x.Signal       = IOBuffesLayer.WhetherEquivalent(x.Signal));
            options.SignatureOutputSettings.ForEach(x => x.Signal = IOBuffesLayer.WhetherEquivalent(x.Signal));

            List <WatermarkBit> watermarkBits = new List <WatermarkBit>();

            options.SignatureOutputSettings.ForEach(ports =>
            {
                for (int j = 0; j < ports.SignatureCode.Length; j++)
                {
                    if (ports.SignatureCode[j] != '-')
                    {
                        var newWB = new WatermarkBit()
                        {
                            IsOne  = ports.SignatureCode[j] == '1',
                            Signal =
                                doc.Router.AssignmentSignal(null, ports.Signal, ports.Signal.Enumeration?.GetBit(j))
                        };
                        newWB.Signal.IsSource = false;
                        watermarkBits.Add(newWB);
                    }
                }
            });

            //var wbit2 = watermarkBits.FirstOrDefault();
            //var routes2 = doc.Router.GetRoutes(wbit2.Signal.Defenition);

            //var d = routes2.Signals.Where(signal => signal.IsSource == null).ToList();
            //var e = routes2.Signals.Where(signal => signal.IsSource != null && !signal.IsSource.Value).ToList();
            //var c = routes2.Signals.Where(signal => signal.IsSource != null && signal.IsSource.Value).ToList();


            //-----------------DECODER----------------------------------------
            var isWatermark = _document.Router.InserSignalDefenition("IS_WATERMARK", "STD_LOGIC");
            var decoder     = new Decoder(doc, isWatermark);

            var decoderSettings = options.WatermarkSettings.Where(x => x.IsUsed)
                                  .Select(a => new DecoderSignalCode(doc.Router.AssignmentSignal(decoder, a.Signal), a.ActivaionCode))
                                  .ToList();


            decoder.CodedSignals.AddRange(decoderSettings);
            _document.AddVHDLInBehaviorSection(decoder.ToString());

            //-----------------DECODER----------------------------------------


            //----------------------Lut work----------------------------------

            /**var signatureBus = _document.Router.CreateBus("WATERMARKED_OUT");
             * int i = 0;
             * options.WotermarikingDocument.FreeLuts.ForEach(lut =>
             * {
             *  ChangeLutConstIputs(lut, isWatermark, options.WotermarikingDocument.ConstValueGenerators);
             *  ChangeLutInitVector(lut, true);
             *  var newLutOutput = signatureBus.GetWire(i);
             *
             *  InjectLutOutput(lut, newLutOutput.Defenition);
             *  i++;
             * });
             * var watermarkedSignalDefenition = signatureBus.BuildSignal();**/

            LUTComponents components = new LUTComponents(doc);

            var lutForExtenion = _document.Maps
                                 .Where(map => LUT.IsLUT(map.Entity) && !options.WotermarikingDocument.FreeLuts.Contains(map))
                                 .Select(map => MapLUT.FromMap(map)).ToList();

            lutForExtenion.ForEach(lut => lut.ExtendLUT(components)); //Extends lut

            var freeInputs = lutForExtenion.Select(x => x.GetFreeInput()).ToList();

            List <MapLUT> lutsForInsertion = new List <MapLUT>(lutForExtenion); //Merge all luts

            //lutsForInsertion.AddRange(); //AddFreeLut


            lutsForInsertion.ForEach(lut =>
            {
                var watermarkBit = watermarkBits.FirstOrDefault(wb => wb.LUT == null);
                if (watermarkBit != null)
                {
                    var port = lut.GetFreeInput(); //TODO
                    lut.AddLutAssigment(Assignment.Create(lut, port, isWatermark));
                    lut.ConstValuePort(port, watermarkBit.IsOne);
                    watermarkBit.LUT = lut;
                }
            });

            //-----------------------------------------------------------------------------------------
            watermarkBits.GroupBy(x => x.Signal.Defenition).ToList().ForEach(def =>
            {
                var ficitonSignal = _document.Router
                                    .InserSignalDefenition(
                    "FO" + Helper.NewGuidName(),
                    def.Key.ValueType,
                    def.Key.Enumeration?.CloneEnumeration());

                doc.Router.RedirectAllSources(def.Key, ficitonSignal);
                def.ToList().ForEach(wbit =>
                {
                    wbit.RealSignal = doc.Router.GetRoutes(ficitonSignal)
                                      .Signals.FirstOrDefault(x => (x.Enumeration == null && wbit.Signal.Enumeration == null) ||
                                                              (x.Enumeration == null && wbit.Signal.Enumeration == null && x.Enumeration.IsSameBus(wbit.Signal.Enumeration)));

                    Mux mux       = new Mux();
                    mux.To        = wbit.Signal;
                    mux.Condition = doc.Router.AssignmentSignal(mux, isWatermark) + " = '1'";
                    mux.Else      = wbit.RealSignal;
                    mux.Then      = wbit.LUT.GetOutput();
                    mux.Insert(_document);
                });
            });

            return(_document);
        }