使用wpf打印的最佳方法4

你好,我需要能够从我的wpf应用程序打印。 我只是想打印一张交易收据。

我发现使用了

PrintDialog pDialog = new PrintDialog(); 

pDialog.PrintVisual(新收据(“交易名称”,“我的商店”),“documentTitle”);

诀窍非常好。 “Receipt()是一个用户控件,用于呈现交易详细信息。

你打算怎么做? 这是正确的方法吗? 如果我不知道将要使用的打印机怎么办? 我应该只将用户控件设置为热敏收据打印机吗?

任何建议都会很棒!

这是我打印WPF控件的方法:

 System.Windows.Controls.PrintDialog printDlg = new System.Windows.Controls.PrintDialog(); if (printDlg.ShowDialog() == true) { System.Printing.PrintCapabilities capabilities = printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket); double scale = Math.Min( capabilities.PageImageableArea.ExtentWidth / control.ActualWidth, capabilities.PageImageableArea.ExtentHeight / control.ActualHeight); control.LayoutTransform = new System.Windows.Media.ScaleTransform(scale, scale); Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight); control.Measure(sz); control.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz)); printDlg.PrintVisual(control, "My App"); } 

这看起来效果很好。

如果您不知道将要使用的打印机并想要询问用户,这是否意味着您要显示打印对话框? 怎么样:

 pDialog.ShowDialog(); 

http://msdn.microsoft.com/en-us/library/system.windows.controls.printdialog.showdialog.aspx