tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル印刷位置に関して
記事No4152
投稿日: 2006/08/28(Mon) 23:10
投稿者
お久しぶりです。
実は、今、印刷部分を作成しているのですが、印刷余白を0ピクセルにしても、
印刷すると、5ミリぐらい印刷されない部分が四方にあります。
完璧にふちなしで印刷する方法ってありますか。
あるなら教えてください。
お願いします。

[ツリー表示へ]
タイトルRe: 印刷位置に関して
記事No4153
投稿日: 2006/08/29(Tue) 07:30
投稿者花ちゃん
回答ではありません。

プリンターの機種は何でしょうか? 
そのプリンターはフチなし印刷をサポートしていますか?
周辺機器に関する質問をする場合は、メーカ名や機種・使用環境等の情報を掲載した方が
いいかと思います。

# 最新のインクジェットプリンターでは殆どサポートされているようですが、レーザー
  プリンターでは、5mm程度の印刷余白を取っているようですね
(私は四辺フチなし印刷ができるプリンターを使っておりませんので未確認ですが)

たしか、.NET Framework version 2.0 を使っておられたかと思うのですが、下記では
値がどのように取得できますか?
 
Dim leftMargin As Integer = 0.254! * PrintDocument1.DefaultPageSettings.HardMarginX

http://hanatyan.sakura.ne.jp/dotnet/Prt10.htm

[ツリー表示へ]
タイトルRe^2: 印刷位置に関して
記事No4156
投稿日: 2006/08/29(Tue) 22:14
投稿者
プリンタは、ふちなし印刷対応の、キャノンMP750です。
インクジェットです。
Dim leftMargin As Integer = 0.254! * PrintDocument1.DefaultPageSettings.HardMarginX
とやったところ、コード上で、余白を0にしても、3と取得されました。
これはどうしてですか?

[ツリー表示へ]
タイトルRe^3: 印刷位置に関して
記事No4157
投稿日: 2006/08/29(Tue) 23:46
投稿者花ちゃん
> とやったところ、コード上で、余白を0にしても、3と取得されました。
だったら、そのプリンターの実印刷開始位置が用紙の上端から3mの位置からでしか印刷
できません。(-3 で設定して フチなしで印刷できる計算です)

フチなし印刷は、プリンターのドライバーで画像を拡大して印刷しているようなので
VB.NET からでは簡単にはできないでしょうね。
(キャノンも教えてはくれないでしょうし)
プリンターのダイアログを表示してその分はユーザに設定してもらうしかないかも。

[ツリー表示へ]
タイトルRe^4: 印刷位置に関して
記事No4159
投稿日: 2006/08/30(Wed) 22:14
投稿者
要するにプリンタのマージン(?)に-3を設定すればいいのですね。
余白にだけにこだわってたから、できなかったのかもしれません。
花ちゃんさんありがとうございました。

[ツリー表示へ]
タイトルRe^5: 印刷位置に関して
記事No4160
投稿日: 2006/08/30(Wed) 22:56
投稿者花ちゃん
> 要するにプリンタのマージン(?)に-3を設定すればいいのですね。

そんな単純にはいかないでしょう。(プリンターがないので試せませんが)
開始位置を -3 とかにしてもエラーは発生しませんが...。

[ツリー表示へ]
タイトルRe^6: 印刷位置に関して
記事No4165
投稿日: 2006/08/31(Thu) 17:11
投稿者
といいますと、マージンだけ設定してもうまくいかないということでしょうか?
僕の考えは少し単純すぎたでしょうか?
ちょっと実際にやってみます。
結果がわかり次第、ご報告させてもらってもよろしいでしょうか?

[ツリー表示へ]
タイトルRe^7: 印刷位置に関して
記事No4169
投稿日: 2006/08/31(Thu) 22:17
投稿者
> 開始位置を -3 とかにしてもエラーは発生しませんが...。
マージン(PrintDocument1.DefaultPageSettings.HardMarginX)に試したところ、ReadOnlyであり
設定できません。
また、余白設定(PrintDocument1.DefaultPageSettings.Margins.TopやLeft、Right、Bottom)
にいれると例外が発生しました。
花ちゃんさんは、何に-3をいれてエラーが出なかったのでしょうか?
ちょっとその辺が聞きたかったので、ご返信お願いします。?

[ツリー表示へ]
タイトルRe^8: 印刷位置に関して
記事No4170
投稿日: 2006/08/31(Thu) 23:25
投稿者花ちゃん
> > 開始位置を -3 とかにしてもエラーは発生しませんが...。
> 花ちゃんさんは、何に-3をいれてエラーが出なかったのでしょうか?
> ちょっとその辺が聞きたかったので、ご返信お願いします。?

印刷位置の話じゃなかったのですか? 

http://hanatyan.sakura.ne.jp/dotnet/Prt03.htm

Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System. _
            Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
'印刷位置をmm単位で指定しての簡単なテキストの印刷
    'テキストボックスの内容を印刷
    Dim g As Graphics = e.Graphics
    'ミリメートルを長さの単位に指定します。
    g.PageUnit = GraphicsUnit.Millimeter
    g.DrawString("■ 左から-3mm 上から-3mm の位置に印刷しました。", _
                New Font("MS Pゴシック", 12), Brushes.Black, -3, -3)
End Sub

誤解の無い様に再度付け加えますが、私の答えは、No.4157 で書いた通りです。

[ツリー表示へ]
タイトルすみません
記事No4175
投稿日: 2006/09/01(Fri) 19:11
投稿者
すみません印刷のことを聞いていたのに、話が少しずれてしまってすみません。
花ちゃんさんが言っていることが、わかりました。
ありがとうございました。

[ツリー表示へ]