本次使用的打印机是Gprinter GP-9134T

实现打印的主要代码就是

PrintDocument printDocument = new PrintDocument();
//设置边距
printDocument.PrinterSettings.DefaultPageSettings.Margins = new Margins(0,0,0,0);
//纸张大小
printDocument.DefaultPageSettings.PaperSize = new PaperSize("A4", 178, 52);
//绑定打印事件
printDocument.PrintPage += printDocument_PrintPage;
//打印
void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{Graphics g = e.Graphics;g.PageScale = 0.18f;//缩小比例Bitmap bitmap = new Bitmap(445, 260);pDraw.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));e.Graphics.DrawImage(bitmap, (int)(3 / g.PageScale), 0, bitmap.Width, bitmap.Height);e.Graphics.DrawImage(bitmap, (int)(98 / g.PageScale), 0, bitmap.Width, bitmap.Height);
}

在点击按钮时,执行Print()

printDocument.Print();

分析

如果要实现双排打印,打印出不同的内容

我们需要清楚一点就是,每执行printDocument.Print()打印机都会打印一次,如果打印纸是单排的,则打印一张,如果打印纸是双排的,则打印两张

现在有两种方法

第一种,用两个Panel,当点击打印时,更改两个Pabel上字段的值,然后执行Print()方法

第二种,打印前将要打印的所有内容保存为图片,再执行Print(),执行printDocument_PrintPage()里,更改需要打印的图片

第一种方法,也实现过但是觉得太麻烦了,还要做第二种吧

实现

我们需要先新建一个临时的文件夹,存放图片

定义一个变量来存储打印的次数,比如打印第一张时,num++,则打印一次,执行两次num++,因为是双排打印

打印时只需将临时文件夹里的图片打印出来即可

保存图片代码

//临时目录
TempPath = DateTime.Now.ToString("yyyyMMddHHmmss");int count = int.Parse(tbNum.Text);
int loopI = int.Parse(lbNewFidld.Text);for (int i = 0; i < count;i++)//将控件图片保存在临时目录中
{lbNewFidld.Text = loopI.ToString();DrawToBitmap(pDraw, Application.StartupPath + "\\Temp\\" + TempPath, i.ToString() + ".bmp");loopI++;
}num = 0;for (int i = 0; i < count / 2 + 1; i++)
{printDocument.Print();
}

打印实现

string fileName = Application.StartupPath + "\\Temp\\" + TempPath + "\\" + num.ToString() + ".bmp";
if (File.Exists(fileName))
{bitmap = (Bitmap)Image.FromFile(fileName);e.Graphics.DrawImage(bitmap, (int)(3 / g.PageScale), 0, bitmap.Width, bitmap.Height);num++;
}fileName = Application.StartupPath + "\\Temp\\" + TempPath + "\\" + num.ToString() + ".bmp";
if (File.Exists(fileName))
{bitmap = (Bitmap)Image.FromFile(fileName);e.Graphics.DrawImage(bitmap, (int)(98 / g.PageScale), 0, bitmap.Width, bitmap.Height);num++;
}

这里涉及到另一个知识点,WinForm运行时调整控件大小和位置,请看我的另一篇博文

WinForm运行时模仿窗体设计调整控件大小和位置

实现这个功能,就可以在Panel编辑字段了

效果

【WinForm】打印机编辑打印内容并实现双排打印相关推荐

  1. java 打印异常内容_java自定义异常打印内容详解

    本文实例为大家分享了java自定义异常打印内容的具体代码,供大家参考,具体内容如下 背景:在开发中,我们可能会使用到自定义异常,但是,这个自定义异常在打印日志时,往往打印的内容比较多. 1.自定义异常 ...

  2. Java 异常 自定义打印内容

    Java 异常 自定义打印内容 背景:在开发中,我们可能会使用到自定义异常,但是,这个自定义异常在打印日志时,往往打印的内容比较多. 1.自定义异常打印内容 可以看到,虽然我们使用的是自定义异常,但是 ...

  3. 条码打印软件如何设置双排标签纸尺寸 1

    最近遇到客户咨询在使用条码打印软件打印标签的时候出现标签内容偏移,或者打印不全的情况,这种情况一般是软件或者打印机中纸张尺寸设置的和实际纸张尺寸不一致造成的.那么,在条码打印软件中应该怎么设置标签纸尺 ...

  4. 如何新建编辑页 cnn_cifar_my_标签打印软件如何设计正反面打印模式

    原标题:标签打印软件如何设计正反面打印模式 对于一些特殊印刷工作的用户,希望在标签打印软件中实现设计正反面的打印模式,可能很多用户不是很清楚,在中琅标签打印软件中如何实现正反面的打印设置,下面我们就来 ...

  5. Android官方开发文档Training系列课程中文版:打印内容之图像打印

    原文地址:http://android.xsoftlab.net/training/printing/index.html 引言 Android用户会很频繁的浏览设备上的内容,但是有部分情况例外,当屏 ...

  6. Android官方开发文档Training系列课程中文版:打印内容之自定义文档打印

    原文地址:http://android.xsoftlab.net/training/printing/custom-docs.html 对于一些应用,比如绘图类APP,版面设计类APP以及其它APP, ...

  7. labelshop更改打印机_条形码生成器签赋LabelShop打印流程

    概述 在签赋LabelShop条码打印软件中,可以通过选择京成云马平台上的标签纸规格也可以自定义纸标签规格来设置排版布局.条形码生成器签赋LabelShop条码打印软件支持所有的普通打印机及条码打印机 ...

  8. html打印比例缩放,打印内容整体缩小、挤压的原因及解决办法?

    打印机打印网页里的内容其行距.字体大小.整体尺寸都缩小了?其实原因很简单,请看本文分享的解决办法(基于lodop打印控件). 打印问题的详情描述 用户反馈:电脑打印Word文档.电子表格.打印机测试页 ...

  9. c语言用星号输出国旗,一年级上册语文(部编版)背诵内容合集,打印一份给孩子!...

    原标题:一年级上册语文(部编版)背诵内容合集,打印一份给孩子! 小学一年级语文上册背诵内容 P7金木水火土 一二三四五,金木水火土. 天地分上下,日月照今古. 背诵签字:月日 P13对韵歌 云对雨,雪 ...

最新文章

  1. 创建数据库时指定编码方式
  2. DearGUI编写贪吃蛇之让蛇跑的方向受控制_最新
  3. zabbix 3.4 ubuntu 16 用腾讯企业邮箱作为告警邮箱
  4. Matlab制作个人主页
  5. MHA管理所有数据库服务器
  6. SpringBoot 处理内置对象
  7. Linux学习之十二-Linux文件属性
  8. 这是 Google 工程师 Amit Singhal 发表在 Google 官方博客的一篇文章,讲述了 Google 搜索排名背后的一些技术,涉及到 Google 对网页,对语义,对用户意图的理解。
  9. 25 PP模块-创建工厂日历报错-请输入年度xxxx和xxxx之间的有效区域
  10. Entity Framework在三层架构中的使用
  11. mysql ---事务
  12. 手动解除浏览器跨域限制
  13. jquery层级原则器(匹配前一个元素后的下一个元素,必须是挨着的)
  14. VMWare mac os x 优化神器 beamoff
  15. Web端轻松实现音视频聊天通话
  16. 2020/03/11美版iPhone卡贴ICCID完美激活!
  17. Excel成神之道-001-数据分列
  18. 螺旋矩阵常数复杂度解法
  19. 关于win10输入法导致电脑直接卡机无法动弹问题
  20. Storm Event Imagery Dataset 数据简介

热门文章

  1. 编译Kodi(XBMC 14) 和XBMC-13.2-Gotham版本的记录
  2. 非参数统计中的核平滑方法/Kernel smoother
  3. 【思维】如何放下心中的执念?
  4. 重新加载script
  5. 传播正能量——《海南英才》阅读的读后感2200字
  6. 华为计算机电话号码魔术,看完这6个操作,我终于相信华为手机真的有魔法!...
  7. BDE-TDataBase
  8. Android Hook 实战--替换第三方sdk的类
  9. ios14测试版兼容软件,ios14描述文件
  10. 【HTML5】嵌入另一张HTML文档、通过插件嵌入内容、嵌入数字表现形式