有個PrintDocument控件,可以實現(xiàn)打印。。。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)興賓免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
MSDN原話:
使用 PrintDocument 組件
涉及 PrintDocument 組件的兩種主要情況是:
簡單的打印作業(yè),如打印單個文本文件。在這種情況下,應(yīng)將 PrintDocument 組件添加到 Windows 窗體,然后在 PrintPage 事件處理程序中添加打印文件的編程邏輯。 該編程邏輯應(yīng)以使用 Print 方法打印文檔結(jié)束。
此方法向打印機(jī)發(fā)送一個 Graphics 對象,該對象包含在 PrintPageEventArgs 類的 Graphics 屬性中。
有關(guān)如何使用 PrintDocument 組件打印文本文檔的示例,請參見
如何:打印 Windows 窗體中的多頁文本文件。
更為復(fù)雜的打印作業(yè),如想要重新使用已編寫的打印邏輯的情況。
在這種情況下,應(yīng)從 PrintDocument 組件派生一個新組件,并重寫
(請參見 Visual Basic 的 重寫或 C# 的 重寫) PrintPage 事件。
將 PrintDocument 組件添加到窗體后,它出現(xiàn)在 Windows 窗體設(shè)計器底部的欄中
使用 PrintDocument 控件的 Print() 方法可以打印指定對象中的內(nèi)容,參考代碼如下:
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
我?guī)湍惆炎詈笠徊糠值恼Z句順序調(diào)換一下。你試一試
sub button1_click() '---執(zhí)行打印
Dim pd As PrintDocument = New PrintDocument
pd.PrinterSettings = PrintDialog1.PrinterSettings
If _PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
for i=0 to 1 '這樣可以兩次截圖
CaptureScreen() '--執(zhí)行前面自定義函數(shù)截圖
AddHandler pd.PrintPage, AddressOf Document_PrintPage
pd.Print()
Threading.Thread.sleep(100) ‘ 再加上一個間隔
next
end sub
別的地方轉(zhuǎn)來的!~ 不過我們以前做的時候 都是在打印機(jī)里增加一種打印紙 然后就可以選了!~
一下轉(zhuǎn)載內(nèi)容!~~~
水晶報表-強(qiáng)大而成熟,但是多少男兒漢敗倒在他的自定義紙張設(shè)置上。
1:水晶報表是紙形打印。所以自定義紙張類打印肯定要在電腦上增加對應(yīng)的紙張才行(手動加還是代碼加這個不管)
2:紙張分3種系統(tǒng)內(nèi)建(不可更改),自定義,打印機(jī)自帶。很遺憾的是水晶只認(rèn)系統(tǒng)內(nèi)建的。
3:打印機(jī)一般分2種。1普通噴墨的A4,2有聯(lián)單的針式
4:注意水晶報表不是所見所得的,預(yù)覽的紙張是什么不一定打印的就是什么紙張(受3方影響。打印機(jī)、報表內(nèi)設(shè)置、PAPERSIZE 屬性,三者之間關(guān)系不詳)。
5:對于第一種A4紙張。沒什么好說的系統(tǒng)內(nèi)建紙型。水晶報表認(rèn)。直接指定就行
6:對于第二種聯(lián)單的自定義型一般專機(jī)專用,當(dāng)然是建好紙張讓打印機(jī)默認(rèn)自己建的紙張為默認(rèn)首選了。
7:然后設(shè)置水晶報表使用打印機(jī)默認(rèn)的紙張PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize
以上能保證專機(jī)專紙的任何打印。:要注意第4點。如果你是自定義紙而且要預(yù)覽要保障預(yù)覽和打印都用指定的紙張,那么預(yù)覽時你得指定PaperSize=你自定義紙張的索引號。打印的時候又改成CrystalDecisions.Shared.PaperSize.DefaultPaperSize
8:如果你想一個打印機(jī)多個自定義紙張那么用API吧動態(tài)改變打印機(jī)的默認(rèn)紙張,根據(jù)以上拐2彎就能實現(xiàn)了遺憾的是網(wǎng)絡(luò)打印機(jī)的話就沒折了。o(︶︿︶)o 唉
報表打印應(yīng)該也能實現(xiàn),但是我覺得你這個用文本打印更簡單,將數(shù)據(jù)輸出到txt文件,結(jié)果用RichTextBox顯示,但是需要簡單的排版,調(diào)用打印機(jī)打印RichTextBox即可的
排版用tab()、space()、vbcrlf或PrintLine(1)換行,代碼類似如下樣式
PrintLine(1, TAB(60), "準(zhǔn)考證" )
PrintLine(1)
PrintLine(1, "姓名:" xingming Space(3) "準(zhǔn)考證號:" cel(1) Space(3) cel(2) Space(3) cel(3))
但是TAB()排版比較規(guī)整
打印代碼類似如下:
PrintDialog1.Document = PrintDocument1
PrintDocument1.DocumentName = "準(zhǔn)考證"
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 '頁面設(shè)置
If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
If PrintDialog1.PrinterSettings.IsValid = True Then
PrintDocument1.Print()
MsgBox("打印完成!" vbCrLf "Print completed!", , "Print hint(打印提示)")
Else
MsgBox("打印失?。〈蛴C(jī)不可用。" vbCrLf "Print failed! The printer is not valid.", , "Print hint(打印提示)")
End If
Else
Exit Sub
End If
End If
分享題目:vb.net自定義打印 vb如何實現(xiàn)打印
網(wǎng)頁路徑:http://m.rwnh.cn/article8/doopgip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、微信小程序、小程序開發(fā)、面包屑導(dǎo)航、網(wǎng)頁設(shè)計公司、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)