自动读取上次没有打印完的内容因为lineReader是这个打印方法外的类的成员它可以记录当前读取的位置
if(line != null)
e.HasMorePages = true;
else
e.HasMorePages = false;
}
打印设置 , 构造打印对话框 将对话框中设置的Document属性赋给printDocument这样会将用户的设置自动保存到printDocument
的PrinterSettings属性中
protectedvoid FileMenuItem_PrintSet_Click(object sender,EventArgs e)
{
PrintDialog printDialog = new PrintDialog();
printDialog.Document = printDocument;
printDialog.ShowDialog();
}
页面设置和打印预览与打印设置原理相同都是构造对话框将用户在对话框中的设置保存到相应的类的属性中
protectedvoid FileMenuItem_PageSet_Click(object sender,EventArgs e)
{
PageSetupDialog pageSetupDialog = new PageSetupDialog();
pageSetupDialog.Document = printDocument;
pageSetupDialog.ShowDialog();
}
打印预览
protected void FileMenuItem_PrintView_Click(object sender,EventArgs e)
{
PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
printPreviewDialog.Document = printDocument;
try
{
printPreviewDialog.ShowDialog();
}
catch(Exception excep)
{
MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
打印就可以直接调用printDocument的Print()方法因为用户可能在打印之前还要再更改打印设置所以
在这里再次显示打印设置对话框
protected void FileMenuItem_Print_Click(object sender,EventArgs e)
{
PrintDialog printDialog = new PrintDialog();
printDialog.Document = printDocument;
lineReader = new StringReader(textBox.Text);
if (printDialog.ShowDialog() == DialogResult.OK)
{
try
{
printDocument.Print();
}
catch(Exception excep)
{
MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
printDocument.PrintController.OnEndPrint(printDocument,new PrintEventArgs());
}
}
}
总结打印的过程是
1 在应用程序窗体初始化时构造PrintDocument对象添加 printDocument 的 PrintPage 方法
2 实现PrintPage方法4 在用户的单击事件中调用 printDocument 的 Print方法实现打印功能
在这中间可能要用到PrintDialog PrintPreviewDialog PageSetupDialog 设置和查看打印效
怎样用热敏打印机把vb.net窗体内文本框内容打印出来用PrintForm控件,在Visual Basic PowerPacks项目列表中vb2008 SP1以后版本就有了,下面是代码
Imports System.Drawing.Printing
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'先设置打印页面的页边距
With Me.PrintForm1
Dim myMargins As New Margins'页边距设置信息是存放在这个Margins类型的对象中的
With myMargins'分别设置上下左右边距,
.Left = 12
.Right = 12
.Top = 12
.Bottom = 12
End With
.PrinterSettings.DefaultPageSettings.Margins = myMargins'把myMargins对象赋给PrintForm1的设置属性
End With
Me.Button1.Visible = False'这个是在打印的时候隐藏打印按钮
Me.PrintForm1.Form = Me'设置要打印的窗体
Me.PrintForm1.Print()'调用打印窗体方法
Me.Button1.Visible = True'再把隐藏的打印按钮显示出来
End Sub
VB.NET打印编程问题,打印机为激光打印机 。打印做得不多,以前做套打时发现,每台打印机定位都不一样,于是每台机子都加了个偏移设置
我的做法在白纸上打上一标尺,和一个上下边距为2CM的交叉点 , 然后用标尺量这2CM的偏移,设置完后,在这台打印机打印时,就给纸张加个偏移量,打印就正常了 。可能你的原因和我一样 。
推荐阅读
- 钉钉课堂直播怎么发起连麦,钉钉直播课连麦的使用方法
- 如何做好新媒体推广经理,如何通过新媒体运营推广
- erp系统如何上架产品,erp系统怎么点发货
- xp系统netframework,xp系统纯净版
- 电信线怎么连接路由器图片,电信怎么接路由器
- linux命令mv.,linux命令mv和cp的区别
- 怎么打开手机语音播报,智能手机怎么打开语音播报
- php过滤重复数据处理 php过滤函数
- 史上最美解谜游戏,解谜游戏排行