真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net打印機狀態(tài) vb打印功能

VB 返回打印機狀態(tài)

VB 通過MSComm控件取得打印機的狀態(tài):正常、缺紙、卡紙等:

創(chuàng)新互聯(lián)專注于網(wǎng)站設計、網(wǎng)站建設、網(wǎng)頁設計、網(wǎng)站制作、網(wǎng)站開發(fā)。公司秉持“客戶至上,用心服務”的宗旨,從客戶的利益和觀點出發(fā),讓客戶在網(wǎng)絡營銷中找到自己的駐足之地。尊重和關懷每一位客戶,用嚴謹?shù)膽B(tài)度對待客戶,用專業(yè)的服務創(chuàng)造價值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

此方法使用VB中的串口通信控件MSComm給打印機發(fā)送指令,然后打印機自動返回其狀態(tài)值,根據(jù)不同的返回值就可以判斷打印機是正常、缺紙、卡紙等狀態(tài)。其中的指令適用于Star SP500系列。注意在使用此方法時不要安裝打印機的驅(qū)動,或者在驅(qū)動中設置的串口端口與此程序中的要不能相同,否則程序會提示參數(shù)設置錯誤,其實就是端口已經(jīng)被占用的原因。以下是程序代碼:

Option Explicit

Dim Status As String

Dim StatusString As String

Dim TimeUp As Boolean

Private Sub Command1_Click()Sub Command1_Click()Sub Command1_Click()Sub Command1_Click()

On Error Resume Next

Dim i As Long

Status = "" '狀態(tài)返回值

StatusString = ""

MSComm1.CommPort = 1 'COM端口號:如果是COM1則為1,以此類推;

MSComm1.Settings = "38400,N,8,1" '參數(shù)設置:波特率,奇偶校驗,數(shù)據(jù)位,停止位;

MSComm1.InputLen = 0

MSComm1.PortOpen = True '打開端口

'給Star打印機發(fā)送“ENQ”指令或“ESC ACK SOH”指令,打印機自動返回狀態(tài)值

MSComm1.Output = Chr$(5) + Chr$(HA) + Chr$(0)

'MSComm1.Output = Chr$(H1B) + Chr$(H6) + Chr$(H1)

' Poll for 8 byte status

Do While Len(Status) 8

DoEvents

Status = MSComm1.Input

Loop

For i = 1 To 9

StatusString = StatusString Right("00" " " Hex(Asc(Mid$(Status, i, 1))), 2)

'StatusString = StatusString Hex(Asc(Mid$(Status, i, 1))) " "

Next i

Text1.Text = StatusString

MSComm1.PortOpen = False

End Sub

Private Sub Form_Unload()Sub Form_Unload()Sub Form_Unload()Sub Form_Unload(Cancel As Integer)

Close

End Sub

Private Sub Wait()Sub Wait()Sub Wait()Sub Wait(Interval As Long)

Timer1.Interval = Interval

Timer1.Enabled = True

TimeUp = False

Do

DoEvents

Loop While Not TimeUp

End Sub

Private Sub Timer1_Timer()Sub Timer1_Timer()Sub Timer1_Timer()Sub Timer1_Timer()

Timer1.Interval = 0

Timer1.Enabled = False

TimeUp = True

End Sub

----------------------------------------------------------------------

2號代碼:

Option Explicit

Declare Function MapPhysToLin Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysSize As Long, ByRef PhysMemHandle) As Long

Declare Function UnmapPhysicalMemory Lib "WinIo.dll" (ByVal PhysMemHandle, ByVal LinAddr) As Boolean

Declare Function GetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByRef PhysVal As Long) As Boolean

Declare Function SetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysVal As Long) As Boolean

Declare Function GetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean

Declare Function SetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean

Declare Function InitializeWinIo Lib "WinIo.dll" () As Boolean

Declare Function ShutdownWinIo Lib "WinIo.dll" () As Boolean

Declare Function InstallWinIoDriver Lib "WinIo.dll" (ByVal DriverPath As String, ByVal Mode As Integer) As Boolean

Declare Function RemoveWinIoDriver Lib "WinIo.dll" () As Boolean

Public IOStat As Boolean

'************************************************************

'* 函數(shù)名稱:GetPrnStat *

'* 功能:根據(jù)打印機的內(nèi)存地址,檢測打印機的目前工作狀態(tài) *

'* 參數(shù):lptport: 要檢測的打印機的端口號,如LPT1: *

'* 返回值:打印機的工作狀態(tài)值。 *

'* 0:正常 1:缺紙 2:無聯(lián)系 3:異常(其他錯誤) *

'* 調(diào)用:本模塊中的API函數(shù)InitializeWinIo和GetPortVal *

'* 備注:檢測的內(nèi)存地址,是在打印端口所在的基地址上加1; *

'* 作者:谷霖 *

'* LPT1口的基地址為H378;LPT2口的基地址為H278 *

'************************************************************

Public Function GetPrnStat(ByVal LptPort As String) As Long

Dim PrnAddr As Long

On Error Resume Next

If IOStat = False Then IOStat = InitializeWinIo()

If IOStat Then

If UCase(LptPort) = "LPT1:" Then

PrnAddr = H379

ElseIf UCase(LptPort) = "LPT2:" Then

PrnAddr = H279

End If

GetPortVal PrnAddr, GetPrnStat, 1

Else

GetPrnStat = HFF

End If

GetPrnStat = GetPrnStat And HF8

Select Case GetPrnStat

Case H68, H58, H70

GetPrnStat = 1 '缺紙

Case H78

GetPrnStat = 2 '無聯(lián)系

Case HD8

GetPrnStat = 0 '正常

Case Else

GetPrnStat = 3 '異常

End Select

End Function

'*************************************************************************

'* 函數(shù)功能:檢查打印機的狀態(tài)主函數(shù) *

'* 輸入?yún)?shù):PrintName 要檢測的打印機名稱 *

'* 輸出參數(shù):checkprinterr *

'* 檢查結果(0:正常 1:打印機缺紙 2:打印機無聯(lián)系 3:打印機異常 *

'* 4:沒有安裝打印機 5:打印機名稱錯誤) *

'*************************************************************************

Public Function CheckPrintErr(ByVal PrintName As String) As Long

'CheckPrintErr參數(shù)說明

'0:沒有錯誤

'1:打印機無聯(lián)系

'2:打印機缺紙

'3:沒有安裝打印機

Dim printjieguo As Long

Dim i As Long, k As Long

On Error GoTo ErrCheckPrint

If Printers.Count = 0 Then

CheckPrintErr = 4 '沒有安裝打印機

Exit Function

End If

'檢測發(fā)票打印機是否可以聯(lián)系

For i = 0 To Printers.Count - 1

If (Printers(i).DeviceName = PrintName) Then

k = k + 1

Exit For

End If

Next

If k = 0 Then '打印機名稱錯誤

CheckPrintErr = 5

Exit Function

End If

Set Printer = Printers(i)

CheckPrintErr = GetPrnStat(Printer.Port)

Exit Function

ErrCheckPrint:

CheckPrintErr = 3

Exit Function

End Function

----------------------------------------------------------------------

3號答案:

編寫VB打印控制程序的幾點心得

Visual Basic(VB)給用戶提供了可視化編程環(huán)境,因其簡單易學、功能強大而得到了廣泛的應用。VB提供了兩種實現(xiàn)打印的方法。一般在對打印質(zhì)量要求不高的場合,或者是編程項目的早期開發(fā)過程中,可以直接使用VB窗體的Printform方法實現(xiàn)打印。用這種方法實現(xiàn)打印具有編程簡單、易用并且功能強大的優(yōu)點,它只需要通過一行代碼,幾乎能打印所有內(nèi)容。實現(xiàn)的方法就是:首先將要打印的內(nèi)容在屏幕上顯示出來,然后開發(fā)人員只要為窗體對象激活 PrintForm ,窗體則自動將要打印的內(nèi)容發(fā)送到Printer對象上,其語法格式如下:[窗體.]PrintForm 。如果窗體中包括圖形,那么打印前應先置窗體的AutoRedraw屬性為真。這種方法雖然簡單,但是它卻存在著內(nèi)存消耗大、打印粗糙、速度慢等缺陷,尤其對于帶有滾動條的圖像,這種方法只能打印當前可視的區(qū)域 。在實際應用中經(jīng)常會遇到對打印質(zhì)量要求很高的場合,例如打印音樂五線譜,對打印的美觀、清晰度以及音符符頭的位置都有很嚴格的要求,這種應用場合若采用VB提供的另一種基于Printer對象的打印方法則可以獲得高分辨率的打印,得到很高的打印質(zhì)量。在實際應用中,也可以根據(jù)實際應用情況將上述兩種方法結合起來使用,即:前期工作使用PrintForm 簡單的打印方法將窗體的布局定下來,后期再使用基于Printer對象的打印方法實現(xiàn)最終的打印工作。

2.高分辨率打印程序開發(fā)心得

⑴ Printer對象

VB的打印可以使用Printer對象。Printer對象是一個獨立于打印機設備的封裝,它可以代表不同的打印機,初始時,Printer對象為系統(tǒng)缺省的打印機,也可以使用下列語句:Set Printer=Printers(2) (其中2代表Printers集中的第二個打印機)對打印機進行指定。

Printer對象具備例如:ColorMode、Copies、Duplex、Printquality等控制打印機特征的屬性, 提供了Newpage、EndDoc、KillDoc等控制打印過程的方法,以及大多數(shù)由窗體和圖片框控件提供的圖形屬性和方法如:Currentx、Currenty、Textwidth、Textheight、Print、Pset、Line、PaintPicture和Circle等方法,它還擁有Font的所有屬性。實現(xiàn)高分辨率的打印就是通過控制Printer對象的上述屬性和方法完成的。

⑵ 直接利用Windows公用標準對話框CommonDialog控件【打印】VB為用戶提供了Windows公用標準對話框CommonDialog控件:【打開】、【文件另存為】、【顏色】、【字體】、【打印】。CommonDialog控件在Visual Basic 和Microsoft Windows動態(tài)連接庫Commdlg.dll例程之間提供了接口。利用公用標準對話框【打印】開發(fā)VB的打印程序,將大大縮短程序的開發(fā)周期。應用程序中要使用公用對話框,必須首先在工具箱中添加公用對話框控件。該動作通過激活【部件】對話框,選中Microsoft Common Dialog Control6.0, 單擊【確定】即可。然后再將公用控件添加到窗體上并設置相應屬性,該控件具有的屬性有Color、Font、Print、Help等。

VB提供mnuFilePrint_Click()過程供用戶添加開發(fā)的打印程序代碼。

⑶ Printer對象控制打印的基本過程

利用Printer對象開發(fā)的打印程序主要靠其提供的——NewPage (打印新的一頁,CurrentX、CurrentY置為新頁的左上角,可完成多頁功能。)、EndDoc (將打印任務加入打印機隊列)、KillDoc (取消打印任務)控制打印過程的。一般情況下,打印程序完成多頁打印時會多次執(zhí)行NewPage,結束時執(zhí)行一次EndDoc將打印任務加入打印機隊列。如果你在NewPage后,立即使用EndDoc,VB則不會打印額外的空白頁。如果希望顯示空白頁,則可在新的一頁上只使用Printer.Print “ “打印空字符即可。

為了通過Printer對象實現(xiàn)文本和圖形的打印,獲得最好的打印質(zhì)量,還需要對VB控制打印機的多種屬性有更深入的理解,例如打印機的坐標體系向屏幕坐標體系的轉(zhuǎn)換、打印機字體尺寸的確定等。下面給出了打印程序的主框架:

Private Sub mnuFilePrint_Click()

On Error Resume Next

If ActiveForm Is Nothing Then Exit Sub

With dlgCommonDialog ‘打印機公用對話框

.DialogTitle = "打印"

.CancelError = True

.Flags = 1

Printer.FontSize = dlgCommonDialog.FontSize

‘將打印機公用對話框設置的字體大小傳遞給打印機

.ShowPrinter ‘ 在屏幕上顯示【打印】公用對話框

If Err MSComDlg.cdlCancel Then

Printer.FontTransparent = False ‘初始化打印的字體為不透明

SetPrinterScale Myform ‘匹配打印機的縮放屬性與窗體的屬性

PrintAnywhere Printer ‘可放置用戶編寫的打印對象參數(shù)化例程

‘實現(xiàn)字符和圖形的顯示

Printer.NewPage ‘打印機坐標初始化

PrintAnywhere Printer ‘打印另一頁的內(nèi)容

Printer.NewPage ‘打印機坐標初始化

Printer.EndDoc ‘將該任務加入打印機任務隊列

‘ 不打印空白頁

Printer.KillDoc ‘取消當前的打印任務

End If

End With

End Sub

⑷ 參數(shù)化繪圖程序

用VB開發(fā)應用程序時,如果使用參數(shù)化繪圖例程進行屏幕顯示程序的開發(fā),則在開發(fā)打印程序時,就不需再另行開發(fā)代碼,從而避免了大量的重復勞動,有效地縮短了程序的開發(fā)周期。參數(shù)化繪圖例程就是:在開發(fā)例程時,為每一個例行程序提供一個OBJECT類型的參數(shù),調(diào)用程序通過向例程的OBJECT類型參數(shù)分別傳遞窗體、Printer對象,就可分別完成屏幕顯示與打印機輸出。 見如下示例:

Sub PrintAnywhere(Dest As Object)

Dest.Print “HELLO!”

Dest Is Printer Then

Printer.EndDoc

End If

End Sub

要完成屏幕上的輸出,調(diào)用 PrintAnywhere Myform 即可,而調(diào)用 PrintAnywhere Printer則完成在打印機上輸出。

⑸ 屬性匹配與窗體縮放

因為控制打印機實際繪圖區(qū)域大小的屬性Height和Width,由目前正在使用的紙張決定,而且可打印的區(qū)域與紙張邊緣有一定距離。因而為了獲得正確的打印輸出結果,不能簡單地將Printer對象直接傳遞給繪圖例行程序,還必須要解決打印機的縮放屬性與顯示窗體屬性相匹配的問題。即:保證使窗體中的打印內(nèi)容以正確的大小顯示,并居于可打印區(qū)域的中間。實際上實現(xiàn)的是打印機的坐標體系向屏幕坐標體系的轉(zhuǎn)換。具體過程是:使用打印機的ScaleX和ScaleY方法,獲取以twip為單位的打印機尺寸,再利用窗體的ScaleX和ScaleY方法將這些尺寸轉(zhuǎn)換為窗體中的坐標系統(tǒng),從而實現(xiàn)以窗體的坐標系統(tǒng)提供打印機可打印區(qū)域大小的目的。然后,用這些尺寸作為打印機中新的ScaleWidth和ScaleHeight,即可實現(xiàn)屬性匹配。

但是,我們在打印時,經(jīng)常會遇到這樣的場合——在不改變窗體形狀的情況下,需要擴大或縮小窗體的大小。要完成這樣的工作,不僅需要完成屬性匹配,還要確定對象被縮放的系數(shù)。程序如下:

Private Sub SetPrinterScale(obj As Object)

Dim pwid As Single, phgt As Single, xmid As Single, ymid As Single

Dim owid As Single, ohgt As Single

owid = obj.ScaleX(obj.ScaleWidth, obj.ScaleMode, vbTwips)

ohgt = obj.ScaleY(obj.ScaleHeight, obj.ScaleMode, vbTwips)

‘獲取窗體以Twips表示的尺寸

pwid = Printer.ScaleX(Printer.ScaleWidth, Printer.ScaleMode, vbTwips)

phgt = Printer.ScaleY(Printer.ScaleHeight, Printer.ScaleMode, vbTwips)

‘獲取打印機以Twips表示的尺寸

If (ohgt / owid phgt / pwid) Then

s = phgt / ohgt

Else

s = pwid / owid

End If ‘計算縮放因子

pwid = obj.ScaleX(pwid, vbTwips, obj.ScaleMode) / s

phgt = obj.ScaleY(phgt, vbTwips, obj.ScaleMode) / s

‘將打印機的尺寸轉(zhuǎn)換成obj的坐標系統(tǒng) / 縮放因子

x_mid = obj.ScaleLeft + obj.ScaleWidth / 2

y_mid = obj.ScaleTop + obj.ScaleHeight / 2‘設置打印區(qū)域的中心點坐標

Printer.Scale (x_mid - pwid / 2, y_mid - phgt / 2)-(x_mid + pwid / 2, y_mid + phgt / 2)

‘ 設置打印機中新的ScaleWidth和ScaleHeight

End Sub

⑹ 坐標定位

窗體、圖片框控件以及Printer對象提供的TextWidth和 TextHeight方法在文本定位的應用方面很有用。TextWidth、 TextHeight分別以對象當前的刻度單位返回字符串的寬度和高度。但是必須注意很多字體中其字符寬度并不全部相同,所以不能簡單地將單個字符的寬度乘以字符數(shù)來獲得字符串的寬度。對那些沒有TextWidth和TextHeight的控件可通過設置父窗體的Font屬性,使其與該控件的屬性相匹配,再利用父窗體的TextWidth和TextHeight獲得它的字符串的寬度和高度。

但是,我們在完成屏幕顯示程序調(diào)試后,在進行打印輸出時卻出現(xiàn)了屏幕顯示與打印結果的不一致性的現(xiàn)象,表現(xiàn)在所打印的字體之間坐標關系與屏幕顯示不一樣,例如:屏幕顯示上的兩個字符不重疊,而打印出的字符卻出現(xiàn)相互重疊的現(xiàn)象。經(jīng)調(diào)試發(fā)現(xiàn),問題出現(xiàn)在字體尺寸的確定上。 程序中,屏幕上顯示的字符坐標是通過對象的TextWidth和TextHeight方法計算得來的,它直接受到字體尺寸大小的影響。VB向用戶提供的字體是在用戶需要的打印機點的范圍內(nèi),如果你需要的字體大小為73點, 則打印出的實際字體大小為72.75。然而窗體、圖片框控件的Fontsize只能是整數(shù),例如它不能將字體的大小定為72.75,實際上這就造成了屏幕上顯示字體與實際打印字體大小之間產(chǎn)生了誤差。 我們采用如下方法來解決該問題,就是在計算字體大小時,根據(jù)計算出來的字體尺寸,確定它存在的范圍,然后再將它定位到VB提供的幾種固定大小的字體上,而不是隨意指定。當然,也可以有其它的解決辦法。例如:字體大小選取偶數(shù)等。 由于篇幅所限,這里不再作介紹。

vb.net 打印問題

可以將打印機默認打印設置改為黑白打印,如果打印對象是RGB配色,打印機驅(qū)動轉(zhuǎn)換為CMYK顏色時,黑色都是由彩色墨水組成的

2.可以試一下圖片從一個標準灰度圖片格式化而來,這樣圖片自身只有黑白色,也許可以

VB.NET打印編程問題,打印機為激光打印機。

打印做得不多,以前做套打時發(fā)現(xiàn),每臺打印機定位都不一樣,于是每臺機子都加了個偏移設置

我的做法在白紙上打上一標尺,和一個上下邊距為2CM的交叉點,然后用標尺量這2CM的偏移,設置完后,在這臺打印機打印時,就給紙張加個偏移量,打印就正常了。可能你的原因和我一樣。

另外也想問你一下,你這個條碼是用什么打的。早先,我用立象的條碼打印機打不干膠,很簡單,激光打沒用過,可能下次我也要用條碼打印,我也用VB.net。求教.

VB.NET或C#如何調(diào)用某個打印機(例如"Microsoft XPS Document Writer")的“打印首選項”?

實現(xiàn)打印功能的核心是PrintDocument類這個類屬于System.Drawing.Printing名字空間這個類封裝了當前的打印設置頁面設置以及所

有的與打印有關的事件和方法

這個類包括以下幾個屬性 事件 和方法

1、PrinterSettings 屬性

存放打印機的設置信息這個屬性不需要程序員設置因為它是由打印對話框獲取的

2、PrintCountroller 屬性

控制打印過程

3、DefaultPageSettings 屬性

存放頁面設置信息 打印紙大小方向等也不需要程序員設置因為它是由頁面設置對話框獲取的

4、DocumentName 屬性

指定文檔名稱,出現(xiàn)在打印機狀態(tài)窗口中

1。 BeginPrint事件

在打印之前發(fā)出

2. PrintPage事件

每打印一頁是發(fā)出,事件接受一個PrintPageEventArgs參數(shù)該參數(shù)封裝了打印相關的信息

PrintPageEventArgs參數(shù)有很多重要的屬性

1 Cancel 取消打印

2 Graphics 頁面的繪圖對象

3 HasMorePages 是否還有要打印的頁面

Print 方法 該方法沒有參數(shù) 調(diào)用它將按照當前設置開始打印

若實現(xiàn)打印功能首先構造PrintDocument對象添加打印事件

PrintDocument printDocument;

private void InitializeComponent()

{

...

printDocument=new PrintDocument();

printDocument.PrintPage += new PrintPageEventHandler (this.printDocument_PrintPage);

...

}

實現(xiàn)打印事件功能

打印和繪圖類似都是調(diào)用Graphics 類的方法進行畫圖 不同的是一個在顯示器上一個在打印紙上并且打印要進行一些復雜的計算

如換行 分頁等。

private void printDocument_PrintPage(object sender,PrintPageEventArgs e)

{

StringReader lineReader = new StringReader(textBox.Text);

Graphics g = e.Graphics; //獲得繪圖對象

float linesPerPage = 0; //頁面的行號

float yPosition = 0; //繪制字符串的縱向位置

int count = 0; //行計數(shù)器

float leftMargin = e.MarginBounds.Left; //左邊距

float topMargin = e.MarginBounds.Top; //上邊距

string line = null; 行字符串

Font printFont = this.textBox.Font; //當前的打印字體

SolidBrush myBrush = new SolidBrush(Color.Black);//刷子

linesPerPage = e.MarginBounds.Height / printFont.GetHeight(g);//每頁可打印的行數(shù)

//逐行的循環(huán)打印一頁

while(count linesPerPage ((line=lineReader.ReadLine()) != null))

{

yPosition = topMargin + (count * printFont.GetHeight(g));

g.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());

count++;

}

如果本頁打印完成而line不為空說明還有沒完成的頁面這將觸發(fā)下一次的打印事件在下一次的打印中l(wèi)ineReader會

自動讀取上次沒有打印完的內(nèi)容因為lineReader是這個打印方法外的類的成員它可以記錄當前讀取的位置

if(line != null)

e.HasMorePages = true;

else

e.HasMorePages = false;

}

打印設置,構造打印對話框 將對話框中設置的Document屬性賦給printDocument這樣會將用戶的設置自動保存到printDocument

的PrinterSettings屬性中

protected void FileMenuItem_PrintSet_Click(object sender,EventArgs e)

{

PrintDialog printDialog = new PrintDialog();

printDialog.Document = printDocument;

printDialog.ShowDialog();

}

頁面設置和打印預覽與打印設置原理相同都是構造對話框?qū)⒂脩粼趯υ捒蛑械脑O置保存到相應的類的屬性中

protected void 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);

}

}

打印就可以直接調(diào)用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 實現(xiàn)PrintPage方法 4 在用戶的單擊事件中調(diào)用 printDocument 的 Print方法實現(xiàn)打印功能

在這中間可能要用到 PrintDialog PrintPreviewDialog PageSetupDialog 設置和查看打印效


文章名稱:vb.net打印機狀態(tài) vb打印功能
網(wǎng)址分享:http://weahome.cn/article/hhhgco.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部