PDA

View Full Version : ایجاد image شامل عکس و متن



vadood
یک شنبه 23 مرداد 1384, 14:17 عصر
می خواهم تعداد زیادی کارت چاپ کنم. روی این کارت ها قرار عکس فرد + مشخصات (اسم و ...) بیاد. اطلاعات از کوئری کردن بانک اطلاعاتی میاد

حالا می خواهیم ببینم توی .net چه جوری می تونم با کنار هم گذاشتن اینها یه تصویر درست کنم و اونو بفرستم روی پرینتر یا save کنم؟

Mohammad .net
دوشنبه 24 مرداد 1384, 12:06 عصر
با سلام

منطقی ترین کار استفاده از نرم افزار های گزارش ساز ( مثل کریستال رپورت همراه Vs ) است. که اطلاعات زیادی دربارش توی این سایت هست.

ولی اگر بازم خواستی به روشی که در بالا گفتی عمل کنی در باره Gdi تحقیق کن. مشکلی بود در خدمتم!

S.Azish
دوشنبه 24 مرداد 1384, 14:27 عصر
راه دیگه میتونه استفاده از PrintDocument و فرستادن متن و تصویر به GDI باشه (با استفاده از توابعی مانند DrawImage و DrawString در رویداد Print که PrintDocument در اختیارتون میذاره. با این روش کنترل خوبی روی خروجی تولید شده, کیفیت و نوع تصاویر انتخابی دارید.

بابک زواری
دوشنبه 24 مرداد 1384, 14:31 عصر
مثالی در این زمینه میشه بزنید

S.Azish
دوشنبه 24 مرداد 1384, 16:36 عصر
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Dim pd As New System.Drawing.Printing.PrintDocument
Dim ppd As New PrintPreviewDialog

Try

AddHandler pd.PrintPage, AddressOf Me.Print
ppd.Document = pd
ppd.ShowDialog()

Finally
RemoveHandler pd.PrintPage, AddressOf Me.Print
End Try

End Sub

Private Sub Print(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)

e.Graphics.DrawImage(Me.Icon.ToBitmap, New PointF(50, 50))
e.Graphics.DrawString("Test", New Font("arial", 10, FontStyle.Regular, GraphicsUnit.Point), Brushes.Black, 50, 100)

End Sub

sh
دوشنبه 24 مرداد 1384, 18:11 عصر
آقای آذیش سلام

آقا در این رابطه با تاپیک زیر اظهار نظر میکنین ؟
http://www.barnamenevis.org/forum/showthread.php?t=26439

vadood
دوشنبه 24 مرداد 1384, 19:22 عصر
از Cr نمی تونم استفاده کنم چون اندازه کارت من به هیچ کدام از اندازه کاغذ های استاندارد اون نمی خوره و فکر نمی کنم جواب بده

دقیقا دارم از DrawImage و DrawString و PrintDocument استفاده می کنم اما وقتی می خواهم عکس ها روی کارتم بگذارم باید اونها را scale کنم که اینو نتونستم انجام بدم

بابک زواری
دوشنبه 24 مرداد 1384, 20:49 عصر
ودود جان اینم یک نمونه من تستش کردم


Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim bb As System.Drawing.Graphics = e.Graphics
Dim MyDrawFont As New Font(Me.Font, FontStyle.Regular)

bb.DrawLine(Pens.Black, 0, YHeadPic, PictureBox1.Width - 10, YHeadPic)
bb.DrawString("شنبه", MyDrawFont, Brushes.Blue, 0, 0)
End Sub

بابک زواری
دوشنبه 24 مرداد 1384, 20:52 عصر
با DrawLine میتونی خط بکشی که در اینجا من چند تا متغییر گذاشتم که باید شما حذفش کنی
به این تاپیک هم نگاه کن طریقه تعریف متغییر به شکل مستقل از نوع بالا
http://www.barnamenevis.org/forum/showthread.php?p=137262#post137262

vadood
سه شنبه 25 مرداد 1384, 08:03 صبح
مرسی بابک جان

گفتم که مشکل من scale کردن image هاست این قسمت هاش را انجام دادم قبلا

S.Azish
سه شنبه 25 مرداد 1384, 13:02 عصر
شما باید یک اندازه جدید تعریف کنید و از ScaleTransform برای Scaling استفاده کنید.




Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


Dim pd As New System.Drawing.Printing.PrintDocument
Dim ppd As New PrintPreviewDialog

Try

AddHandler pd.PrintPage, AddressOf Me.Print

pd.DefaultPageSettings.PaperSize = New System.Drawing.Printing.PaperSize("Test Paper Size", 200, 200)

ppd.Document = pd
ppd.ShowDialog()

Finally
RemoveHandler pd.PrintPage, AddressOf Me.Print
End Try

End Sub

Private Sub Print(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)

e.Graphics.ScaleTransform(1, 1) 'change here to zoom in or out

e.Graphics.DrawImage(Me.Icon.ToBitmap, New PointF(50, 50))
e.Graphics.DrawString("Test", New Font("arial", 10, FontStyle.Regular, GraphicsUnit.Point), Brushes.Black, 50, 100)

End Sub

بابک زواری
سه شنبه 25 مرداد 1384, 23:12 عصر
ممنون آقای آذیش

vadood
چهارشنبه 26 مرداد 1384, 08:26 صبح
مرسی، ولی باز هم نشد چون می می خواهم یک image را پیش از گذاشتن روی image دیگر scale کنم نه کل image را پیش از چاپ

S.Azish
چهارشنبه 26 مرداد 1384, 13:24 عصر
در اینصورت Image رو به هر اندازه که لازمه بکشید



e.Graphics.DrawImage(Me.Icon.ToBitmap, New RectangleF(10, 10, 50, 50))

vadood
چهارشنبه 26 مرداد 1384, 14:29 عصر
من تا همین دیروز هر کدوم از overload هایی که سایز image را عوض می کردند را امتحان می کردم NotImplementedException می گرفتم! چرا این یکی کار می کنه

S.Azish
چهارشنبه 26 مرداد 1384, 16:03 عصر
فرمت image که میخواستید resize کنید چی بود؟

vadood
دوشنبه 31 مرداد 1384, 08:58 صبح
jpg

یه مشکل جدید، application را که روی یه سیستم دیگه می برم فرم که load میشه هیچ کدوم از کنترل های روش را نمی بینم.