上一篇文章寫到了自帶報表的製作,現在來談談報表水印的添加

1:水印產生代碼

using System;
using System.Data;
using System.Configuration;
using System.Drawing;
using System.Drawing.Imaging; /// <summary>
/// WatermarkCreater 的摘要描述
/// </summary>
public class WatermarkCreater
{
public WatermarkCreater()
{
//
// TODO: 在此加入建構函式的程式碼
//
} private Bitmap CreateImage(string code, string width, string height, string pLeft, string pTop, string font, string fColor, string bColor, string r)
{
Color cF = Color.FromArgb(int.Parse(fColor.Substring(, ), System.Globalization.NumberStyles.AllowHexSpecifier), int.Parse(fColor.Substring(, ), System.Globalization.NumberStyles.AllowHexSpecifier), int.Parse(fColor.Substring(, ), System.Globalization.NumberStyles.AllowHexSpecifier));
Color cB = Color.FromArgb(int.Parse(bColor.Substring(, ), System.Globalization.NumberStyles.AllowHexSpecifier), int.Parse(bColor.Substring(, ), System.Globalization.NumberStyles.AllowHexSpecifier), int.Parse(bColor.Substring(, ), System.Globalization.NumberStyles.AllowHexSpecifier)); System.Drawing.SolidBrush sb = new SolidBrush(cF);
string[] fstr = font.Split(',');
Font f = new Font(fstr[].Split('=')[], (float)Convert.ToInt32(fstr[].Split('=')[]), FontStyle.Regular, (GraphicsUnit)Convert.ToInt32(fstr[].Split('=')[]), Convert.ToByte(fstr[].Split('=')[]), Convert.ToBoolean(fstr[].Split('=')[]));
Bitmap bmp = new Bitmap(Convert.ToInt32(width), Convert.ToInt32(height));
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
g.RotateTransform((float)Convert.ToDouble(r));
g.DrawString(code, f, sb, new PointF(Convert.ToInt32(pLeft), Convert.ToInt32(pTop))); return bmp;
} public byte[] GetImageByte(string code, string config)
{
string[] configs = config.Split(';');
Bitmap im = CreateImage(code, configs[].Split(':')[], configs[].Split(':')[], configs[].Split(':')[], configs[].Split(':')[], configs[], configs[].Split(':')[], configs[].Split(':')[], configs[].Split(':')[]);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
im.Save(ms, ImageFormat.Bmp);
return ms.GetBuffer();
}
}

2:把水印保存到數據庫,數據庫類型為image

3:把水印查詢出來,作為數據源傳進報表,然後在報表的背景添加即可

Reporting Service报表水印的添加的更多相关文章

  1. Dynamic CRM 2013学习笔记(二十九)报表设计:reporting service 报表开发常见问题

    在报表开发过程中,经常会遇到各种各样的问题,比如The report cannot be displayed. (rsProcessingAborted),一点有意义的提示都没有:再就是分页问题,经常 ...

  2. Reporting Service报表项默认可见+号和-号的显示问题

    在Reporting Service里面可以设置报表项(组.tablix行.tablix列.文本框等所有SSRS报表项)的可见性,并且可以设置某个报表项的可见性由点击另外一个报表项来控制,比如报表项A ...

  3. Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色

    上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...

  4. SQL Server性能计数器收集汇总方案(Reporting Service)

    通过收集计数器信息,并将计数器信息汇总为不同粒度存储,以Reporting Service报表服务器显示.以下是计数器收集汇总的基本架构. 笔者需要收集的SQL Server计数器包括:SQL Ser ...

  5. Reporting Service 2008 “报表服务器数据库内出错。此错误可能是因连接失败、超时或数据库中磁盘空间不足而导致的”

    今天遇到了两个关于Reporting Service的问题, 出现问题的环境为Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) .具体情况 ...

  6. SQL Server Reporting Service(SSRS) 第二篇 SSRS数据分组Parent Group

    SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子默认使用Table进行简单的数据显示,有时为了进行更加直观的数据显示,我们需要按照某个字段对列表进行 ...

  7. SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子

    很早就知道SQL SERVER自带的报表工具SSRS,但一直没有用过,最近终于需要在工作中一展身手了,于是我特地按照自己的理解做了以下总结: 1. 安装软件结构 SSRS全称SQL Server Re ...

  8. 【解决】SharePoint集成模式下Reporting Service—为用户授予的权限不足,无法执行此操作。 (rsAccessDenied)

    环境:Windows Server 2008 R2 SP1,SharePoint 2010 企业版,SQL Server 2008 R2 Reporting Service(SharePoint集成模 ...

  9. Reporting Service部署之访问权限

    原文:Reporting Service部署之访问权限 SQL Server Reporting Services 并非专门设计用于 Internet 报表部署方案,但是您可以成功地将 Reporti ...

随机推荐

  1. CC3200在AP模式的TCP sock作为客户端连接时返回SL_ECONNREFUSED(-111) Connection refused

    1. CC3200处于AP模式(电脑无线连接CC3200的WIFI信号),开启一个TCP socket,这个socket作为TCP客户端去连接TCP服务器端 struct sockaddr_in ad ...

  2. 【Adaptive Boosting】林轩田机器学习技法

    首先用一个形象的例子来说明AdaBoost的过程: 1. 每次产生一个弱的分类器,把本轮错的样本增加权重丢入下一轮 2. 下一轮对上一轮分错的样本再加重学习,获得另一个弱分类器 经过T轮之后,学得了T ...

  3. 每天一个Linux命令(7):pwd命令

    pwd命令以绝对路径的方式显示用户当前工作目录. 语法 pwd(选项) 选项 --help:显示帮助信息: --version:显示版本信息. 实例 [root@localhost ~]# pwd / ...

  4. yum源是什么

    我们安装软件的时候需要下载软件,将很多软件放在一起就是源.软件安装包的来源. 所以yum源就是软件安装包来源. 如果我们是在线的,他会在网上给你下载安装包,如果是离线的没有网络.那么就只能配置本地的y ...

  5. Python学习5,三级菜单实例

    _author_ = "Happyboy" data = { '北京':{ "昌平":{ "沙河":["Happyboy" ...

  6. corosync.conf

    ##totem定义集群内各节点间是如何通信的,totem本是一种协议,专用于corosync专用于各节点间的协议,协议是有版本的 totem { ##版本号 version: ##安全认证on|off ...

  7. Python 黑魔法(持续收录)

    Python 黑魔法(持续收录) zip 对矩阵进行转置 a = [[1, 2, 3], [4, 5, 6]] print(list(map(list, zip(*a)))) zip 反转字典 a = ...

  8. [CF632E]Thief in a Shop

    题目大意:有一个小偷,拿$k$个东西,有$n$种产品,每种产品都有无限多个.对于每个第$i$ 种产品,它的价值是$A_i$.可能偷走的物品价值之和. 题解:对于所有的物品构造生成函数$F(x)=\su ...

  9. 常用shell脚本命令

    常用shell脚本命令 1.显示包含文字aaa的下一行的内容: sed -n '/aaa/{n;p;}' filename 2.删除当前行与下一行的内容: sed -i '/aaa/{N;d;}' f ...

  10. bzoj4386 Wycieczki

    题目描述 给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种.将所有可能的路径按路径长度排序,请输出第k小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点. 输入 第 ...