vb.net自定义打印 vb如何实现打印

VS2005如何用VB.NET代码实现打印功能

有个PrintDocument控件,可以实现打印。。。

专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业兴宾免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

MSDN原话:

使用 PrintDocument 组件

涉及 PrintDocument 组件的两种主要情况是:

简单的打印作业,如打印单个文本文件。在这种情况下,应将 PrintDocument 组件添加到 Windows 窗体,然后在 PrintPage 事件处理程序中添加打印文件的编程逻辑。 该编程逻辑应以使用 Print 方法打印文档结束。

此方法向打印机发送一个 Graphics 对象,该对象包含在 PrintPageEventArgs 类的 Graphics 属性中。

有关如何使用 PrintDocument 组件打印文本文档的示例,请参见

如何:打印 Windows 窗体中的多页文本文件。

更为复杂的打印作业,如想要重新使用已编写的打印逻辑的情况。

在这种情况下,应从 PrintDocument 组件派生一个新组件,并重写

(请参见 Visual Basic 的 重写或 C# 的 重写) PrintPage 事件。

将 PrintDocument 组件添加到窗体后,它出现在 Windows 窗体设计器底部的栏中

vb.net如何实现打印DataGridView1里的内容,求源码

使用 PrintDocument 控件的 Print() 方法可以打印指定对象中的内容,参考代码如下:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

PrintDocument1.Print()

End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

Dim bm As New Bitmap(Me.DataGridView1.Width, Me.DataGridView1.Height)

DataGridView1.DrawToBitmap(bm, New Rectangle(0, 0, Me.DataGridView1.Width, Me.DataGridView1.Height))

e.Graphics.DrawImage(bm, 0, 0)

End Sub

vb.net Document_PrintPag 打印

我帮你把最后一部分的语句顺序调换一下。你试一试

sub button1_click() '---执行打印

Dim pd As PrintDocument = New PrintDocument

pd.PrinterSettings = PrintDialog1.PrinterSettings

If _PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then

for i=0 to 1 '这样可以两次截图

CaptureScreen() '--执行前面自定义函数截图

AddHandler pd.PrintPage, AddressOf Document_PrintPage

pd.Print()

Threading.Thread.sleep(100) ‘ 再加上一个间隔

next

end sub

vb.net,水晶报表打印时纸张变为信纸,打印机里面已经自定义好了纸张,用EXCEL,WORD就正常,请高手指点

别的地方转来的!~ 不过我们以前做的时候 都是在打印机里增加一种打印纸 然后就可以选了!~

一下转载内容!~~~

水晶报表-强大而成熟,但是多少男儿汉败倒在他的自定义纸张设置上。

1:水晶报表是纸形打印。所以自定义纸张类打印肯定要在电脑上增加对应的纸张才行(手动加还是代码加这个不管)

2:纸张分3种系统内建(不可更改),自定义,打印机自带。很遗憾的是水晶只认系统内建的。

3:打印机一般分2种。1普通喷墨的A4,2有联单的针式

4:注意水晶报表不是所见所得的,预览的纸张是什么不一定打印的就是什么纸张(受3方影响。打印机、报表内设置、PAPERSIZE 属性,三者之间关系不详)。

5:对于第一种A4纸张。没什么好说的系统内建纸型。水晶报表认。直接指定就行

6:对于第二种联单的自定义型一般专机专用,当然是建好纸张让打印机默认自己建的纸张为默认首选了。

7:然后设置水晶报表使用打印机默认的纸张PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize

以上能保证专机专纸的任何打印。:要注意第4点。如果你是自定义纸而且要预览要保障预览和打印都用指定的纸张,那么预览时你得指定PaperSize=你自定义纸张的索引号。打印的时候又改成CrystalDecisions.Shared.PaperSize.DefaultPaperSize

8:如果你想一个打印机多个自定义纸张那么用API吧动态改变打印机的默认纸张,根据以上拐2弯就能实现了遗憾的是网络打印机的话就没折了。o(︶︿︶)o 唉

高分求解vb.net 打印的问题

报表打印应该也能实现,但是我觉得你这个用文本打印更简单,将数据输出到txt文件,结果用RichTextBox显示,但是需要简单的排版,调用打印机打印RichTextBox即可的

排版用tab()、space()、vbcrlf或PrintLine(1)换行,代码类似如下样式

PrintLine(1, TAB(60), "准考证" )

PrintLine(1)

PrintLine(1, "姓名:" xingming Space(3) "准考证号:" cel(1) Space(3) cel(2) Space(3) cel(3))

但是TAB()排版比较规整

打印代码类似如下:

PrintDialog1.Document = PrintDocument1

PrintDocument1.DocumentName = "准考证"

PrintDialog1.AllowSomePages = False

PrintDialog1.ShowHelp = False

PrintDialog1.ShowNetwork = False

PrintDialog1.AllowSelection = False

PrintDialog1.AllowPrintToFile = False

MySReader = New StringReader(RichTextBox1.Text)

stringToPrint = MySReader.ReadToEnd()

PageSetupDialog1.Document = PrintDocument1

PageSetupDialog1.PageSettings.Margins.Bottom = 50

PageSetupDialog1.PageSettings.Margins.Top = 50

PageSetupDialog1.PageSettings.Margins.Left = 50

PageSetupDialog1.PageSettings.Margins.Right = 50

If PageSetupDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then

PrintDocument1.DefaultPageSettings = PageSetupDialog1.PageSettings '页面设置

If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then

If PrintDialog1.PrinterSettings.IsValid = True Then

PrintDocument1.Print()

MsgBox("打印完成!" vbCrLf "Print completed!", , "Print hint(打印提示)")

Else

MsgBox("打印失败!打印机不可用。" vbCrLf "Print failed! The printer is not valid.", , "Print hint(打印提示)")

End If

Else

Exit Sub

End If

End If


新闻标题:vb.net自定义打印 vb如何实现打印
网页地址:http://azwzsj.com/article/doopgip.html