PDA

View Full Version : مشکل با پرینت گرفتن فرم!!!



Heidari66
جمعه 12 اسفند 1390, 07:22 صبح
سلام دوستان

من یه Picturebox روی صفحه فرم گذاشتم و لیبل هایی که حاوی متن هست گذاشتم
وقتی پرینت میگیرم جالب در نمیاد
یعنی کم رنگ و نوشته ها یه کم بد میشن
آیا راهی برای بهتر گرفتن پرینت هست که این مشکلات رو نداشته باشه؟!

ممنون

فرید نجفلو
جمعه 12 اسفند 1390, 12:30 عصر
دوست عزیز حداقل می گفتین با چه روشی پرینت می گیرید
اگه از Print Form استفاده می کنید بهتره روشتون رو تغییر بدید

Heidari66
جمعه 12 اسفند 1390, 14:53 عصر
نه دوست عزیز

از PrintDocument و PrintDialog استفاده میکنم

فرید نجفلو
جمعه 12 اسفند 1390, 15:15 عصر
تنظیمات چاپگرتون رو چک کردین؟
بعضی از چاپگرها یه تنظیم به نام حالت بهینه دارن که اگه فعال باشه جوهر کمتری استفاده می شه
پرینت های غیر از برنامه شما چطور چاپ میشن مشکلی ندارن؟

اگه مشکل از اونجا نیست کدتون باضافه نتیجه پرینت رو بزارین بد نمیشه

Heidari66
جمعه 12 اسفند 1390, 16:04 عصر
والا روی چندتا پرینتر اجرا کردم بازم مشکل داشت
پرینترها مشکلی ندارن
وقتی پرینت مجازی با کامپیوتر میگیرم مشکل خاصی نداره فقط یکم تار میشه ولی وقتی روی کاغذ میره خیلی ضایع میشه :متفکر:
خودتون امتحان کنید متوجه میشید...

فرید نجفلو
جمعه 12 اسفند 1390, 16:08 عصر
میشه کد پرینت گرفتنت رو بذاری شاید روشت مشکل داشته باشه یا تنظیمات Print Document

Heidari66
جمعه 12 اسفند 1390, 20:42 عصر
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
FormBorderStyle = Windows.Forms.FormBorderStyle.None

PictureBox1.BringToFront()

PrintDialog1.Document = PrintDocument1
PrintDialog1.PrinterSettings = PrintDocument1.PrinterSettings
PrintDialog1.AllowSomePages = True
If PrintDialog1.ShowDialog = DialogResult.OK Then
PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings

PrintDocument1.Print()

End If

FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle

PictureBox1.SendToBack()
End Sub


Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim b As New Bitmap(Me.Width, Me.Height)
Me.DrawToBitmap(b, New Rectangle(0, 0, Me.Width, Me.Height))
e.Graphics.DrawImage(b, New Point(0, 0))

End Sub

فرید نجفلو
جمعه 12 اسفند 1390, 20:56 عصر
خوب شما از روشی مثل همون Print Form استفاده کردید!
اگه تو تنظیمات پنجره چاپ که ظاهر می شه مشکلی نباشه( بهتره یه بار همشونو چک کنی) مشکل از روش چاپ شماست که من هم به نوبه خودم اصلا پیشنهادش نمی کنم
ولی اینکه می گید با پرینت مجازی (که فکر کنم همون XPS منظورتون باشه) مشکلی ندارید شک براندازه!!!
ولی در هر حال من پیشنهاد می کنم در اولین فرصت روشتون رو عوض کنید
اگه محل متن ها و تعداد اونها ثابته چرا از کریستال ریپرت یا Report Viewer همراه خود دات نت استفاده نمی کنید؟

Heidari66
جمعه 12 اسفند 1390, 22:22 عصر
والا با کریستال ریپورت که بلد نیستم کار کنم و زیاد کار خاصی نیست که بخواهم از کریستال ریپورت استفاده کنم
بله منظورم از پرینت مجازی XPS هست نه که مشکلی نداشته باشه کدر و تاره زیاد جالب نیست
عکسی روی فرم با PictureBox گذاشتم که مثل گواهی هست که میخوام نوشته ها روی آن چاپ بشه
آیا Report Viewer اینکاره هست؟!
محل متن ها ثابته ولی نوشته ها متغیرن
اگر کد خاصی دارید لطفا بزارید
ممنون

Heidari66
یک شنبه 14 اسفند 1390, 20:08 عصر
بعله...................

Hybrid
یک شنبه 14 اسفند 1390, 20:12 عصر
نه فکر کنم کلا پرینت از فرم کم رنگ در میاد یادمه خودم قبلا اینکارو کردم کمرنگ درومد.

اگه تونستین از طریق ابزارهای گزارش گیری پرینت بگیرین ، این مشکلات رو نداره.راحت میتونین یادشون بگیرین ، خودم در یک روز Crystal report رو یاد گرفتم.خیلی راحته.

موفق باشید./

فرید نجفلو
یک شنبه 14 اسفند 1390, 20:20 عصر
قبلا هم گفتم واسه کارایی به این سادگی Reporter خود میکروسافت که همراه VS نصب میشه خوبه
هم راحته و هم کم حجم
اگه بخوایید از کریستال استفاده کنید به نظر من صرفه نداره
انگار جایی که یه خودرو سواری کارتون راه می ندازه برید از کامیون استفاده کنید

Heidari66
یک شنبه 14 اسفند 1390, 22:16 عصر
میتونم با report viewer یه فرم طراحی کنم که بتونم داخلش اطلاعات متغییر وارد کنم و چاپ کنم؟!
مثل گواهی!!!

بازم ممنون از راهنماییهاتون...

فرید نجفلو
یک شنبه 14 اسفند 1390, 22:33 عصر
وقتس شما می خواید یه ریپرت جدید اضافه کنید (با روش ویزاردی) ویزار اطلاعات پایگاه داده رو ازتون می گیره و شما می تونید داخل گزارش از اطلاعات به عنوان فیلد استفاده کنید