PDA

View Full Version : مبتدی: چاپ شئ روی فرم



Ehsan_Shia
جمعه 16 مرداد 1394, 18:30 عصر
بسم الله الرحمن الرحیم
با سلام خدمت دوستان
می خواستم ببینم چگونه می توان متن موجود در richtextbox یا TextBox را چاپ کرد؟
در تالار گشتم امّا نتیجه ی مد نظرم پیدا نشد.
لطفاً راهنمایی فرمایید.

pbm_soy
جمعه 16 مرداد 1394, 19:43 عصر
اگر روی خود فرم مستقیم بخواهید چاپ کنید باید از graphics استفاده کنید
یک متغییر از نوع graphics تعریف میکنید و به آن خروجی متد creategraphic فرم یا هر کنترلی که بروی آن میخواهید ترسیم انجام دهید را انتساب میدهید حال میتوانید از طریق متدهای شی graphics میتوانید ترسیمات را انجام دهید که نتیجه مستقیم بروی فرم خواهد بود
Dim g as system.drawing.graphics
G=me.creategraphic()
از این پس میتوانید متدهای g را برای ترسیم فراخوانی کنید که مستقیم بروی فرم ترسیم خواهد کرد

Ehsan_Shia
جمعه 16 مرداد 1394, 19:51 عصر
آقای pbm_soy (http://barnamenevis.org/member.php?20034-pbm_soy) از پاسخ تان ممنون ولی منظورم پرینت از پرینتر بود.

Ehsan_Shia
شنبه 17 مرداد 1394, 11:49 صبح
بسم الله الرحمن الرحیم

با سلام خدمت دوستان الحمدالله فهمیدم، دوستانی که می خواهند بدانند از کد زیر اسفاده کنند.



Imports System
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Windows.Forms
Public Class Form1
Inherits System.Windows.Forms.Form

Private printFont As Font
Private totalLineCount As Integer

()Public Sub New
'The Windows Forms Designer requires the following call
()InitializeComponent
End Sub

Private Sub PrintButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PrintButton.Click
Try
Try
If RichTextBox1.Lines.Length < 1 Then
(MessageBox.Show("No Data to Print", "Print", MessageBoxButtons.OK, MessageBoxIcon.Information
Exit Sub
End If
totalLineCount = 0
(printFont = New Font("Arial", 10
()Dim printDoc As New PrintDocument
AddHandler printDoc.PrintPage, AddressOf Me.printDoc_PrintPage
()printDoc.Print
Finally
End Try
Catch ex As Exception
(MessageBox.Show(ex.Message
End Try
End Sub

(Private Sub printDoc_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs
Dim linesPerPage As Single = 0
Dim yPos As Single = 0
Dim curLineCount As Integer = 0
Dim leftMargin As Single = e.MarginBounds.Left
Dim topMargin As Single = e.MarginBounds.Top
Dim line As String = Nothing

'Calculate the number of lines per page
(linesPerPage = e.MarginBounds.Height / printFont.GetHeight(e.Graphics

'Print each line of the file
While curLineCount < linesPerPage
If (RichTextBox1.Lines.Length - 1) < totalLineCount Then
line = Nothing
Exit While
End If
(line = RichTextBox1.Lines(totalLineCount
(yPos = topMargin + curLineCount * printFont.GetHeight(e.Graphics
(()e.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat
curLineCount += 1
totalLineCount += 1
End While

'If more lines exist, print another page
If (line IsNot Nothing) Then
e.HasMorePages = True
Else
e.HasMorePages = False
End If
End Sub

End Class

Ehsan_Shia
شنبه 17 مرداد 1394, 15:09 عصر
اینم یک نمونه برای کاربران