簡體   English   中英

多個頁面的打印預覽不起作用

[英]Print Preview of multiple pages not working

我看過很多關於這個的文章。 我相信我一直在關注他們,但仍然有問題。

我正在C#中執行此操作,並且正在運行Windows 8.1。

我正在對XML文件的內容進行多頁打印。 我不僅在遍歷所有元素,還在對它們自己進行格式化。 有足夠的元素可以結束多頁的打印,但是我陷入了使第2頁的內容顯示在第2頁的困境。這就是我正在做的事情。

int pagePrinting;

private void butPrint_Click(object sender, EventArgs e)
{
    pagePrinting = 1;
    printDocument1.PrintPage += this.printDocument1_PrintPage;
    printPreviewDialog1.PrintPreviewControl.Document = printDocument1;
    printPreviewDialog1.Show();
    ((Form)printPreviewDialog1).WindowState = FormWindowState.Maximized;
}



private void printDocument1_PrintPage(System.Object sender, PrintPageEventArgs e)
{
    Point pnt = new Point(0, 0);
    switch (pagePrinting)
    {
        case 1:
            e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            e.Graphics.Clear(Color.White);
            printDocument1.DefaultPageSettings.Landscape = false;
            pnt.X = 300;
            e.Graphics.DrawString("Page 1 Header", fntArialHeader, Brushes.Black, pnt);
            // more printing on page 1 ...    

            pagePrinting++;
            e.HasMorePages = true;
            break;

        case 2:
            e.Graphics.DrawString("Page 2 Header", fntArialHeader, Brushes.Green, pnt);
            // More printing on page 2 ...

            e.HasMorePages = false;
            break;
    }
}

我相信在打印頁面1的末尾,我將設置e.HasMorePages = true,然后退出並返回到打印頁面2。當我在“打印預覽”中查看該頁面時,我在頁面1上獲得了兩個頁眉,這是唯一的頁面可用。 然后,當我點擊“打印預覽”對話框上的“打印”按鈕時,僅打印第二頁。

每次您單擊打印按鈕時,我都不會不斷添加PrintPage事件處理程序:

因此,注釋掉這一行,或將其移至表單的構造函數,以便僅將其連線一次:

printDocument1.PrintPage += this.printDocument1_PrintPage;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM