半心人、 2021-05-19 10:12 采纳率: 0%
浏览 738

Aspose给excel,word,pdf加图片水印

 Aspose给excel,word,pdf加图片水印,水印图片不是透明的,如何将图片置于文字的下面从而不会盖住文字

  • 写回答

1条回答 默认 最新

  • 朱  2021-05-19 11:15
    关注

    根据使用spire.office.dll来加水印的方法来看,给word,pdf, ppt加水印的时候不用特别设置图片位置也不会遮挡文字的,给Excel加水印的话是通过在页眉中添加图片来实现,下面列举了如何添加图片水印的方法,可以自行参考下:

    word图片水印:

    //新建一个word文档对象并加载需要添加水印的word文档
    Document document = new Document();
    document.LoadFromFile("Test.docx");
    
    
    //新建一个图片水印对象并添加为待设置水印的图片
    
    PictureWatermark picture = new PictureWatermark();
    picture.Picture = System.Drawing.Image.FromFile("logo.png");
    
    //根据需要设置图片的大小,将其设置为文档的水印
    picture.Scaling = 10;
    document.Watermark = picture;
    
    //保存文档
    document.SaveToFile("图片水印.docx",FileFormat.Docx2010);

    excel图片水印:

    using Spire.Xls;
    using System.Drawing;
    using System;
    
    namespace AddWaterMarktoExcel
    {
        class Program
        {
            static void Main(string[] args)
            {
                //加载示例文档
                Workbook workbook = new Workbook();
                workbook.LoadFromFile("Sample.xlsx");
    
                //设置文本和字体大小
                Font font = new System.Drawing.Font("仿宋", 40);
                String watermark = "内部文档";         
     
                foreach (Worksheet sheet in workbook.Worksheets)
                {
                    //调用DrawText() 方法插入图片
                    System.Drawing.Image imgWtrmrk = DrawText(watermark, font, System.Drawing.Color.LightCoral, System.Drawing.Color.White, sheet.PageSetup.PageHeight, sheet.PageSetup.PageWidth);
                    //将图片设置为页眉
                    sheet.PageSetup.LeftHeaderImage = imgWtrmrk;
                    sheet.PageSetup.LeftHeader = "&G";
                    //将显示模式设置为Layout
                    sheet.ViewMode = ViewMode.Layout;
                }
                workbook.SaveToFile("result.xlsx", ExcelVersion.Version2010);
                System.Diagnostics.Process.Start("result.xlsx");
            }
    
            private static System.Drawing.Image DrawText(String text, System.Drawing.Font font, Color textColor, Color backColor, double height, double width)
            {
                //定义图片宽度和告诉
                Image img = new Bitmap((int)width, (int)height);
                Graphics drawing = Graphics.FromImage(img);
                //获取文本size
                SizeF textSize = drawing.MeasureString(text, font);
                //文本显示样式及位置
                drawing.TranslateTransform(((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
                drawing.RotateTransform(-45);
                drawing.TranslateTransform(-((int)width - textSize.Width) / 2, -((int)height - textSize.Height) / 2);
                drawing.Clear(backColor);
                Brush textBrush = new SolidBrush(textColor);
                drawing.DrawString(text, font, textBrush, ((int)width - textSize.Width) / 2, ((int)height - textSize.Height) / 2);
                drawing.Save();
                return img;
            }
        }
    }

    PDF图片水印:

    //加载PDF文档
    PdfDocument pdf = new PdfDocument();
    pdf.LoadFromFile("Spire.Presentation.pdf");
    
    //获取PDF文档的第一页
    PdfPageBase page = pdf.Pages[0];
    
    //获取图片并将其设置为页面的背景图
    Image img = Image.FromFile("Logo.png");
    page.BackgroundImage = img;
    
    //指定背景图的位置和大小
    page.BackgroundRegion = new RectangleF(200, 200, 200, 200);
    
    //保存文档
    pdf.SaveToFile("ImageWaterMark.pdf");

    PPT图片水印:

    //加载PPT文档
    Presentation ppt = new Presentation();
    ppt.LoadFromFile("sample.pptx", FileFormat.Pptx2010);
    
    
    //为第一张幻灯片设置背景图片类型和样式
    ppt.Slides[0].SlideBackground.Type = Spire.Presentation.Drawing.BackgroundType.Custom;
    ppt.Slides[0].SlideBackground.Fill.FillType = FillFormatType.Picture;
    ppt.Slides[0].SlideBackground.Fill.PictureFill.FillType = PictureFillType.Stretch;
    
    
    //获取图片并将其设置为页面的背景图
    Image img = Image.FromFile("Logo.png");
    IImageData image = ppt.Images.Append(img);
    ppt.Slides[0].SlideBackground.Fill.PictureFill.Picture.EmbedImage = image;
    
    //保存文档
    ppt.SaveToFile("ImageWatermark.pptx", FileFormat.Pptx2010);

    代码内容参考自spire教程。

     

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?