6

8.5 x 8.5インチの用紙をセットしたインパクト プリンターで印刷しています。印刷すると、プリンターは 8.5 インチではなく 11 インチを排出します。

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);

.NET で Twips をピクセルに変換するにはどうすればよいですか?」を使用して、8.5 インチは 816 ピクセルであると判断しましelement.Widthelement.Height。新しい を設定してPageMediaSizeいますが、これは効果がないようdialog.PrintableAreaHeightです。ダイアログでキューを設定すると、まだ 1056 になります。

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

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

4

1 に答える 1