一下这个类专门用于打印DataGridView,但是功能不是很强大 如果有个性化需求  可在此基础上简单修改

Code


  1public class DataGridViewPrint
  2    {
  3        private DataGridView dataGridView;
  4        private PrintDocument printDocument;
  5        private PageSetupDialog pageSetupDialog;
  6        private PrintPreviewDialog printPreviewDialog;
  7
  8        public DataGridViewPrint(DataGridView dataGridView)
  9        {
 10            this.dataGridView = dataGridView;
 11            printDocument = new PrintDocument();
 12            printDocument.PrintPage += new PrintPageEventHandler(this.printDocument_PrintPage);
 13        }
 14
 15        private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
 16        {
 17            int rowCount = 0;
 18            int colCount = 0;
 19            int x = 0;
 20            int y = 0;
 21            int rowGap = 20;
 22            int colGap = 5;
 23            int leftMargin = 50;
 24            Font font = new Font("Arial", 10);
 25            Font headingFont = new Font("Arial", 11, FontStyle.Underline);
 26            Font captionFont = new Font("Arial", 10, FontStyle.Bold);
 27            Brush brush = new SolidBrush(Color.Black);
 28            string cellValue = "";
 29
 30            if (dataGridView.DataSource.GetType().ToString() == "System.Data.DataTable")
 31            {
 32                rowCount = ((DataTable)dataGridView.DataSource).Rows.Count;
 33            }
 34            else if (dataGridView.DataSource.GetType().ToString() == "System.Collections.ArrayList")
 35            {
 36                rowCount = ((ArrayList)dataGridView.DataSource).Count;
 37            }
 38            colCount = dataGridView.ColumnCount;
 39
 40            
 41           
 42
 43            //print headings 
 44            y += rowGap;
 45            x = leftMargin;
 46            for (int j = 0; j < colCount; j++)
 47            {
 48                if (dataGridView.Columns[j].Width > 0)
 49                {
 50                    cellValue = dataGridView.Columns[j].HeaderText;
 51                    e.Graphics.DrawString(cellValue, headingFont, brush, x, y);
 52                    x += dataGridView.Columns[j].Width + colGap;
 53                }
 54            }
 55
 56            //print all rows 
 57            for (int i = 0; i < rowCount; i++)
 58            {
 59                y += rowGap;
 60                x = leftMargin;
 61                for (int j = 0; j < colCount; j++)
 62                {
 63                    if (dataGridView.Columns[j].Width > 0)
 64                    {
 65                        cellValue = dataGridView[i, j].ToString();
 66                        e.Graphics.DrawString(cellValue, font, brush, x, y);
 67                        x += dataGridView.Columns[j].Width + colGap;
 68                        y = y + rowGap * (cellValue.Split(new char[] { ' ', ' ' }).Length - 1);
 69                    }
 70                }
 71            }
 72            string s = cellValue;
 73            string f3 = cellValue;
 74        }
 75
 76        public PrintDocument GetPrintDocument()
 77        {
 78            return printDocument;
 79        }
 80
 81        public void Print()
 82        {
 83            try
 84            {
 85                pageSetupDialog = new PageSetupDialog();
 86                pageSetupDialog.Document = printDocument;
 87                pageSetupDialog.ShowDialog();
 88                printPreviewDialog = new PrintPreviewDialog();
 89                printPreviewDialog.Document = printDocument;
 90                printPreviewDialog.Height = 600;
 91                printPreviewDialog.Width = 800;
 92                printPreviewDialog.ShowDialog();
 93            }
 94            catch (Exception e)
 95            {
 96                throw new Exception("Printer error." + e.Message);
 97            }
 98
 99        }
100    }

转载于:https://www.cnblogs.com/OrisonWind/archive/2008/10/21/1315802.html

DataGridView打印类相关推荐

  1. DataGridView打印专家组件2.5版正式发布

    版本:2.5.2(中文) 版权:LuckerSoft(2009-2010) 类型:个人免费,商业收费 下载地址(附演示源码):DataGridView打印专家组件及演示代码.rar 更多信息:http ...

  2. stm32f103gd32的usb虚拟串口,打印类printer组合设备

    stm32f103&gd32的usb虚拟串口+打印类printer组合设备@TOC stm32f103&gd32的usb虚拟串口,打印类printer组合设备 由于gd32和stm32 ...

  3. php云打印类,PHP应用:PHP云打印类完整示例

    <PHP应用:PHP云打印类完整示例>要点: 本文介绍了PHP应用:PHP云打印类完整示例,希望对您有用.如果有疑问,可以联系我们. 本文实例讲述了PHP云打印类.分享给大家供大家参考,具 ...

  4. 用css规范php的输出,一段很小但很实用的CSS打印类(附例子及_php

    Untitled Document .tdp http://www.gaodaima.com/45586.html一段很小但很实用的css打印类(附例子及_php { border-bottom: 1 ...

  5. 免费DataGridView打印及.NET轻松打印控件(VB打印,C#打印)

    datagridview打印控件下载地址: http://download.csdn.net/detail/myyouping/7536125 该控件应该是国内最好的datagridview打印控件, ...

  6. Java教程:Jasper-pdf打印类

    Java教程:Jasper-pdf打印类 import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.data.J ...

  7. python打印类的内容_python-打印类的所有实例

    python-打印类的所有实例 对于Python中的类,如何定义函数以函数中定义的格式打印类的每个实例? user33061 asked 2019-12-25T05:00:09Z 7个解决方案 85 ...

  8. php打印机,PHP云打印类完整示例

    本文实例讲述了PHP云打印类.分享给大家供大家参考,具体如下: 一个项目需求要几百台电脑都有打印功能,本来是想用网络打印机的,后来发现没有网络打印机,就自己动手写一个打印类算了. 类实现想法是:先把要 ...

  9. 润乾报表中常见的打印类问题的总结

     在解决润乾报表的打印类问题时,首先要知道打印与哪些文件相关,下面就列出了与打印相关的文件及位置: 1.runqianReport4Applet.jar 位置:应用根目录下 2.report4.j ...

最新文章

  1. 安徽省计算机二级大题教程,安徽省计算机二级例题
  2. 博客刚开通,先转载几篇,请见谅
  3. Coolite Toolkit学习笔记系列文章
  4. 小猿圈web前端之网站性能优化方案
  5. 计算机做游戏到大学要学什么,大学学什么专业,毕业才能从事电竞行业?
  6. ygo游戏王卡组_游戏王:二线卡组脱颖而出的战将,混沌青眼卡组,仪式卡组的骄傲...
  7. 使用C++控制台程序或Python调用Dll创建Qt界面(dll中创建QApplication,qtwinmigrate的使用)
  8. Visual Studio 2017 15.3 已发布,增加.NET Core 2 支持
  9. ubunto中常出现的问题
  10. 樊正伦教授的养生之道中医文化与养生之---调情志
  11. 《游戏设计艺术(第2版)》——学习笔记(32)第32章 游戏改变玩家
  12. 街景地图工作是如何工作的
  13. 不看OCJP考题你永远不知道自己的JAVA基础有多差(一)
  14. 数据结构: 算法的时间复杂度和空间复杂度
  15. js cookie 数组 存读
  16. 计算机进位制及其规则,进位计数制及其转换方法过程详解
  17. 容量可动态扩展的LinkedBlockingQueue
  18. 信息学奥赛一本通-1404我家的门牌号
  19. python爬取cctalk视频_python爬虫urllib使用和进阶 | Python爬虫实战二
  20. nginx端口转发+域名映射

热门文章

  1. Maven安装与配置(最实用!!!)eclipse中配置maven
  2. 浅显易懂 Makefile 入门 (01)— 什么是Makefile、为什么要用Makefile、Makefile规则、Makefile流程如何实现增量编译
  3. Imagination 的神经网络加速器和 Visidon 的去噪算法被证明是完美的搭档
  4. AI 芯片的分类及技术
  5. 如何在TVM上集成Codegen(下)
  6. 计算机视觉一些项目实战技术
  7. C++ set 的使用
  8. Java 遍历map
  9. Ubuntu 系统安装OpenJDK 7,openjdk8
  10. Android Read-only file system