不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
POS58票据打印机走纸测试
编辑:dnawo 日期:2014-09-02
1.打印文本

这种方法走纸正常,但文本显示不好控制(右边文本没有显示完)。
2.打印控件(Panel)
不要去测试这段代码,我测试时纸走了2米多还在走-_-#,于是做了下改进:

打印成功。注意,上面代码用e.Graphics.VisibleClipBounds获取打印区域,不要用e.PageBounds,我被网上一篇文章误导用了它,结果打印总有问题被折腾了很久。
参考资料
[1].PrintPageEventArgs类:http://msdn.microsoft.com/zh-cn/library/system.drawing.printing.printpageeventargs(v=vs.80).aspx
复制内容到剪贴板
程序代码

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
Font font = new Font("宋体", 12);
Brush brush = Brushes.Black;
e.Graphics.DrawString("要打印的文本", font, brush, 0, 0);
}
{
Font font = new Font("宋体", 12);
Brush brush = Brushes.Black;
e.Graphics.DrawString("要打印的文本", font, brush, 0, 0);
}

这种方法走纸正常,但文本显示不好控制(右边文本没有显示完)。
2.打印控件(Panel)
复制内容到剪贴板
程序代码

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
using (Bitmap bitmap = new Bitmap(panel1.Width, panel1.Height))
{
panel1.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
e.Graphics.DrawImage(bitmap, 0, 0, e.Graphics.VisibleClipBounds.Width, e.Graphics.VisibleClipBounds.Height);
}
}
{
using (Bitmap bitmap = new Bitmap(panel1.Width, panel1.Height))
{
panel1.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
e.Graphics.DrawImage(bitmap, 0, 0, e.Graphics.VisibleClipBounds.Width, e.Graphics.VisibleClipBounds.Height);
}
}
不要去测试这段代码,我测试时纸走了2米多还在走-_-#,于是做了下改进:
复制内容到剪贴板
程序代码

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
using (Bitmap bitmap = new Bitmap(panel1.Width, panel1.Height))
{
panel1.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
int width = (int)e.Graphics.VisibleClipBounds.Width;
int height = width * bitmap.Height / bitmap.Width;
e.Graphics.DrawImage(bitmap, 0, 0, width, height);
}
}
{
using (Bitmap bitmap = new Bitmap(panel1.Width, panel1.Height))
{
panel1.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
int width = (int)e.Graphics.VisibleClipBounds.Width;
int height = width * bitmap.Height / bitmap.Width;
e.Graphics.DrawImage(bitmap, 0, 0, width, height);
}
}

打印成功。注意,上面代码用e.Graphics.VisibleClipBounds获取打印区域,不要用e.PageBounds,我被网上一篇文章误导用了它,结果打印总有问题被折腾了很久。
参考资料
[1].PrintPageEventArgs类:http://msdn.microsoft.com/zh-cn/library/system.drawing.printing.printpageeventargs(v=vs.80).aspx
评论: 0 | 引用: 0 | 查看次数: 3755
发表评论
请登录后再发表评论!