Смешайте альбомную и портретную печать в wpf / C#
В приложении 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);
}
Я считаю, что я не могу установить Ориентацию или Размер страницы в Пейзаж раньше, так как это зависит от номера страницы, которая печатается...
Любые идеи, предложения, обходные пути, чтобы смешать портрет и пейзаж в 1 принт-джобе?
Спасибо! Р.
1 ответ
Я давно знаю, что вы спросили, но пытались ли вы установить PageSize непосредственно в конструкторе вызова new DocumentPage()?
Более подробная информация в моем блоге: http://wieser-software.blogspot.co.uk/2012/07/landscape-printing-and-preview-in-wpf.html