winforms 我可以用printDocument C#创建第二个包含自己内容的页面吗

daupos2t  于 2022-11-16  发布在  C#
关注(0)|答案(1)|浏览(128)

我是一个PHP开发人员,正在做一个C#项目。我正忙碌一个C# winform项目。
在打印文档时,我需要添加一个与第一页内容不同的页面。
我需要两页纸,每一页都有自己的内容。
目前它是打印2页,如预期的,但与完全相同的内容,在两页上,这里是一个例子,我目前有什么。

int currentpage = 0;
    int numofpages = 2;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        
        float pageHeight = e.MarginBounds.Height;

        Bitmap bmp = Properties.Resources.someImage;
        Image newImage = bmp;
        e.Graphics.DrawImage(newImage, 20, 20);
        e.Graphics.DrawString("More content", new Font("Verdana", 10, FontStyle.Bold), Brushes.Black, 600, 350);

 currentpage++;

        if (currentpage < numofpages)
        {
       
            e.HasMorePages = true;
            
        Bitmap bmp = Properties.Resources.someOtherImage;
        Image newImage = bmp;
        e.Graphics.DrawImage(newImage, 20, 20);
        e.Graphics.DrawString("Other content", new Font("Verdana", 10, FontStyle.Bold), Brushes.Black, 600, 350);
        }

        else
        {
            e.HasMorePages = false;
            
        }
}

有没有办法创建第二个包含自己内容的页面?
我目前唯一的选择是创建第二个函数printDocument2_PrintPage_1,但它对最终用户来说并不友好。

swvgeqrz

swvgeqrz1#

正如我在注解中所说的,看起来您试图在对事件处理程序的单个回调过程中呈现两个页面的内容。

int currentpage = 0;
int numofpages = 2;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    currentpage++;

    if(currentPage==1)
    {
        Bitmap bmp = Properties.Resources.someImage;
        Image newImage = bmp;
        e.Graphics.DrawImage(newImage, 20, 20);
        e.Graphics.DrawString("More content", new Font("Verdana", 10, 
           FontStyle.Bold), Brushes.Black, 600, 350);
    }
    else if(currentPage == 2)
    {
        Bitmap bmp = Properties.Resources.someOtherImage;
        Image newImage = bmp;
        e.Graphics.DrawImage(newImage, 20, 20);
        e.Graphics.DrawString("Other content", new Font("Verdana", 10, 
             FontStyle.Bold), Brushes.Black, 600, 350);
    }
    e.HasMorePages = currentPage < numofpages;
}

相关问题