2011-01-11 91 views
4

您好, 我需要能够从我的wpf应用程序进行打印。我只是想打印一张交易收据。使用wpf打印的最佳方法4

我发现,使用

PrintDialog pDialog = new PrintDialog(); 

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

这个技巧非常好用。 “Receipt()是一个用户控件,用于显示事务的详细信息。

您是如何做到这一点的?这是正确的方法吗?如果我不知道将要使用的打印机应该怎么做?我使用户控件只是一样宽热敏收据打印机

任何建议将是巨大的

回答

4

这是我做的打印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"); 
} 

这似乎很好地工作。