none
印刷時の用紙設定 RRS feed

  • 質問

  • VC#にて印刷の勉強をしています。とりあえず、絵や文字を印刷できるようにはなったのですが、用紙の選択で躓いています。

    選択したプリンターで利用可能な用紙サイズをPrinterSettings.PageSizesで取得してダイアログボックスのコンボボックスに列挙して、選択されたらそれをDefaultPageSettings.PaperSizeに設定するようにプログラムを作りました。これで動かしてデバッガで確認すると、プリントドキュメントのDefaultPageSettings.PaperSizeは選択通りに設定されますが、PrintPageEventArgsのMarginBoundsは変わっていないようでした。また、PageSettings.PrintableAreaも変わっていませんでした。

    プリンタの用紙を指定する場合、DefaultPageSettings.PaperSizeを変更するだけではダメなのでしょうか。ご存じの方がいらっしゃいましたらお教えください。よろしくお願いします。

    2012年4月8日 4:48

回答

  • PaperSizeを変更するとき

    pd.DefaultPageSettings.PaperSize = pd.PrinterSettings.PaperSizes[3];

    のようにしていますか?

    これをするだけでMarginBounds等のパラメータも変更されています。

    • 回答としてマーク _hiro_ 2012年4月11日 20:34
    2012年4月9日 13:54

すべての返信

  • PaperSizeを変更するとき

    pd.DefaultPageSettings.PaperSize = pd.PrinterSettings.PaperSizes[3];

    のようにしていますか?

    これをするだけでMarginBounds等のパラメータも変更されています。

    • 回答としてマーク _hiro_ 2012年4月11日 20:34
    2012年4月9日 13:54
  • ご回答ありがとうございます。もう一度コードを見直したところ、

    pd.PrinterSettings.DefaultSettings.PaperSize

    の値を変更していました。お教えいただきましたように訂正したところ正しく動作しました。ありがとうございました。

    2012年4月11日 20:34