本帖最后由 Andy_Uncle 于 2016-12-2 12:01 编辑
1、需求:在Active Report中实现图片打印,如产品资料中的图片,职员信息中的图片等。
2、实现方法:
将以下代码请复制放置到报表配置容器中,如下图:
代码如下:
/// <summary>
/// 绑定图片
/// </summary>
///<param name="pic">icture对象,用于显示图片</param>
///<param name="hiddenControl">隐藏域对象,用于绑定图片的路径,以间接实现显示图片</param>
/// <returns></returns>
public void BindPicture(GrapeCity.ActiveReports.SectionReportModel.Picture pic,
GrapeCity.ActiveReports.SectionReportModel.TextBox hiddenControl)
{
pic.Image = null;
string fileURL = string.Empty;
try
{
fileURL = hiddenControl.Value.ToString();
}
catch
{
}
if(string.IsNullOrEmpty(fileURL))
{
return;
}
System.IO.Stream stream = GetStreamFromURL(fileURL);
if (stream == null)
{
return;
}
pic.Image = System.Drawing.Image.FromStream(stream);
//释放资源
try
{
if(stream != null)
{
stream.Close();
}
}
catch
{
}
}
/// <summary>
/// 得到图片流
/// </summary>
/// <param name="picURL">图片URL</param>
/// <returns></returns>
public System.IO.Stream GetStreamFromURL(string picURL)
{
if(string.IsNullOrEmpty(picURL))
{
return null;
}
System.Net.WebResponse response = null;
System.IO.Stream stream = null;
try
{
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(picURL);
response = request.GetResponse();
stream = response.GetResponseStream();
}
catch
{
}
return stream;
}
public void 明细_Format()
{
//绑定产品图片
//this.Picture1 图片控件ID
//this.TextBox2 图片路径ID
BindPicture(this.Picture1, this.TextBox2);
}
备注说明:
//this.Picture1 图片控件ID
//this.TextBox2 图片路径ID
这两个根据实际情况替换即可。
3、调试效果
到此配置完成。
|