找回密码
 立即注册

QQ登录

只需一步,快速开始

小明

注册会员

6

主题

14

帖子

46

积分

注册会员

积分
46

[处理中] 关于fpSpread水印

小明
注册会员   /  发表于:2023-4-13 17:21  /   查看:1512  /  回复:3
1金币
使用下列代码添加水印,不冻结列则显示3列水印,冻结10列则水印直接飞到右侧了,就显示一半,为什么,怎样解决?


        private static void fpSpread_PrintBackground(object sender, FarPoint.Win.Spread.PrintBackgroundEventArgs e)
        {
            try
            {
                var text = $"2023 1111 为什么";
                var imgSize = e.SheetRectangle.Width / 3;
                var fontSize = 14;
                var font = new System.Drawing.Font("宋体", fontSize, System.Drawing.FontStyle.Bold);
                using (var img = new System.Drawing.Bitmap(imgSize, imgSize))
                {
                    using (var g = System.Drawing.Graphics.FromImage(img))
                    {
                        g.Clear(System.Drawing.Color.White);
                        //将原点移动 到图片中点
                        g.TranslateTransform(fontSize, imgSize / 2);
                        //以原点为中心 转 -45度
                        g.RotateTransform(-45);
                        g.DrawString(text, font, System.Drawing.Brushes.LightGray, 0, 0);
                        g.Save();
                    }
                    var pic = new FarPoint.Win.Picture(img, FarPoint.Win.RenderStyle.Tile);
                    pic.AlignHorz = FarPoint.Win.HorizontalAlignment.Distributed;
                    pic.AlignVert = FarPoint.Win.VerticalAlignment.Distributed;
                    pic.Paint(e.Graphics, e.SheetRectangle);
                }
            }
            catch (Exception ex)
            {
               
            }
        }

3 个回复

倒序浏览
小明
注册会员   /  发表于:2023-4-13 17:32:26
沙发
发现问题出在 e.SheetRectangle ,冻结前后定位不一样。
回复 使用道具 举报
小明
注册会员   /  发表于:2023-4-13 17:38:29
板凳
小明 发表于 2023-4-13 17:32
发现问题出在 e.SheetRectangle ,冻结前后定位不一样。

。。。根 e.SheetRectangle 好像无关,冻结前后指定同样的Rectangle,也出这个问题。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-13 19:24:31
地板
请上传一个重现问题的demo,我帮你分析一下原因,单纯代码不好找问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部