none
PRINTER.SCALEWIDTHとHEIGHTについて RRS feed

  • 質問

  • VB6で使用していたPRINTER.SCALEWIDTHとHEIGHTについて

    教えていただきたいのですが、

    VB2005では、

                WKScaleWidth = PrintDialog1.Document.DefaultPageSettings.PaperSize.Width
                WKScaleHeight = PrintDialog1.Document.DefaultPageSettings.PaperSize.Height

    で値を求めた後、後続の処理を実行したのですが、

    VB6.0の値と違うため、

    うまく動作しません。

    ちなみに以下のような値が返却されます。

    【VB6】
     プリンタ:EPSON PM-970C
     フォント:MS 明朝 フォントサイズ:10 サイズ:A4 210X297mm 印刷の向き:縦

      Printer.ScaleWidth ・・・ 96.4
      Printer.ScaleHeight ・・・ 66.15

     プリンタ:NEC MultiWriter 210S
     フォント:MS 明朝 フォントサイズ:10 サイズ:A4 印刷の向き:縦

      Printer.ScaleWidth ・・・ 94.4
      Printer.ScaleHeight ・・・ 67.77917

    ----------------------------------------------------------------------------------------------------
    【.NET】
     プリンタ:EPSON PM-970C
     フォント:MS 明朝 フォントサイズ:10 サイズ:A4 210X297mm 印刷の向き:縦

      WKScaleWidth ・・・ 827
      WKScaleHeight ・・・ 1169

     プリンタ:NEC MultiWriter 210S
     フォント:MS 明朝 フォントサイズ:10 サイズ:A4 印刷の向き:縦

      WKScaleWidth ・・・ 827
      WKScaleHeight ・・・ 1169

     

    <後続の処理では、Printer.ScaleHeightを上記で求めた値にしている >

    If LwkPrnTate > (Printer.ScaleHeight - 3) Then
                    Printer.NewPage                         '改ページ
                    Printer.EndDoc
                    Printer.ScaleMode = 4
                    Printer.FontSize = 10
                    LwkPrnTate = 7
                    LwkPrnYoko = 0
                    LwkPage = LwkPage + 1
                    Call GPrnMeisaiRyoMidasiProc(LwkPage)   '見出し
    End If

    何か設定の仕方がまずいのでしょうか?

    VB2005の値からVB6.0の値にあわせる方法がありますでしょうか?

    また、VB6.0の方は、PRINTER.SCALEMODEや

    プリンターの機種によってPRINTER.SCLEWIDTHやHEIGHTがかわるようですが、

    VB2005ではWKScaleWidthやWKScaleHeightは同じ値が返却されます。

    何かご存知でしたら教えてください。

     

    2007年3月5日 6:54

すべての返信

  • PRINTER.SCALEMODEを合わせればよいのでは?

    PRINTER.SCALEMODE=4(キャラクタ)だと合わない気がしますが。。。

    2007年3月6日 2:39
  •  オーツキさん回答ありがとうございます。

    PrintDocument1.DefaultPageSettings.PrintableArea.Size.Width

    PrintDocument1.DefaultPageSettings.PrintableArea.Size.Height

    の方に、欲しかった値が入っていましたので、そちらで試したところうまくいきました。

    ありがとうございました。

     

    2007年3月6日 3:53