PDA

View Full Version : چگونگی پرینت گرفتن از محتوای یه textbox در vb.net



yekta64
چهارشنبه 09 تیر 1389, 10:33 صبح
سلام دوستان
من یه فرم دارم حاوی یه باتون و یک تکس باکس هستش
کاربر من یه متنی رو در تکس باکس می نویسه حالا باید با فشردن یک فایل word باز بشه که شامل متن باشه که کاربر در تکس باکس تایپ کرده و بتونه از اون متن در فایل word پرینتر بگیره چطور می تونم این کار رو انجام بدم؟؟؟؟؟
مرسی

nasim bahari
چهارشنبه 09 تیر 1389, 11:33 صبح
سلام گلم.................

می تونی برای این کار وقتی textBox فوکوس رو در اختیار می گیره ، کلید هایی که فشرده میشن رو در جایی ذخیره کنی. بعد یک فایل با پسوند doc بساز و در آخر هم Copy .

می دونم اگه یه مثال عملی گذاشته بودم کار راحتر بود. ولی گلم متاسفانه یا خوشبختانه من 1 ساعت دیگه باید به یک سفر کاری برم. و نمی تونم که اینکار رو بکنم.............

امیدوارم که کمکی کرده باشم...............

بهاری باش و همیشه سبز

MTK2010
دوشنبه 14 تیر 1389, 16:39 عصر
دوست گرامی سلام


نیازی به ‌word 2007 نیست




Imports System.Drawing.Printing





بعدش این رو بنویس





Private Sub printText(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
ev.Graphics.DrawString(TextBox1.Text, New Font("Arial", 12, FontStyle.Regular), Brushes.Black, 80, 80)
ev.HasMorePages = False
End Sub





بعد برای باتون پرینت این کد رو بنویس





Try
Dim prindoc As New PrintDocument
AddHandler prindoc.PrintPage, AddressOf Me.printText
prindoc.Print()
Catch ex As Exception
MessageBox.Show("Error", ex.ToString())
End Try





امیدوارم مشکلت حل بشه‌

yekta64
جمعه 21 آبان 1389, 17:33 عصر
دوست گرامی سلام



نیازی به ‌word 2007 نیست




Imports System.Drawing.Printing





بعدش این رو بنویس





Private Sub printText(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
ev.Graphics.DrawString(TextBox1.Text, New Font("Arial", 12, FontStyle.Regular), Brushes.Black, 80, 80)
ev.HasMorePages = False
End Sub





بعد برای باتون پرینت این کد رو بنویس





Try
Dim prindoc As New PrintDocument
AddHandler prindoc.PrintPage, AddressOf Me.printText
prindoc.Print()
Catch ex As Exception
MessageBox.Show("Error", ex.ToString())
End Try






امیدوارم مشکلت حل بشه‌



بی نهایت ممنون دوست عزیز
یه سوال اگه ما بخوایم محتویات تکس باکس با فشردن دکمه پرینت در فایل word نمایش داده شود و سپس پریتن گرفته بشه به صورتی که کاربر امکان ویرایش رو هم داشته باشه باید چیکار کرد؟

مرسی

mojtaheri
یک شنبه 27 شهریور 1390, 10:08 صبح
Private Sub printText(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
ev.Graphics.DrawString(TextBox1.Text, New Font("Arial", 12, FontStyle.Regular), Brushes.Black, 80, 80)
ev.HasMorePages = False
End Sub


سلام علیکم کسی میدونه این 80 های آخری بر چه اساسی پیسکل ، پوینت و یا چیز دیگه

siamakbyt
یک شنبه 27 شهریور 1390, 13:11 عصر
با سلام و احترام موضوع خوبی رو مطرح کردید کد بالا مربوط به کتاب ویژوال بیسیک 2008 شرکت مایکرو سافت است ولی مشکل اساسی در این است که اگر شما فارسی تایپ کنید مثلا " سلام " پرینت را به صورت " م لا س " می بینیم
آیا کسی راه حلی دارد
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟

siamakbyt
یک شنبه 27 شهریور 1390, 13:12 عصر
در جواب 80 میزان فاصله از چپ و بالا هست بر حسب پوینت

siamakbyt
یک شنبه 27 شهریور 1390, 13:32 عصر
سلام من کد مورد نظر را قبلا دیدم ولی ایراد در ساپورت فارسی داره



دوست گرامی سلام


نیازی به ‌word 2007 نیست




Imports System.Drawing.Printing





بعدش این رو بنویس





Private Sub printText(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
ev.Graphics.DrawString(TextBox1.Text, New Font("Arial", 12, FontStyle.Regular), Brushes.Black, 80, 80)
ev.HasMorePages = False
End Sub





بعد برای باتون پرینت این کد رو بنویس





Try
Dim prindoc As New PrintDocument
AddHandler prindoc.PrintPage, AddressOf Me.printText
prindoc.Print()
Catch ex As Exception
MessageBox.Show("Error", ex.ToString())
End Try





امیدوارم مشکلت حل بشه‌

Mani_rf
یک شنبه 27 شهریور 1390, 17:58 عصر
سلام من کد مورد نظر را قبلا دیدم ولی ایراد در ساپورت فارسی داره

مشکل که با زبان فارسی پیدا میکند به خاطر فونتی است که انتخاب شده. از فونت های استاندارد فارسی مانند Tahoma و یا سری فونت هایی که با حرف B شروع می شوند استفاده کنید تا مشکل حل شود.

Public Class Form1
Dim WithEvents X As New Printing.PrintDocument
Private Sub X_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles X.PrintPage
e.Graphics.DrawString("آزمایش حروف فارسی", New Font("B Nazanin", 40, FontStyle.Bold), Brushes.Black, New Point(200, 200))
End Sub
Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
PrintPreviewControl1.AutoZoom = True
PrintPreviewControl1.Document = X
End Sub
End Class

75456

siamakbyt
دوشنبه 28 شهریور 1390, 15:56 عصر
خیلی ممنون از کمکی که فرمودین حالا اگر بخوایم چند متن را در جاهای مختلف یک فرم چاپ کنیم باید چه کرد ؟
مانند چاپ بر روی چک ؟
ممنون راستی شما هم در کلاسها تدریس میکنید




مشکل که با زبان فارسی پیدا میکند به خاطر فونتی است که انتخاب شده. از فونت های استاندارد فارسی مانند Tahoma و یا سری فونت هایی که با حرف B شروع می شوند استفاده کنید تا مشکل حل شود.

Public Class Form1
Dim WithEvents X As New Printing.PrintDocument
Private Sub X_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles X.PrintPage
e.Graphics.DrawString("آزمایش حروف فارسی", New Font("B Nazanin", 40, FontStyle.Bold), Brushes.Black, New Point(200, 200))
End Sub
Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
PrintPreviewControl1.AutoZoom = True
PrintPreviewControl1.Document = X
End Sub
End Class

75456

Mani_rf
دوشنبه 28 شهریور 1390, 16:22 عصر
یک تابع با نام MeasureString در E.Graphic هست که طول رشته را به پیکسل محاسبه می کنه. با استفاده از اون طول رشته مورد نظر را به دست آورید و مختصاتی که می خواهید در آن چاپ شود را تعیین کنید.

siamakbyt
دوشنبه 28 شهریور 1390, 16:49 عصر
ممکنه سورس فایلو بزارید کمی با سورس های قبلی فرق داره

siamakbyt
دوشنبه 28 شهریور 1390, 17:20 عصر
مشکل چند آیتمی حل شد کافیه که چند بار
ev.Graphics.DrawString(TextBox1.Text, New Font("tahoma", 12, FontStyle.Regular), Brushes.Black, 80, 80)
ev.Graphics.DrawString("آزمایش حروف فارسی", New Font("B Nazanin", 40, FontStyle.Bold), Brushes.Black, 200, 200)
تکرار بشه
ولی مشکل پرینت حل نشد