2009-03-02 90 views
0

我正在使用WPF FixedDocument和数据绑定来获取简单的发票报告。在软件本身内部查看时,完美工作。以编程方式打印FixedDocument

但我想打印一系列的发票在一次点击。下面的代码完美地工作(快速'肮脏,只是直接在viewmodel内部加载一张发票,用于测试目的),当我选择XPS编写器时,bu打印到真实打印机时无法正确打印。我无法看到与报告绑定的数据。所有的图形元素,如线条都在那里,但没有数据。 (当我用相同的按钮打印de xps写入器打印机时,所有数据都存在,并且正确...)

任何想法?

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

回答

1

mmkay,所以我发现自己的答案在这里:)

This helped me(任何人的想法是什么 '理由' 的背后,是臭虫?)

PS:在一个的FlowDocument,让我体验同样的问题,并且无法在那里解决它。有任何想法吗?

相关问题