這是為了在一個非常簡單的和短暫的Visual Basic.NET中 。 容易迅速了解,它的工作原理和短(用很少的代碼),所以沒有什麼妨礙了我們時,把我們的個人接觸。 程序員是非常有創意,我花了很多次,我遇到非常複雜,充滿了代碼的例子,我有解剖和分析,以了解其運作的部分。 所以我盡量把我的崗位在具體的例子,操作簡單,只是複製,粘貼和使配置mimina控制。
我們需要:
一個WinForm(Form1)中,控制的PrintDocument(PrintDocument1),1的PrintDialog(PrintDialog1),一個TextBox(TextBox1的)和一個按鈕(Button1)。 應該類似於這個圖片的形式:

複製下面的代碼在Button1的Click事件
然後,如果PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings PrintDocument1.Print() 結束如果
它打開對話框,選擇打印機,然後通過整個配置通過PrintDocument對象選擇,然後告訴你打印。 什麼觸發事件的PrintPage的PrintDocument。
現在雙重對象PrintDocument1,單擊並粘貼以下代碼
e.Graphics.DrawString(TextBox1.Text,新字體(“宋體”,18,FontStyle.Bold)Brushes.Black,10,10) 對於我作為整數= 1至10 e.Graphics.DrawString(“示例行:”我新字體(“宋體”,10,FontStyle.Bold)Brushes.Black,10,20 +(I * 30)) 未來
當您運行此打印頁,並使用不同的樣品和furnte和大小十行的標題框的內容。 結果將類似於下面的圖像:

控件的更多信息...
PrintDialog元件(Windows窗體)
Windows窗體PrintDialog組件是一個預先配置的對話框,用於選擇打印機,選擇打印,並確定哪些網頁與在基於Windows的應用程序的打印設置。 使用它作為一個簡單的解決方案,選擇打印機設置或打印機,而不是設立一個對話框本身。 您可以允許用戶打印其文件的各個部分:所有打印,打印的頁面指定的範圍內,或打印選擇。 依靠標準的Windows對話框,創建應用程序,其基本功能是立即為用戶所熟悉。
PrintDocument組件(Windows窗體)
Windows窗體PrintDocument組件用於設置屬性描述打印,然後打印在基於Windows的應用程序的文件。
以及我走了一圈後,沒有人回答,因為它打印多個頁面,我給自己的任務,以調查其他網站,我發現了一個代碼,但這種複雜介質enterlo容易因此modique的例子找到這裡,所以有我的兩分錢,我希望,我明白okas
“這個變量公佈
昏暗線作為整數= 1
私人小組PrintDocument1_PrintPage(BYVAL發件人作為System.Object的,BYVAL e由於System.Drawing.Printing.PrintPageEventArgs)處理PrintDocument1.PrintPage
“我們定義的字體類型和更多的
作為新字體暗淡的來源(“宋體”,10)
“我們定義該位置開始打印
昏暗的位置作為整數= 20
“行數打印
lineaimpresa點心作為整數= 0
“變時看到你的頁面的飛躍
暗淡布爾=假salto_pagina
“變量指定每張紙上打印多少行
NroLineasPagina點心作為整數= 70
對於i = 150行
e.Graphics.DrawString(“示例行:”行,來源,Brushes.Black,10,位置)
位置+ = 15
線+ = 1
lineaimpresa + = 1
然後,如果lineaimpresa = NroLineasPagina
salto_pagina = TRUE
退出對於
結束如果
未來
如果salto_pagina = True,則
e.HasMorePages = TRUE
其他
e.HasMorePages = FALSE
結束如果
END SUB
我希望,並為他們和他們的需要,以適應okas輪空
感謝您的幫助。
的東西就是東西,讓許多網頁,如agredicimiento援助,它是做什麼
我可以打印
進口System.IO
公共類frmDesCaratula
StringToPrint作為字符串私人
私人,小組frmDesCaratula_Load(發送者為對象,作為System.EventArgsé)把手MyBase.Load
Me.MdiParent = mdiPrincipal
END SUB
私人小組中button1_Click(發送者為對象,作為System.EventArgsé)把手Button1.Click
然後,如果ptdConfiguracion.ShowDialog = Windows.Forms.DialogResult.OK
ptdDocumento.PrinterSettings = ptdConfiguracion.PrinterSettings
ptdDocumento.Print()
結束如果
END SUB
私人,小組PrintDocument1_PrintPage(發送者為對象,為System.Drawing.Printing.PrintPageEventArgsé)處理ptdDocumento.PrintPage
e.Graphics.DrawString(TextBox1.Text,新字體(“宋體”,18,FontStyle.Bold)Brushes.Black,10,10)
對於我作為整數= 1至10
e.Graphics.DrawString(“示例行:”我新字體(“宋體”,10,FontStyle.Bold)Brushes.Black,10,20 +(I * 30))
未來
-----所有打印文檔
“DIM為整數= 0 charactersOnPage
“DIM為整數= 0 linesPerPage
設置數量charactersOnPage的價值到字符
“將適合的stringToPrint在頁面的邊界。
“E.Graphics.MeasureString(stringToPrint,Me.Font,e.MarginBounds.Size _
“StringFormat.GenericTypographic,charactersOnPage,linesPerPage)
“內頁的邊界繪製字符串
“E.Graphics.DrawString(stringToPrint,Me.Font,Brushes.Black _
E.MarginBounds,StringFormat.GenericTypographic的)
“刪除已打印的字符串的一部分。
“StringToPrint = stringToPrint.Substring(charactersOnPage)
“檢查,看看是否要打印多個頁面。
“E.HasMorePages = stringToPrint.Length> 0
END SUB
私人小組Button2_Click(發送者為對象,作為System.EventArgsé)處理Button2.Click
用readfile()
ptdDocumento.Print()
END SUB
ReadFile的()
DocName暗淡作為字符串=“index.html的”
作為字符串= docPath中暗淡的“G:\”
ptdDocumento.DocumentName = docName
的暗淡流作為新的FILESTREAM(docPath中+ docName,FileMode.Open)
嘗試
昏暗的讀者作為新的StreamReader(流)
嘗試
reader.ReadToEnd stringToPrint =()
終於
reader.Dispose()
最終的結局
終於
stream.Dispose()
最終的結局
END SUB
私人,小組Button3_Click(發送者為對象,作為System.EventArgsé)處理Button3.Click
ppdVista.Document = ptdDocumento
ppdVista.ShowDialog()
END SUB
末級
這為我工作,你需要一個texbox:TextBox1的
PrintDocument的:ptdDocumento
PrintPreviewControl:ppdVista
的PrintDialog:ptdConfiguracion
有趣的文章,但奇蹟,我們應該如何行事更專業的環境,如印刷門票,收據,發票或控制檢查,如果打印機處於聯機的印刷紙或impreison MIDO已經停止了一些錯誤。
保存hacerca你提到,因為我已經試過很多次失敗這並沒有發現任何東西來解決這個問題。
的問候。
ATTE。 凱文·拉米雷斯
早上好,想知道如果你有任何教程,讓您可以打印一個DataGridView的內容,因為我在互聯網上找到的一切是多的代碼,並能夠運行什麼誒!
我將不勝感激,如果你有關於它的信息。
問候
親愛的,我已經超過10年在微軟的編程,通過了VB6,現在我用VS2010的。
我還沒有發現任何工具,更靈活的PrintDocument報導,還有什麼他不能做。
如果您有任何疑問,請與我聯繫。
問候
曼努埃爾·早上好,我會花聯繫人的電子郵件線,所以給我一隻手?
非常感謝
我離開我
francocsanchez@gmail.com
這是非常必要的:T
曼努埃爾agredece你多少facilitaras我的答案,我會命令,如電子郵件或任何接觸,我半年左右,因為我有這個。
和我想我可以使用一些專業的指導。
我離開我的郵件。
kevinramirez92@hotmail.com
的問候。
ATTE。 凱文·拉米雷斯。
曼努埃爾我需要幫助,如何打印一個DataGridView的內容。
你能給我一隻手?
francocsanchez@gmail.com
的問候。
Q EST是我的郵件,有時只需要幫助自動打印在Visual Basic 2010。
Luis_Cepedaf@hotmail.com
一些特定的庫加載在一個Excel文件和尺寸文本框的值設置根據的immpresora的。
謝謝
對不起,我迫切需要幫助,會發生什麼,我想知道我怎麼能打印我有一個形象(大於小組在處理滾動條ķ)和幾個TextBox的內容面板D ......所有的PrintDocument。對不起,我迫切需要幫助,會發生什麼,我想知道我怎麼能打印我有一個形象(大於小組在處理滾動條ķ)和幾個TextBox的內容面板D ......所有的PrintDocument。對不起,我迫切需要幫助,會發生什麼,我想知道我怎麼能打印我有一個形象(大於小組在處理滾動條ķ)和幾個TextBox的內容面板D ......所有的PrintDocument。
非常感謝你,第一個簡單的例子,
謝謝。 清晰和嚴謹。 大。 現在,我必須做必要的循環和過濾器,打印數據庫中的記錄,但很清楚如何暴露你已經找到其他地方很昏暗暴露。 你要成為一名教師的偉大。
我服你的例子,如果我有一個問題,正如我的alprograma cirle打印到合適的位置我的電子郵件是yack7raro@gmail.com如果poersona潟湖稱為