none
wpf プリンタ名、用紙を指定して印刷したい RRS feed

  • 質問

  • お世話になります。

    下記のように書きました。①でプリンタ指定、②で用紙のサイズ指定し、dPrt.PrintVisual()の直前にはちゃんと指定した変数が割り当てられていますが、いざ印刷するとデフォルト(通常使うプリンタ:A4サイズ)で印刷してしまいます。
    テストしているパソコンには、Aプリンタ(通常使うプリンタ:トレイ4指定のA4サイズ)とBプリンタ(トレイ3指定のB5設定のプリンタ)があります。
    任意で、A4とB5を指定して印刷したいです。

    Windows8.1 VS2010 C# WPF

    	// 印刷ダイアログを作成。
            var dPrt = new PrintDialog();
    
    
            // 印刷可能領域を取得する。
            var area = dPrt.PrintQueue.GetPrintCapabilities().PageImageableArea;
    
            // 用紙サイズの設定
            LocalPrintServer lps = new LocalPrintServer();
            PrintQueue queue = lps.GetPrintQueue(prnMei); 		//プリンタ名を指定。 ・・・①
    
    
    	:
            印刷内容をゴニョゴニョと書く
    	:
    
    
            // 用紙設定 ////////////////////// 用紙設定可能か確認 ////////////////////////////
            PrintTicket ticket = queue.DefaultPrintTicket;
            ticket.PageMediaSize = new PageMediaSize(PageMediaSizeName.ISOB5Extra);		・・・・②
            ticket.PageOrientation = PageOrientation.Portrait;
    
            dPrt.PrintTicket = ticket;
            // ///////////////////////////////////////////////////////////////////////////////
    
    
            dPrt.PrintQueue = queue;
    
    	// Xmal で書いたように印刷したい
            stack1.Measure(new Size(/*dialog*/dPrt.PrintableAreaWidth, /*dialog*/dPrt.PrintableAreaHeight));
            stack1.Arrange(new Rect(new Point(50, 50), stack1.DesiredSize));
    
    
            // プレビュー
            //if (bPreView)
            //        ShowDialog();
            //else
            dPrt.PrintVisual(stack1, "イメージ");
    
    

    よろしくお願いします。

    • 移動 星 睦美 2015年6月30日 2:52 Visual C# から
    2015年6月29日 7:11