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