(for Internet Explorer)
[ 親: SVGCats_spec ]
[ ファイル | 印刷 ] で印刷できます。
標準の拡大率 (100%) では、1cm = 38ピクセルとしています。
標準の左右、上下のマージンは、19.05 mm (固定)です。(IEのデフォルトより)
日本の A4 は、210mm×297mm なので、A4 の印刷可能な範囲は
171.9mm×258.9mm となり、649×978 ピクセル(切捨て)です。(1cm=37.79ピクセル)
1cm=38ピクセルでは、653×983 ピクセルですが、ワードへ変換したときに
はみ出てしまうので、収まるように 649×978 ピクセルを、A4 サイズとします。
そのため、印刷するときは、マージンが若干増えます。
649/37.79 - 649/38 = 17.17 - 17.08 = 0.09cm (約1mm)
DTPでは 1ポイント = 1/72インチ ≒0.3528mm
Windows では、1pixel = 0.75ポイント
よって、 1cm = 37.79 ピクセルより 38ピクセル。
SIZE ミリ : RES 紙ピクセルなら、RES*10 / SIZE * 38 倍。
A4 なら、画面ピクセル座標系の値の、4960*10 / 210*38 = 6.216 倍が紙ピクセル単位。
A4 サイズは、649×978 ピクセルとしています。
他のサイズでも、マージン = 19.05mm を基準としています。
→ 印刷
参考
SIZE ミリ : RES 紙ピクセルなら、RES*19.05 / SIZE (紙ピクセル単位)
→ GetDeviceCaps
マージン部分(19.05 mm、インチベース)
インチベースサイズ(1cm=37.79ピクセル)
メートルベースサイズ(1cm=38ピクセル)
B5(JIS) は、182mm × 257mm で、543 × 827 ピクセルです。
x0(client、紙のマージンがあるとマイナス)
y0
(client
紙は
マイ
ナス)
client 座標(クライアント座標系) = キャンバス座標×ズーム−スクロール
horizontal
= 4960
vertical
= 7015
600dpi
zoom = 626
CChildView の clip 領域 = キャンバスとクライアント領域の AND を クライアント座標系で。
紙の clip 領域 = マージンを含まない領域を、クライアント座標系で。
印刷するときは、表示用 cilent 座標と、印刷用 client 座標は異なります。
図形の座標系は、表示用 client 座標系と一致しています。
38(pixel/cm)
印刷する紙のサイズに入らないときは、縮小して印刷します。
80% に縮小しても入らないときは、複数枚に分割して印刷します。
このとき、縮小するサイズは、横幅に合わせます。
(横長の場合、かなり小さくなることがあります)
ソース
スクロールするときは、SVGCat_PrintParam::p::y0 を増やすだけで、
クリッピング領域は変えません。
印刷する紙のサイズより小さいページは、1つの紙に印刷します。
このとき、拡大縮小はしません。
並べるのは、縦方向のみです。
ソース
CChildView::PrintSub
1枚に複数ページのループ
SVGCat_PrintParam_getNextPage
1枚に複数ページを格納する
CChildView::OnPrint
CChildView::PrintSub
CadPrim::Draw
CadPrim_DrawParam::bPrint = true;
CChildView::GetDrawParam
CadPrim_DrawParam
プリンタ出力する
拡大率、クリッピング範囲
SVGCat_PrintParam
描画(画面、紙)パラメータ
紙パラメータ
SVGCat_PrintParam_getNextPage
・PDFの dpi をいろいろ変えてみる。
・縦横方向を変える
・紙のサイズを変える
・倍率を変える
・クリッピングされていること
・背景ページを含んだファイルを印刷する
・背景ありで、途中ページ(p2〜p3)を印刷する
・印刷ダイアログをキャンセルする
・PDF 変換ツールのファイル名入力をキャンセルする