使用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