如何在另一个页面打印 [英] how to print in another page

查看:110
本文介绍了如何在另一个页面打印的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的code打印数据:

This is my code to print a data:

private void document_PrintPage(object sender,
    System.Drawing.Printing.PrintPageEventArgs e)
    {

            System.Drawing.Font valueFont = new System.Drawing.Font("Arial", 15, System.Drawing.FontStyle.Regular);
            string dataToPrint = "";
            string valuesToPrint = "";

        dataToPrint += "رقم بطاقة التسويق" +  Environment.NewLine+"-----------------------------------------------"+Environment.NewLine;
        valuesToPrint += farmID.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("إسم صاحب المزرعة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += farmOwner.Text + Environment.NewLine + Environment.NewLine;

            dataToPrint += ("رقم المزرعة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
            valuesToPrint += farmNumber.Text + Environment.NewLine + Environment.NewLine;

            dataToPrint += ("الموبايل") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
            valuesToPrint += farmMobile.Text + Environment.NewLine + Environment.NewLine;

            dataToPrint += ("الإمارة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
            valuesToPrint += emaraNameArabic.Text + Environment.NewLine + Environment.NewLine;

            dataToPrint += ("المنطقة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
            valuesToPrint += areaNameArabic.Text + Environment.NewLine + Environment.NewLine;

            dataToPrint += ("الإقليم") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
            valuesToPrint += regionNameArabic.Text + Environment.NewLine + Environment.NewLine;

            dataToPrint += ("مركز الإستلام") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
            valuesToPrint += receivingCenterName.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("خلاص") + khalas.Text + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += khalas.Text + Environment.NewLine + Environment.NewLine;

       dataToPrint += ("فرض") + fardh.Text + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
       valuesToPrint += fardh.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("لولو") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += otherLulu.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("خنيزي") + khedrawi.Text + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += khedrawi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("بومعان") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += boumaan.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("برحي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += barhi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("جش خزمة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += jeshKharma.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("رزيز") + reziz.Text + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += reziz.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("جبري") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += jabri.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("عنبرة المدينة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += anbaretAlMadina.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("شيشي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += shishi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("دباس") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += dabbas.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("نبتة سيف") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += nabtetSaif.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("خضراوي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += khedrawi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("هلالي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += hilali.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("مكتومي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += maktoumy.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("نميشي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += namishi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("سلطانة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += sultanah.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("بقلة الطوعة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += baqlatAlTawaa.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("بقلة الدحالة") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += baqlatAlDahla.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("بقلة الرارنجا") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += baqlatAlRarenja.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("سكري") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += sukary.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("صقعي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += saqei.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("بوزيد") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += abuZebed.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("مجدول") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += majdoul.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("شبيبي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += shabibi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("يواني") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += youwani.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("يردي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += yardi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("خدي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += khadi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("حاتمي") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += hatimi.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("نغال") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += neghal.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("مجموعة مساير") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += otherSayer.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("إجمالي مثمر") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += totalFructiferous.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("إجمالي غير مثمر") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += totalUnFructiferous.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("إجمالي الأفحل") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += totalAfhal.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("الإجمالي العام") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += generalTotal.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("كبير المعرفين") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += seniorSupervisors.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("مساعد") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += assistant.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("مدخل البيانات") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += dataEntry.Text + Environment.NewLine + Environment.NewLine;

        dataToPrint += ("صاحب المزرعة أو من ينوب عنه") + Environment.NewLine + "-----------------------------------------------" + Environment.NewLine;
        valuesToPrint += farmOnwerOrBehalf.Text + Environment.NewLine + Environment.NewLine;

        StringFormat format = new StringFormat(StringFormatFlags.DirectionRightToLeft);
            e.Graphics.DrawString(dataToPrint, valueFont, System.Drawing.Brushes.Black, 600, 20, format);
            e.Graphics.DrawString(valuesToPrint, valueFont, System.Drawing.Brushes.Red, 400, 20, format);
    }


    // Declare the PrintDocument object.
        private System.Drawing.Printing.PrintDocument docToPrint; //=
        //new System.Drawing.Printing.PrintDocument();

    private void printButton_Click(object sender, EventArgs e)
    {
        if (validate())
        {
            PrintDialog PrintDialog1 = new PrintDialog();
            // Allow the user to choose the page range he or she would
            // like to print.
            PrintDialog1.AllowSomePages = true;

            // Show the help button.
            PrintDialog1.ShowHelp = true;

            // Set the Document property to the PrintDocument for 
            // which the PrintPage Event has been handled. To display the
            // dialog, either this property or the PrinterSettings property 
            // must be set 
            PrintDialog1.Document = docToPrint;

            DialogResult result = PrintDialog1.ShowDialog();

            // If the result is OK then print the document.
            if (result == DialogResult.OK)
            {
                docToPrint.Print();
            }
        }
    }
}

有大量的数据和数据着被填一个页面,但是当我发射了code,我得到了很多信息单页缺失,换句话说,数据被打印一个页面,并在该页面执行后,code不是写另一页

There is a lot of data and the data cant' be fill in one page , but when I fired that code, i got a single page with a lot of information missing, in other words, the data is printed to one page and when that page fills, the code is not writing to another page

推荐答案

有多个答案和文章中使用 e.HasMorePages ,但他们都将打破你的当前布置方法。那也没有办法。

There are multiple answers and articles about the use of e.HasMorePages but they will all break your current layout method. That can't be helped.

配方:

  1. 在打印之前整理你的数据。做一个名单,其中,数据类>数据,其中数据类有标签和值的属性。该列表必须是可转位。

  1. Organize your data before printing. Make a List<DataClass> Data where DataClass has Label and Value properties. The list has to be indexable.

表格(如docToPrint)上推出 lastLine所项目计数器作为一个字段

introduce a lastLine item counter as a field on the Form (like docToPrint)

在BeginPrint事件中设置 lastLine所 0

set lastLine to 0 in the BeginPrint event

改变你的PrintPage事件来是这样的:

change your Printpage event to something like:

var box = e.MarginBounds;

//todo: calculate X, Y and H from box.

while (lastLine < Data.Count)
{
    e.Graphics.DrawStrin(Data[lastLine].Label, this.Font, Brushes.Black, X1, Y);
    e.Graphics.DrawStrin(Data[lastLine].Value, this.Font, Brushes.Navy, X2, Y);

    lastLine += 1;
    Y += H;
    if (Y >= box.Bottom)  // page full
        break;
}
e.HasMorePages = lastLine < Data.Count;

有1呼吁每页PrintPage事件。它是由你来跟踪状态(线)这就是下一个。

There is 1 call to the Printpage event per Page. It's up to you to keep track of the state (line) that's next.

此外,请务必使用打印previewDialog以节省时间和纸张。

Also, make sure to use the PrintPreviewDialog to save some time and paper.

这篇关于如何在另一个页面打印的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆