在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);
        }

我相信我不能设置方向或页面大小横向较早,因为这取决于正在打印的页码…

在一个打印作业中混合肖像和风景的任何想法,建议,解决方案?

谢谢!r .

自从你问了很长一段时间,我知道,但是你有没有尝试在调用新的DocumentPage()的构造函数中直接设置PageSize ?

更多细节在我的博客:http://wieser-software.blogspot.co.uk/2012/07/landscape-printing-and-preview-in-wpf.html

相关内容

  • 没有找到相关文章

最新更新