PDA

View Full Version : چاپ در سی شارپ



ssadegh1365
چهارشنبه 13 اسفند 1399, 13:53 عصر
سلام خدمت همه دوستان گرامی
یه برنامه ای نوشتم با سی شارپ و دیتابیس اس کیو ال سرور. میخوام از فرم ثبت محصول پرینت بگیرم. مشکل من اینه که پرینت میگیره ولی کیفیت چاپ خیلی خیلی پایینه.
از طریق ذخیره تصویر هم رفتم ولی کیفیت اونم خرابه
خیلی جستجو کردم تو سایتها ولی چیزی پیدا نکردم
یه راه هست که از کنترلهای روی فرم دونه به دونه با تعیین Solid Brush و متن و فونت و مختصات ، برای هرکدوم از کنترلها میشه کیفیت چاپ رو بالا برد.
ولی فرم من حدود 200 الی 300 تا لیبل و تکست باکس داره.
آیا کسی میتونه کمکم کنه در این رابطه ؟ خیلی گیرم خداوکیلی

ssadegh1365
چهارشنبه 13 اسفند 1399, 13:58 عصر
یه حلقه Foreach میخوام که دونه به دونه کنترلها بسته به نوعشون رو توش مقداردهی کنم.
خواهش میکنم از دوستان که استادن تو این زمینه که کمکم کنند.
مثه این نمونه :

foreach (var ctl in pnl.Controls)
{
// for every control type
// come up with a way to Draw its
// contents
if (ctl is Label)
{
var lbl = (Label)ctl;
gr.DrawString(
lbl.Text,
lbl.Font,
new SolidBrush(lbl.ForeColor),
lbl.Location.X, // simple based on the position in the panel
lbl.Location.Y);
}
if (ctl is PictureBox)
{
var pic = (PictureBox)ctl;
gr.DrawImageUnscaledAndClipped(
pic.Image,
new Rectangle(
pic.Location.X,
pic.Location.Y,
pic.Width,
pic.Height));
}
if (ctl is TextBox)
{
var txt = (TextBox)ctl;
gr.DrawString(
txt.Text,
txt.Font,
new SolidBrush(txt.ForeColor),
txt.Location.X, // simple based on the position in the panel
txt.Location.Y);
}
}

ssadegh1365
چهارشنبه 13 اسفند 1399, 14:52 عصر
که این نمونه رو تغییرش دادم تو برنامم از خط اول Foreach خطا میگیره

ssadegh1365
چهارشنبه 13 اسفند 1399, 18:21 عصر
بقیه برنامه رو ننوشتم. متغیر pnl , ctrl تو پرایویت قبل حلقه فور تعریف شده.ننوشتم.

ssadegh1365
چهارشنبه 13 اسفند 1399, 18:22 عصر
کسی نیست کمک کنه @?@

ssadegh1365
پنج شنبه 14 اسفند 1399, 07:43 صبح
یعنی یک نفرنیست بتونه کارمو راه بندازه؟

@liReza11800
جمعه 15 اسفند 1399, 11:17 صبح
دوست عزیز چرا از ابزارهای گزارش گیری مثل کریستال و استیمول سافت استفاده نمیکنی ؟

ssadegh1365
شنبه 16 اسفند 1399, 06:53 صبح
نمیشه خوب. شکل فرمم دقیقا آمار روزانه تولید شرکته. و حتما باید به همون فرمی که دارم پرینت گرفته بشه. راه دیگه ای نداره.
از طریق SolidBrush کیفیت چاپ خوب میشه ولی میخوام کدنویسیسش رو کم کنم.
کسی اگه میتونه تمام کنترلهای روی فرم بسته به نوعشون رو تو حلقه بذاره تا دونه به دونه خودنده بشه و مقداردهی بکنمشون.
مشکل من الان یه حلقه تکراره که جاییش خطا داره که نمیتونم حلش کنم