向日葵甘特图的打印思路,欢迎大家给出建议

         打印问题解决方法: 

              利用在服务端web 快照的方式生成图片,然后用户就可以利用图片工具打印甘特图。

               这样向日葵甘特图就需要一个轻量的服务端,服务端代码完全对用户开放。

               下面是C#写的生成甘特截图代码,可以运行查看效果,欢迎大家给出更多建议。

               目前存在问题是生成速度偏慢,而且较耗服务器性能,正在改进之中。

 

using System;
using System.Web;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Windows.Forms;
using System.Threading;

namespace SFGantt.Services
{
    /*定义一个页面类型,用来将一个XML文件分隔输出*/
    public class GanttPrint : System.Web.UI.Page
    {

        private void Page_Load(object sender, System.EventArgs e)
        {

            try
            {
                Server.ScriptTimeout = 9000;
                System.Threading.ThreadStart start = new ThreadStart(this.test);
                System.Threading.Thread th = new System.Threading.Thread(start);
                th.SetApartmentState(System.Threading.ApartmentState.STA);//这句关键的
                th.Start();
                th.Join();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

        }

        private void test()
        {
            try
            {

                WebBrowser MyBrowser = new WebBrowser();

                MyBrowser.Size = new Size(3600, 2200);

                string url = "http://www.51diaodu.cn/sfgantt/examples/SFGantt/ganttprint.htm";

                MyBrowser.Navigate(url);

                while (MyBrowser.IsBusy ||   MyBrowser.ReadyState != WebBrowserReadyState.Complete)
                {
                    System.Windows.Forms.Application.DoEvents();
                }
                Bitmap myBitmap = new Bitmap(3600, 2200);
                Rectangle DrawRect = new Rectangle(0, 0, 3600, 2200);
                MyBrowser.DrawToBitmap(myBitmap, DrawRect);

                string FileName ="sfgantt"+ DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
                string tmpRootDir = Server.MapPath(this.Request.ApplicationPath);//获取程序根目录

                //String FilePath = Server.MapPath(FileName);

                myBitmap.Save(tmpRootDir + FileName);
                myBitmap.Dispose();
                MyBrowser.Dispose();
                MyBrowser = null;
                Response.Write("向日葵甘特生成图片"+ FileName );
                Response.Write("<img src=\\" + FileName + " width=100% height=100%>");

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }


    }
}


 

转载于:https://www.cnblogs.com/tidestone/archive/2009/03/24/1420174.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
向日葵甘特图组件1.5版发布后,获得了很多用户的好评。我们也再接再励,对向日葵甘特最近做了如下更新:     1、 增加了甘特图中每个组件的isUsing属性,可以判断其是否加载,从而可以允许用户灵活地显示/隐藏 链接线,进度线等组件 ; 2、 当甘特图任务数比较少的情况下,甘特图自动在下方平铺甘特图样式,实现更为一致的甘特图界面 3、 点击右边甘特条时,自动高亮选择左边的列表行;点击列表栏时,也自动高亮显示右边的甘特条。用户选择任务时更加清晰。 4、 实现行定位一个任务。用户可以通过筛选条件查找到一条任务,然后通过甘特图API提供的scrolltoElement方法将其显示到界面中心。参见范例http://www.51diaodu.cn/sfgantt/examples/SFGantt/scrollTo.htm 5、自动合并压缩甘特图的左边列表栏 向日葵甘特图介绍: 向日葵 Gantt 是当前B/S 系统开发中先进的甘特图解决方案,它采用与Google maps相同的AJAX技术,实现了与Ms Project 甘特图一致的界面和功能,可广泛应用于 ERP 系统、MES系统、项目管理系统或其它的资源时间调度相关领域。 向日葵 Gantt 数据XML核心属性与MS Project 完全一致,可以直接读取MS Project XML文件。另外由于向日葵甘特完全采用AJAX的技术来实现,因此比其他的甘特组件至少有如下优势: 完全采用JS实现,与服务器端开发语言无关,可在任何服务器平台上运行; 可轻松地与现有系统整合; 减轻服务器和带宽的负担,节约空间和带宽租用成本; 客户端无需安装任何插件即可运行; 支持大多数主流浏览器,如:IE,FireFox,Opera等; 用户基本操作无需与服务器交互,给用户带来流畅而友好的体验。 向日葵甘特图支持从服务器端动态加载数据,先进的按需加载技术使用户能够轻松应对大数据量任务的呈现问题。 向日葵甘特图是一个免费的web图形开发组件,它提供了非常丰富的用户二次开发API和完整的在线文档,参见 http://www.51diaodu.cn/sfgantt/docs/index.html 用户可以非常方便地将其整合到现有的Web系统中,无论用户使用的是Java,Dotnet还是Php等. 另外我们公司也提供收费服务,为用户提供更专业的咨询与升级服务,谢谢您对向日葵甘特开发团队的鼓励与支持! 中文网址: http://www.51diaodu.cn/ 英文网站:http://www.sfgantt.com/ 向日葵甘特图组件QQ交流群: 63867839 邮件:Admin@51diaodu.cn
向日葵 Gantt 是当前B/S 系统开发中先进的甘特图解决方案,它采用与Google maps相同的AJAX技术,实现了与Ms Project 甘特图一致的界面和功能,可广泛应用于 ERP 系统、MES系统、项目管理系统或其它的资源时间相关领域。 <br><br> 向日葵甘特图组件完全采用JS实现,与服务器端开发语言无关,可在任何服务器平台上运行; <br><br> 可轻松地与现有系统整合; <br> 减轻服务器和带宽的负担,节约空间和带宽租用成本; <br> 客户端无需安装任何插件即可运行; <br> 支持大多数主流浏览器,如:IE,FireFox,Opera等; <br>用户基本操作无需与服务器交互,给用户带来流畅而友好的体验。 <br> 向日葵甘特图组件与MS Project中的甘特图保持高度一致。MS Project是目前应用最为广泛的项目管理工具,也是甘特图绘制领域的事实标准。 <br><br>操作一致性:向日葵甘特图组件的操作与MS Project极为相似,在Web上实现了拖动甘特条调整任务进度、调整任务工期、建立任务链接关系等精细操作。 <br><br>数据一致性:可以直接读取MS Project(版本在2000以后)的XML数据,为用户实现与MS Project的无缝集成提供了良好的接口。而且向日葵甘特图组件也保持了良好的数据可扩展性。 <br><br>界面一致性:界面整体风格与MS Project完全一致,也可以自定义表格区显示列,条形图的形状,链接线的样式。而且Web技术中的样式表为向日葵甘特图组件提供了无限的变化可能。 <br><br>API一致性:向日葵甘特图组件提供了和MS Project一致的应用程序开发API,功能强大,简单易用。 <br><br>官方网址: www.51diaodu.cn (我要调度网) 向日葵甘特图组件QQ交流群: 63867839
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值