2011-01-11 22 views
4

Howdy、 私の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"); 
} 

これがうまく動作するようです。

関連する問題