Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不同页面格式的打印预览_C#_.net_Winforms_Printing - Fatal编程技术网

C# 不同页面格式的打印预览

C# 不同页面格式的打印预览,c#,.net,winforms,printing,C#,.net,Winforms,Printing,我有一个winform应用程序,您可以通过组合框项目选择页面。每次选择页面时,都会显示相应的面板。每个页面可以有不同的格式,如A4、横向或A3 因此,当我单击“打印”按钮时,我会为每个面板内容创建一个图像,并将其存储在列表中,这样我就可以在PrintPage事件处理程序中访问它 现在我想要的是,在printpreview对话框中,这些页面应该以正确的格式显示,如a4、a3或横向 这可能吗?如果是这样,我如何更改每个显示页面的格式?谢谢大家的评论,这对我帮助很大 我跳过了预览对话框,为每一页创建了

我有一个winform应用程序,您可以通过组合框项目选择页面。每次选择页面时,都会显示相应的面板。每个页面可以有不同的格式,如A4、横向或A3

因此,当我单击“打印”按钮时,我会为每个面板内容创建一个图像,并将其存储在列表中,这样我就可以在PrintPage事件处理程序中访问它

现在我想要的是,在printpreview对话框中,这些页面应该以正确的格式显示,如a4、a3或横向


这可能吗?如果是这样,我如何更改每个显示页面的格式?

谢谢大家的评论,这对我帮助很大

我跳过了预览对话框,为每一页创建了一个PrintDocument,然后通过PrintDocument.Print()调用将每个PrintDocument发送到打印机

我已经设置了纸张大小和景观手动,它为我工作


非常感谢

很难理解这一点,打印机通常不喜欢为文档中的每一页选择不同的纸张大小。首先使用PageSetupDialog,这是用户选择首选项的正常方式。接下来是PrintDocument.QueryPageSettings事件。谢谢,我将尝试!!就像@HansPassant说的,你的提议听起来很奇怪。对于本地连接的打印机可能是可行的,但任何类型的网络打印都需要创建一个包含整个文档的打印假脱机文件,并且所有页面都具有相同的页面设置。否则,您将创建许多打印假脱机文件,并且您的页面可能会与其他用户的打印文档混合打印。如果需要,您可以通过将
e.PageSettings.PaperSize
e.PageSettings.scape
printDoc\u PrintPage
事件开始处设置为每页所需的设置来完成。当然,一个真正的打印机将无法遵循不同的设置,但打印到pdf工作只是罚款这样。。如果您还设置了
e.PageSettings.PrinterSettings.PaperSources
,则可能会使用与打印机进纸量相同的纸张尺寸。。