作成日: 2019/03/06 最終更新日: 2019/03/06
文書種別
使用方法
詳細
プリンタには物理マージン(=物理余白、印字不可領域。ここを除いた印字可能領域にのみ印字が可能 )が存在しますが、C1FlexGridのPrintGridメソッドでグリッドを印刷する場合、このプリンタの物理マージンの分だけずれた位置(印刷の原点)から印刷が開始されます(*1)。
ちなみに、PrintGridFlags.ShowPreviewDialogを指定してPrintGridメソッドを実行しプレビュー表示した場合は、プリンタの物理マージンは考慮されません。そのため、プレビュー時には問題なく表示されていても、実際にプリンタから印刷を行うと、グリッドの下部や右側が印刷されない結果となることがあります。
*1 :物理マージンの例
-------------------------------
印刷設定でマージンを以下のように設定し、用紙いっぱいのサイズに設定したグリッドをCanon-LBP3410のプリンタで印刷するものとします。
◎サンプルコード(VB)
※グリッドの印刷に与える物理マージンの影響が見やすいよう、本サンプルコードでは印刷設定の上下左右マージンをすべて「0」に設定します。
Canon-LBP3410は上下左右とも0.2インチ=5.08mmの物理マージンを持っています。左側と上部の物理マージンについては、.NETの機能を使用し、以下のコードで取得できます。なお右側、下側のマージンの直接的な取得機能は用意されていないようです。物理マージンの詳細な情報は各プリンタの製品サイトで確認してください。
◎サンプルコード(VB)
【結果】
・左側の物理マージン(HardMarginX):0.2インチ=5.08mm
・上部の物理マージン(HardMarginY):0.2インチ=5.08mm
Canon-LBP3410での印刷時には、これらの物理マージンの分だけ下がった(&右にずれた)場所から、グリッドの印刷が開始します。そのため、最下部ではその分がずれグリッドが用紙から5.08mmはみ出すこととなり、印刷されません(右側も同様です)。なお実際にはプリンタの下部・右側にも物理マージンが設定されているので(それぞれ5.08mm)、グリッドの最下部・右側では、5.08×2=11.6mmの高さ・幅が印刷されないことになります。
-------------------------------
この動作を避け、グリッドが印刷時に見切れないようにするには、あらかじめプリンタの上下左右の物理マージンを考慮して、印刷設定で最下部・右側のマージンを設定する必要があります。以下に設定例を示します。
◆印刷設定でのマージン設定例◆
-------------------------------
プリンタの物理マージンを考慮した、印刷設定の各種マージンの設定値
・上部マージン=余裕をみて、5
・左側マージン=余裕をみて、5
・下部マージン=上部物理マージン +下部物理マージン + 余裕=20+20+5=45
・右側マージン=左側物理マージン +右側物理マージン + 余裕=20+20+5=45
◎サンプルコード(VB)
-------------------------------
ちなみに、PrintGridFlags.ShowPreviewDialogを指定してPrintGridメソッドを実行しプレビュー表示した場合は、プリンタの物理マージンは考慮されません。そのため、プレビュー時には問題なく表示されていても、実際にプリンタから印刷を行うと、グリッドの下部や右側が印刷されない結果となることがあります。
*1 :物理マージンの例
-------------------------------
印刷設定でマージンを以下のように設定し、用紙いっぱいのサイズに設定したグリッドをCanon-LBP3410のプリンタで印刷するものとします。
◎サンプルコード(VB)
System.Drawing.Printing.Margins(0, 0, 0, 0)
◎サンプルコード(C#)System.Drawing.Printing.Margins(0, 0, 0, 0);
※グリッドの印刷に与える物理マージンの影響が見やすいよう、本サンプルコードでは印刷設定の上下左右マージンをすべて「0」に設定します。
Canon-LBP3410は上下左右とも0.2インチ=5.08mmの物理マージンを持っています。左側と上部の物理マージンについては、.NETの機能を使用し、以下のコードで取得できます。なお右側、下側のマージンの直接的な取得機能は用意されていないようです。物理マージンの詳細な情報は各プリンタの製品サイトで確認してください。
◎サンプルコード(VB)
Dim p As System.Drawing.Printing.PrinterSettings = New System.Drawing.Printing.PrinterSettings
Console.WriteLine(p.DefaultPageSettings.HardMarginX.ToString)
Console.WriteLine(p.DefaultPageSettings.HardMarginY.ToString)
◎サンプルコード(C#)Console.WriteLine(p.DefaultPageSettings.HardMarginX.ToString)
Console.WriteLine(p.DefaultPageSettings.HardMarginY.ToString)
var p = new System.Drawing.Printing.PrinterSettings();
Console.WriteLine(p.DefaultPageSettings.HardMarginX.ToString());
Console.WriteLine(p.DefaultPageSettings.HardMarginY.ToString());
Console.WriteLine(p.DefaultPageSettings.HardMarginX.ToString());
Console.WriteLine(p.DefaultPageSettings.HardMarginY.ToString());
【結果】
・左側の物理マージン(HardMarginX):0.2インチ=5.08mm
・上部の物理マージン(HardMarginY):0.2インチ=5.08mm
Canon-LBP3410での印刷時には、これらの物理マージンの分だけ下がった(&右にずれた)場所から、グリッドの印刷が開始します。そのため、最下部ではその分がずれグリッドが用紙から5.08mmはみ出すこととなり、印刷されません(右側も同様です)。なお実際にはプリンタの下部・右側にも物理マージンが設定されているので(それぞれ5.08mm)、グリッドの最下部・右側では、5.08×2=11.6mmの高さ・幅が印刷されないことになります。
-------------------------------
この動作を避け、グリッドが印刷時に見切れないようにするには、あらかじめプリンタの上下左右の物理マージンを考慮して、印刷設定で最下部・右側のマージンを設定する必要があります。以下に設定例を示します。
◆印刷設定でのマージン設定例◆
-------------------------------
プリンタの物理マージンを考慮した、印刷設定の各種マージンの設定値
・上部マージン=余裕をみて、5
・左側マージン=余裕をみて、5
・下部マージン=上部物理マージン +下部物理マージン + 余裕=20+20+5=45
・右側マージン=左側物理マージン +右側物理マージン + 余裕=20+20+5=45
◎サンプルコード(VB)
System.Drawing.Printing.Margins(5, 45, 5, 45)
◎サンプルコード(C#)System.Drawing.Printing.Margins(5, 45, 5, 45);
-------------------------------
旧文書番号
83715