예제 #1
0
        public void AddImageWatermarkWithSpecificOptions()
        {
            //ExStart:AddImageWatermarkWithSpecificOptions
            Document doc = new Document(MyDir + "Document.docx");

            ImageWatermarkOptions options = new ImageWatermarkOptions
            {
                Scale     = 5,
                IsWashout = false
            };

            doc.Watermark.SetImage(Image.FromFile(ImagesDir + "Transparent background logo.png"), options);

            doc.Save(ArtifactsDir + "WorkWithWatermark.AddImageWatermark.docx");
            //ExEnd:AddImageWatermarkWithSpecificOptions
        }
        public static void AddImageWatermarkWithSpecificOptions(string dataDir)
        {
            // ExStart: AddImageWatermarkWithSpecificOptions
            Document doc = new Document(dataDir + "Document.doc");

            ImageWatermarkOptions options = new ImageWatermarkOptions()
            {
                Scale     = 5,
                IsWashout = false
            };

            doc.Watermark.SetImage(Image.FromFile(dataDir + "Watermark.png"), options);

            doc.Save(dataDir + "AddImageWatermark_out.docx");
            // ExEnd: AddImageWatermarkWithSpecificOptions
            Console.WriteLine("\nDocument saved successfully.\nFile saved at " + dataDir);
        }
예제 #3
0
        static void CreateImageWatermark(Document document)
        {
            #region #CreateImageWatermark
            //Check whether the document sections have headers:
            foreach (Section section in document.Sections)
            {
                if (!section.HasHeader(HeaderFooterType.Primary))
                {
                    //If not, create an empty header
                    SubDocument header = section.BeginUpdateHeader();
                    section.EndUpdateHeader(header);
                }
            }

            ImageWatermarkOptions imageWatermarkOptions = new ImageWatermarkOptions();
            imageWatermarkOptions.Washout = false;
            imageWatermarkOptions.Scale   = 2;
            document.WatermarkManager.SetImage(System.Drawing.Image.FromFile("Documents//DevExpress.png"), imageWatermarkOptions);
            #endregion #CreateImageWatermark
        }
예제 #4
0
        /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="file"></param>
        /// <param name="imagePath"></param>
        /// <param name="webRootPath"></param>
        /// <param name="filename"></param>
        /// <param name="useWatermark">是否使用水印,默认不启用</param>
        /// <param name="watermarkType">水印类型,txt:文字;img:图片水印</param>
        /// <param name="watermarkText">文字水印内容</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task <string> UploadFile(IFormFile file, string imagePath, string webRootPath, string filename = "",
                                                                            bool useWatermark = false, string watermarkType = "txt", string watermarkText = "")
        {
            if (string.IsNullOrWhiteSpace(filename))
            {
                filename = DateTime.Now.Ticks.ToString();
            }
            string suffix   = file.FileName.Substring(file.FileName.LastIndexOf('.'));
            string savePath = imagePath + filename + suffix;

            if (!Directory.Exists(webRootPath + imagePath))
            {
                Directory.CreateDirectory(webRootPath + imagePath);
            }

            using (FileStream fs = new FileStream(webRootPath + savePath, FileMode.Create))
            {
                await file.CopyToAsync(fs);

                if (useWatermark)
                {
                    savePath = imagePath + "watermark/" + filename + suffix;
                    if (!Directory.Exists(webRootPath + imagePath + "watermark"))
                    {
                        Directory.CreateDirectory(webRootPath + imagePath + "watermark");
                    }
                    switch (watermarkType)
                    {
                    case "txt":        // 文字水印
                    {
                        using (var img = Image.FromStream(fs))
                        {
                            var iOps = new TextWatermarkOptions
                            {
                                TextColor = Color.FromArgb(100, Color.White),
                                Location  = TargetSpot.TopLeft,
                                FontName  = "微软雅黑",
                                FontStyle = FontStyle.Bold,
                                FontSize  = 12
                            };
                            img.AddTextWatermark(watermarkText, iOps)
                            .SaveAs($@"{webRootPath}{imagePath}watermark/{filename}{suffix}");              // 保存水印
                        }
                    }
                    break;

                    case "img":
                    {
                        using (var img = Image.FromStream(fs))
                        {
                            var iOps = new ImageWatermarkOptions
                            {
                                Location = TargetSpot.TopLeft
                            };
                            string watermarkPath = $"{ webRootPath }/Image/watermark.png";
                            var    waterImg      = Image.FromFile(watermarkPath);
                            var    tmpImg        = waterImg.Scale(img.Width / 2, img.Height / 2);
                            var    waterImgPath  = $@"{webRootPath}{imagePath}watermark/{filename}{suffix}";
                            img.AddImageWatermark(tmpImg, iOps)
                            .SaveAs(waterImgPath);              // 保存水印
                            waterImg.Dispose();
                        }
                    }
                    break;
                    }
                }
            }
            return(savePath);
        }