宁海在线

 找回密码
 立即注册

QQ登录

只需一步,快速开始

快捷登录

客服电话:0574-65520000
搜索
查看: 2322|回复: 2

[软件] 打印程序的开发贡献给大家

[复制链接]

54

主题

453

帖子

3566

积分

Lv.9 状元

Rank: 9Rank: 9Rank: 9

积分
3566
在线时间
481 小时
发表于 2009-4-6 09:25:39 | 显示全部楼层 |阅读模式 | 来自浙江
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace print
{
    public partial class Form1 : Form
    {
        private int CheckPoint;  //定义全局变量表示为页面
        public Form1()
        {
            InitializeComponent();
        }

      

        private void printDocument1_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            MessageBox.Show(printDocument1.DocumentName + " 已经打印完成!");  //打印结束
        }

        private void printDocument1_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            CheckPoint = 0;  //打印开始
        }

        private void button1_Click(object sender, EventArgs e)
        {
            PageSetupDialog ps = new PageSetupDialog();  //通过模式窗体调用打印页面设置
            ps.Document = printDocument1;
            ps.ShowDialog();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            PrintDialog pd = new PrintDialog(); //通过模式窗体调用打印
            pd.Document = printDocument1;
            if (pd.ShowDialog() != DialogResult.Cancel)
            {
                try
                {
                     printDocument1.Print();
                }
                catch (Exception ex)
                {

                    MessageBox.Show(ex.Message);
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            StringReader lineReader = new StringReader(zybRichTextBox1.Text);//注意引用IO,将我开发的自定义文本筐的内容读出来
            try
            {
                PrintPreviewDialog ppd = new PrintPreviewDialog();//通过模式窗体调用打印页面设置
                ppd.Document = printDocument1;   
                ppd.FormBorderStyle = FormBorderStyle.Fixed3D;
                ppd.ShowDialog();
            }
            catch (Exception excep)
            {
                MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            
            }
        }

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            CheckPoint = zybRichTextBox1.Print(CheckPoint, zybRichTextBox1.TextLength, e);  //打印装载事件
            if (CheckPoint < zybRichTextBox1.TextLength)
            {
                e.HasMorePages = true;
            }
            else
            {
                e.HasMorePages = false;
            }
        }
    }
}

关于printDocument控件的更详细使用请查看微软官方网站MSDN
测试效果如图 
未命名.jpg
下载宁海在线客户端

13

主题

56

帖子

324

积分

Lv.2 草寇

Rank: 2

积分
324
在线时间
19 小时
QQ
发表于 2009-4-10 09:39:06 | 显示全部楼层 | 来自浙江
C#.net 嘛!
呵呵,噶简单的程序。知道我们的系统怎么打印的吗?
专业的贸易类单证生成、打印、导出,专业的图文报表。
有兴趣在宁波从事程序员工作的朋友可以联系我,TEL:13967843603 QQ:540688290
宁波凯瑞计算机科技有限公司 www.carysoft.cn
回复 支持 反对

使用道具 举报

54

主题

453

帖子

3566

积分

Lv.9 状元

Rank: 9Rank: 9Rank: 9

积分
3566
在线时间
481 小时
 楼主| 发表于 2009-4-10 10:28:31 | 显示全部楼层 | 来自浙江
原理一样把数据灌到datatable中,然后从datatable中获取,中间是复杂了点
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|客户端|浙公网安备案 33022602000116|宁海在线 ( 浙B2-20200368

关于我们|电话:0574-65520000 ,GMT+8, 2024-11-27 16:26 , Processed in 0.092987 second(s), 23 queries , Apc On.

Powered by Discuz! X3.4

© 2000-2015 NHZJ Inc.

违法和不良信息举报电话:13819844444  邮箱:admin@nhzj.com
 未成年人保护服务电话:13819844444  邮箱:admin@nhzj.com
快速回复 返回顶部 返回列表