web端,微软图形chart控件的打印

来源:互联网 发布:d3.js 电子书 编辑:程序博客网 时间:2024/05/17 22:50

项目中做了一个统计,为了省事儿就用ie自带的打印,打印输出的内容,但是发现,页面中使用了<asp:Chart>的控件,打印不出来。

一般的IE打印是没有调整这个选项


但是即使勾上了这个选项,打印可以看到背景了,但是还是看不到那个图形。原因是微软的图形的机制是生成的临时图片,所以可能是那个图片地址就不能引用所以导致打印不出图片。


解决方法:

打开微软的例子,发现它也打印不了,但是有2个例子可以打印,原来是将chart控件,放在网页文件中,直接输出流。

将chart控件放到网页中,然后加上一个属性rendertype="BinaryStreaming",在原来直接放置chart的地方,用image替换,

<asp:image id="Image1" runat="server" ImageUrl="test.aspx" width="480px" height="300px"></asp:image>,那个imageurl就是放chart的那个网页,那个网页是什么样的呢,是这样的,

<%@ Page Language="c#" Inherits="System.Web.UI.DataVisualization.Charting.Samples.BinaryStreamingImage" CodeFile="BinaryStreamingImage.aspx.cs" %><asp:chart id="Chart1" runat="server" height="296px" width="412px" imagelocation="~/TempImages/ChartPic_#SEQ(300,3)"    imagetype="Png" palette="BrightPastel" backcolor="#F3DFC1" rendertype="BinaryStreaming"    BorderlineDashStyle="Solid" backgradientstyle="TopBottom" borderwidth="2" bordercolor="181, 64, 1">    <titles>        <asp:Title ShadowColor="32, 0, 0, 0" Font="Trebuchet MS, 14.25pt, style=Bold" ShadowOffset="3" Text="Binary Streaming" ForeColor="26, 59, 105"></asp:Title>    </titles>    <legends>        <asp:Legend Enabled="False" IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold"></asp:Legend>    </legends>    <borderskin skinstyle="Emboss" />    <series>        <asp:Series XValueType="Double" Name="Series1" ChartType="SplineArea" BorderColor="180, 26, 59, 105" Color="220, 65, 140, 240" YValueType="Double">            <points>                <asp:DataPoint YValues="6" />                <asp:DataPoint YValues="9" />                <asp:DataPoint YValues="3" />                <asp:DataPoint YValues="5" />                <asp:DataPoint YValues="2" />                <asp:DataPoint YValues="7" />                <asp:DataPoint YValues="8" />                <asp:DataPoint YValues="1" />            </points>        </asp:Series>    </series>    <chartareas>        <asp:ChartArea Name="ChartArea1" BorderColor="64, 64, 64, 64" BorderDashStyle="Solid" BackSecondaryColor="White" BackColor="OldLace" ShadowColor="Transparent">            <area3dstyle Rotation="10" perspective="10" enable3d="True" Inclination="15" IsRightAngleAxes="False" wallwidth="0" IsClustered="False">            </area3dstyle>            <axisy linecolor="64, 64, 64, 64">                <labelstyle font="Trebuchet MS, 8.25pt, style=Bold"/>                <majorgrid linecolor="64, 64, 64, 64"/>            </axisy>            <axisx IsMarginVisible="False" linecolor="64, 64, 64, 64">                <labelstyle font="Trebuchet MS, 8.25pt, style=Bold"/>                <majorgrid linecolor="64, 64, 64, 64"/>            </axisx>        </asp:ChartArea>    </chartareas></asp:chart>

什么都没有,就一个头,直接加chart控件。就直接输出来了。效果就是下图。如果你要根据参数动态生成图形,就用url传值的方式传过去即可。




Ps:

1、页面中不是引用image,而是常规使用chart控件,如果你把chart控件的rendertype="BinaryStreaming"属性写上去的话,那么你这个页面就会以字符串流的显示方式显示在IE浏览器中了。

2、页面常规使用chart控件,如果不是用IE,而是用chrome打印,是可以看到图片的,不知道为什么?不过为了通用,使用rendertype="BinaryStreaming"属性,将chart分离还是比较灵活的。

3、如果您还有什么用法或者解决方法可以留言,共同提高。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7彩账号被锁定怎么办 猪不吃食没精神怎么办 cf手游签到没给怎么办 cf说停止运行了怎么办 cf端游永久禁赛怎么办 cf端游爆破怕死怎么办 王者荣耀累计扣分12分怎么办 去医院看病没带身份证怎么办 ps4星战2鬼服怎么办 冒险岛英雄五转怎么办 6儿童视力低常怎么办 腰干活累的酸痛怎么办 狗狗体力很差怎么办啊 脉差总是五十多怎么办 吃过敏药嗜睡乏力怎么办 写字紧张心跳的快手抖怎么办 怀孕食欲差没精神怎么办 爬个三楼就喘了怎么办 头被篮球砸了怎么办 打球手指肿了很久怎么办 客人吃饭跑单了怎么办 脑子总是记不住东西怎么办 穿的鞋有味道怎么办 生完孩子血糖高怎么办 生了孩子子宫大怎么办 生完孩子阴吹怎么办 怀孕初期感冒嗓子发炎怎么办 脑子转不过来弯怎么办 他说我道行不深怎么办 鞋子内测磨破了怎么办 老公拉肚子拉的很厉害怎么办 老公拉肚子拉得很厉害怎么办 和老公吵架很厉害怎么办 新鞋鞋底吱吱响怎么办 新鞋鞋底滑了怎么办 工作中同事不配合怎么办 做体力活一身疼怎么办 大脑左则中动脉血管狭窄?怎么办 儿童体质差免疫力差怎么办 nba篮球大师体力不够怎么办 一千米差10秒怎么办