【问题标题】:Print FixedDocument programmatically以编程方式打印 FixedDocument
【发布时间】:2009-07-17 00:00:04
【问题描述】:

我正在使用带有数据绑定的 WPF FixedDocument 来生成简单的发票报告。在软件本身内部查看时效果完美。

但我想一键打印一系列发票。当我选择 XPS 编写器时,以下代码完美运行(快速'n 脏,只是在视图模型中直接一张一张地加载发票,用于测试目的),但打印到真实打印机时无法正确打印。我看不到任何绑定到报告的数据。线条等所有图形元素都在那里,但没有数据。 (当我用相同的按钮打印到 de xps writer 打印机时,所有数据都存在,并且正确......)

有什么想法吗?

    private void ExecutePrintCommand(object sender, ExecutedRoutedEventArgs args)
    {
        var invs = args.Parameter as IList<object>;
        using (CompuDataContext db = new CompuDataContext())
        {
            DataLoadOptions dl = new DataLoadOptions();
            dl.LoadWith<Invoice>(f => f.Invoicelines);
            db.LoadOptions = dl;

            ReportViewer viewer = new ReportViewer();
            PrintDialog dlg = new PrintDialog();
            if (dlg.ShowDialog() == true)
            {
                PrintQueue q = dlg.PrintQueue;
                foreach (var o in invs)
                {

                    InvoiceListDisplay inv = o as InvoiceListDisplay;
                    Invoice invoice = db.Invoices.Single(f => f.Id == inv.Id);

                    viewer.DataContext = new InvoicePrintViewModel(invoice);

                    XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(q);
                    xpsdw.Write(viewer.Document);
                }
            }
        }
    }

【问题讨论】:

    标签: wpf printing


    【解决方案1】:

    嗯,所以我自己在这里找到了答案:)

    This helped me(有人知道背后的“原因”是什么吗?错误?)

    PS:在流程文档中,我遇到了同样的问题,但无法在那里解决。有什么想法吗?

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 2013-04-29
      相关资源
      最近更新 更多