نمایش نتایج 1 تا 2 از 2

نام تاپیک: چاپ در چندین صفحه

  1. #1

    چاپ در چندین صفحه

    سلام دوستان عزیز
    یه سوال داشتم.من یه پایگاه اطلاعاتی دارم که میخوام اون رو توی جدول چاپ کنم.جدول من 27 خونه بیشتر نداره واگر اطلاعات من بیشتر از 27 تا شد من چجوری باید کد بنویسم تا توی صفحه بعد چاپ کنه.
    این کدی که من برای چاپ نوشتم:

            private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
    float w = 210f, h = 297;
    e.Graphics.PageUnit = GraphicsUnit.Millimeter;

    FontFamily fmTahoma = new FontFamily("Tahoma");

    StringFormat format_Right = new StringFormat(StringFormatFlags.NoClip);
    StringFormat format_Left = new StringFormat(format_Right);
    StringFormat format_Center = new StringFormat(format_Right);
    format_Right.Alignment = StringAlignment.Far;
    format_Left.Alignment = StringAlignment.Near;
    format_Center.Alignment = StringAlignment.Center;


    Font fTahoma_10 = new Font(fmTahoma, 10, FontStyle.Regular);
    Font fTahoma_14 = new Font(fmTahoma, 14, FontStyle.Bold);
    Font fTahoma_12 = new Font(fmTahoma, 12, FontStyle.Bold);


    Pen P01 = new Pen(Color.Black, 0.1f);
    Pen P05 = new Pen(Color.Black, 0.5f);

    e.Graphics.DrawString("لیست کتاب های ادبیات", fTahoma_14, Brushes.Black, 105, 2, format_Center);
    e.Graphics.DrawRectangle(P05, 5, 10, 190, 280);
    e.Graphics.DrawLine(P05,180,10,180,290);
    e.Graphics.DrawLine(P05, 140, 10, 140, 290);
    e.Graphics.DrawLine(P05, 100, 10, 100, 290);
    e.Graphics.DrawLine(P05, 60, 10, 60, 290);
    for(int i=280;i>0;i-=10)
    e.Graphics.DrawLine(P05, 5, i, 195, i);
    e.Graphics.DrawString("کد", fTahoma_12, Brushes.Black, 187, 12, format_Center);
    e.Graphics.DrawString("عنوان", fTahoma_12, Brushes.Black, 160, 12, format_Center);
    e.Graphics.DrawString("نویسنده", fTahoma_12, Brushes.Black, 120, 12, format_Center);
    e.Graphics.DrawString("سال انتشار", fTahoma_12, Brushes.Black, 80, 12, format_Center);
    e.Graphics.DrawString("ملاحظات", fTahoma_12, Brushes.Black, 33, 12, format_Center);
    int a, b, c=23;
    b = dataGridView1.RowCount;
    for (a = 0; a < b; a++,c+=10)
    {
    e.Graphics.DrawString(dataGridView1[1, a].Value.ToString(), fTahoma_10, Brushes.Black, 187, c, format_Center);
    e.Graphics.DrawString(dataGridView1[2, a].Value.ToString(), fTahoma_10, Brushes.Black, 160, c, format_Center);
    e.Graphics.DrawString(dataGridView1[3, a].Value.ToString(), fTahoma_10, Brushes.Black, 120, c, format_Center);
    e.Graphics.DrawString(dataGridView1[4, a].Value.ToString(), fTahoma_10, Brushes.Black, 80, c, format_Center);
    }

    }


    کسی میدونه من دقیقا باید چیکار کنم؟

  2. #2
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    نقل قول: چاپ در چندین صفحه

    سلام دوست عزيز
    شما كاري كه بايد بكنيد اينه كه اول كد زير رو در ابتداري تابع تون بنويسيد!

    e.HasMorePages = true;

    سپس كدي كه برايه چاپ سطرهاتون نوشتيد رو محدود نكنيد! يعني اگه مختصاتي كه هستش از صفحتون زد بيرون مشكلي نداره، خود برنامه صفحه جديد ايجاد ميكنه و در صفحه جديد بقيه رو چاپ مي كنه!! ( به عبارت ديگر كدي برايه صفحه جديد نياز نيست بنويسيد برنامه خودش كارشو بلده!!)

    موفق باشيد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •