在 WPF / C# 应用程序中,我正在使用 DocumentPaginator 打印一些页面。但是,我想在横向和纵向模式下混合 1 个打印作业页面:例如,纵向第 1 页、横向第 2 页和纵向第 3 页。
但是,如果我更改 PageSize(从 DocumentPaginator 覆盖)以反映横向,则页面将保持纵向模式。
换句话说在
public class PrintPaginator : DocumentPaginator
{
public override Size PageSize { get; set; }
public override DocumentPage GetPage(int pageNumber)
{
// size values
Size theSizeOfThePage;
// make size orientation correct
if (pageNumber == 2)
{
// landscape: width is larger then height
theSizeOfThePage = new Size(Math.Max(PageSize.Width, PageSize.Height), Math.Min(PageSize.Width, PageSize.Height));
}
else
{
// portrait: height is larger then width
theSizeOfThePage = new Size(Math.Min(PageSize.Width, PageSize.Height), Math.Max(PageSize.Width, PageSize.Height));
}
PageSize = theSizeOfThePage;
// set the grid as the page to print
thePage = new Grid();
thePage.Width = PageSize.Width;
thePage.Height = PageSize.Height;
[...]
// return a documentpage wrapping the grid
return new DocumentPage(thePage);
}
我相信我不能更早地将 Orientation 或 PageSize 设置为 Landscape,因为这取决于正在打印的页码......
在 1 个打印作业中混合纵向和横向的任何想法、建议和解决方法?
谢谢!R。