2013-03-15 69 views
5

8.5 x 8.5インチの用紙が入ったインパクトプリンタに印刷しています。印刷すると、プリンタは8.5インチではなく11インチを排出します。WPFでインパクトプリンタにカスタム用紙サイズを印刷

How do I convert Twips to Pixels in .NET?」私は8.5インチが私の element.Widthelement.Heightのサイズである816個のピクセル、であると判断しましたを使用して
PageMediaSize pageSize = new PageMediaSize(PageMediaSizeName.Unknown, element.Width, element.Height); 

PrintDialog dialog = new PrintDialog(); 
dialog.PrintTicket.PageMediaSize = pageSize; 
Console.WriteLine(dialog.PrintableAreaHeight); // 816, good! 
dialog.PrintQueue = myQueue;     // selected from a combobox 
Console.WriteLine(dialog.PrintableAreaHeight); // 1056 :(

dialog.PrintVisual(element, description); 

。私は新しいPageMediaSizeを設定していますが、これは効果がないと思われます。dialog.PrintableAreaHeightは、ダイアログにキューを設定すると1056で終了します。

dialog.ShowDialog()の場合は、手動でプリンタを選択し、プリンタの詳細設定で手動で用紙サイズを見つけて変更すると、dialog.PrintableAreaHeightに変更が反映されます。

このページhttp://go4answers.webhost4life.com/Example/set-printdialogs-default-page-size-168976.aspxは、プリンタでサポートされているPageMediaSizeしか設定できないことを示しています。私のPrintQueueGetPrintCapabilities機能を使用すると、10個ほどのページサイズのリストが表示されますが、いずれも8.5 x 8.5ではありません。これは、Windowsのプリンタの詳細設定に移動したときに表示されるリストと同じです。

答えて

2

 var printerSettings = new PrinterSettings(); 
     var labelPaperSize = new PaperSize { RawKind = (int)PaperKind.A6, Height = 148, Width = 105 }; 
     printerSettings.DefaultPageSettings.PaperSize = labelPaperSize; 
     var labelPaperSource = new PaperSource { RawKind = (int)PaperSourceKind.Manual }; 
     printerSettings.DefaultPageSettings.PaperSource = labelPaperSource; 
     if (printerSettings.CanDuplex) 
     { 
      printerSettings.Duplex = Duplex.Default; 
     } 
を必要に応じて、それが用紙サイズを設定し、以下のコードを見つけてください。
関連する問題