请问:我现在要做一个打印HTML的程序,HTML文件已经在本地了,如何可以打印出来,环境是在winform上,谢谢 分数不多 只有30分了

解决方案 »

  1.   

    在winform上放一个webbrower控件,读取HTML文件,调用WEBBROWER的打印就可以了
      

  2.   

    Winform利用WebBroswer控件读取html页面的元素第一页//有些东西LZ根据你自己的情况修改下就可以了
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Security.Cryptography;
    using System.Web;
    namespace 电信查询
    {
        public partial class Form1 : Form
        {
            //WebService引用
            private objTele.Service1SoapClient objtele = new 电信查询.objTele.Service1SoapClient();
            //当前查询号码
            private string nowtnum = "";
            //当前查询ID
            private string nowtid = "";
            //当前用户余额
            private string nowtmoney = "";        //当前用户名称
            private string nowtname = "";        //上一个用户名
            private string oldtname = "";
            //上一个查询号码
            private string oldtnum = "";
            //上一个查询ID
            private string oldtid = "";
            //上一用户余额
            private string oldtmoney = "";
            //刷新页面次数
            private int islock = 0;
            public Form1()
            {
                InitializeComponent();
            }        private void tspstart_Click(object sender, EventArgs e)
            {
                if (cbbtime.Text != "")
                {
                    if (tspstart.Text == "开始查询")
                    {
                        timer1.Interval = Convert.ToInt32(cbbtime.Text.ToString().Trim());
                        timer1.Enabled = true;
                        tspstart.Text = "停止查询";
                    }
                    else
                    {
                        tspstart.Text = "开始查询";
                        timer1.Enabled = false;
                        timer2.Enabled = false;
                    }
                }
                else
                {
                    MessageBox.Show("请先设定查询时间间隔", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }        private void cbbtime_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (cbbtime.Text != "")
                {
                    timer1.Interval = Convert.ToInt32(cbbtime.Text.ToString().Trim());
                }
            }        private void Form1_Load(object sender, EventArgs e)
            {
                webpage.Url = new Uri("http://www.1065921611.com/");
                lvorder.Columns.Add("编号", 40);
                lvorder.Columns.Add("号码", 80);
                lvorder.Columns.Add("姓名", 80);
                lvorder.Columns.Add("用户余额", 80);
                lvorder.Columns.Add("状态", 120);
                lvorder.Columns.Add("时间", 120);
                lvorder.GridLines = true; //显示表格线
                lvorder.View = View.Details;//显示表格细节
                lvorder.HeaderStyle = ColumnHeaderStyle.Clickable;//对表头进行设置
                lvorder.FullRowSelect = true;//是否可以选择行
                cbbtime.Text = "5000";
                this.Text = "电信查询";
            }        private void timer1_Tick(object sender, EventArgs e)
            {
                string strtele = "";
                try
                {
                    //从数据库中查询一条等待查询的数据
                    strtele = objtele.selectOneSelectStratMobile(Encrypt(), "2");
                    if (strtele != "")
                    {
                        string[] stroder = strtele.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries);
                        if (stroder[0] != "0" && stroder[1] != "0")
                        {
                            try
                            {
                                HtmlDocument doc = webpage.Document.Window.Frames[1].Document.Window.Frames[3].Document.Window.Frames[0].Document;
                                HtmlElement telenum = doc.All["chargePhone"];
                                HtmlElement submit = doc.GetElementsByTagName("a")[0];
                                nowtid = stroder[0].ToString().Trim();
                                nowtnum = stroder[1].ToString().Trim();
                                nowdo.Text = "正在查询用户:" + nowtnum.ToString() + "信息";
                                if (telenum == null || submit == null)
                                {
                                    nowdo.Text = "网络受阻查询用户:" + nowtnum.ToString() + "信息失败";
                                    databind(nowtid.ToString(), nowtnum.ToString(), "查询失败", "0", "网络受阻,查询失败", 9);
                                    return;
                                }
                                telenum.SetAttribute("value", stroder[1].ToString());
                                submit.InvokeMember("click");
                                timer1.Enabled = false;
                                timer2.Enabled = true;
                                timer2.Interval = 2000;
                                islock = 0;
                            }
                            catch (Exception)
                            {
                                return;
                            }
                        }
                    }
                }
                catch (Exception)
                {                throw;
                }
            }        //页面加载完成时发生
            private void webpage_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {        }
            //页面开始刷新时执行
            private void webpage_Navigated(object sender, WebBrowserNavigatedEventArgs e)
            {        }
      

  3.   

    sorry这个是回复另一个帖子的LZ你要的在这
    点此进入
      

  4.   

    printDocument1_PrintPage中读取单据的内容打印就是了
      

  5.   

    这个单据是HTML的代码,读取不出来,后来还是用加载到WORD来打印了
      

  6.   

    我最后是用WEBBROWSER加载HTML文件,然后调用打印方法