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.