打印到PDF很好,但是打印到打印机可以打印出空白纸WPF中的XPS Doc

问题描述

首先,我的程序有一个Frame和多个Pages。我将页面存储在List<UIElement>中,并使用XPS编写器进行打印。

        private void Print()
        {
            List<UIElement> Pages = new List<UIElement>();

            PrintDialog print = new PrintDialog();
            if (print.ShowDialog() == true)
            {
                PageOne one = new PageOne();   // add a few pages for example's sake
                Pages.Add(one);

                PageTwo two = new PageTwo();
                Pages.Add(two);

                var xpsDocWriter = PrintQueue.CreateXpsDocumentWriter(print.PrintQueue);
                PrintUIElements(xpsDocWriter,Pages);
            }
       }

PrintUIElements是写入XPS文档的内容

        private void PrintUIElements(XpsDocumentWriter xpsWriter,List<UIElement> uiElements)
        {
            var fixedDoc = new FixedDocument();

            foreach (UIElement element in uiElements)
            {
                var fixedPage = new FixedPage();
                var pageContent = new PageContent();

                fixedPage.Children.Add(new Frame() { Content = element });
                pageContent.Child = fixedPage;

                fixedDoc.Pages.Add(pageContent);
            }

            xpsWriter.Write(fixedDoc);
        }

fixedPage.Children.Add(new Frame() { Content = element });之所以完成,是因为Pages不能有一个FixedPage父母,所以我只是将它们写为框架。

就像我说的那样,通过PrintDialog打印到PDF效果很好,但是选择打印机会使它打印空白纸。有任何线索吗?

(已编辑,删除了不需要的帮助程序类)

更新:如果我删除XPS文字,只是

print.PrintDocument(fixedDoc.DocumentPaginator,"Print")

PrintUIElements内部,同样的问题仍然发生。如果在“打印”之后在fixedDoc显示DocumentViewer,则它包含页面的确切内容(应如此)。我还验证了打印机本身不是问题。发生什么事了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)