■83341 / ) |
Re[4]: PrintPreviewControl の表示 |
□投稿者/ 夜叉丸 (50回)-(2017/03/17(Fri) 13:39:38)
|
2017/03/17(Fri) 14:01:00 編集(投稿者) 2017/03/17(Fri) 14:00:06 編集(投稿者) 2017/03/17(Fri) 13:59:20 編集(投稿者) 2017/03/17(Fri) 13:58:20 編集(投稿者) 2017/03/17(Fri) 13:41:39 編集(投稿者)
e.Graphics.PageUnit = GraphicsUnit.Inch; を指定しています。
ハードマージンの値は this.DefaultPageSettings.HardMarginX = 9; this.DefaultPageSettings.HardMarginY = 0; です。
int iw = pdoc.DefaultPageSettings.PaperSize.Width - pdoc.DefaultPageSettings.Margins.Left - pdoc.DefaultPageSettings.Margins.Right; int ih = pdoc.DefaultPageSettings.PaperSize.Height - pdoc.DefaultPageSettings.Margins.Top - pdoc.DefaultPageSettings.Margins.Bottom;
float xpos = (float)pdoc.DefaultPageSettings.Margins.Left * 58f / (float)pdoc.DefaultPageSettings.PaperSize.Width; float ypos = (float)pdoc.DefaultPageSettings.Margins.Top * 297f / (float)pdoc.DefaultPageSettings.PaperSize.Height; float wlen = (float)iw * 58f / (float)pdoc.DefaultPageSettings.PaperSize.Width; float hlen = (float)ih * 297f / (float)pdoc.DefaultPageSettings.PaperSize.Height;
あとは、指定時にミリで指定したかったので位置情報は以下で求めました。 (float)milli / 25.4f
で、試行錯誤の結果 印字するときの位置をいかにしてみました。 いい札物を見たところ、見た目これでいけてるみたいなんですけど。
横位置 (float)milli / 25.4f - ((this.PrintController.IsPreview) ? 0.0f : this.DefaultPageSettings.HardMarginX * 0.01f) 縦位置 (float)milli / 25.4f - ((this.PrintController.IsPreview) ? 0.0f : this.DefaultPageSettings.HardMarginY * 0.01f);
これでいいのでしょうか?
あと、問題なのは 求めた高さが140mm なので PaperSize("特殊", 228, 140f / 297f * 1169f); としたのですが、プレビュー画面の下側に余白が余っています。
本来(理想) 現状 のプレビュー のプレビュー ┌───┐ ┌───┐ │┌─┐│ │┌─┐│ │└─┘│ │└─┘│ └───┘ │ │←下側に隙間が多い └───┘
印刷結果 ┌───┐ │ │←送り出し部分なので仕方がない? │┌─┐│ │└─┘│ └───┘
|
|