你好,
我需要能够从我的 wpf 应用程序打印。我只是想打印交易收据。
我发现使用
PrintDialog pDialog = new PrintDialog();
pDialog.PrintVisual(new Receipt("transaction name","my store"), "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");
}
这似乎工作得很好。
关于c# - 使用 wpf 4 打印的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4662765/