今天遇到乙個需求.程式控制列印.但進紙需要是橫行進紙.就是說呢文件是豎向的.正常豎向放紙就能出結果.但之前程式設計.橫行的輸出是當成豎向列印,就是把紙橫行進紙.文件是寬》高.好了現在正常豎向文件,寬《高.橫行進紙就變成列印區域不正確了.
解決方案很簡單.就是文件轉成橫向列印
printdocument1.defaultpagesettings.landscape = true;
然後把影象也轉90度
e.graphics.rotatetransform(-90.0f);
第一句是左轉90度
第二句重設座標.左轉設y,右轉設x
好了.如果行普通的情況下就可以用了.
但有時候.需引用一下e.pagebounds 或 e.marginbounds 進行布局控制的時候.就有問題了.因為影象轉了.這兩個值都沒變. 更悲劇的是這兩個值正常不能改,萬惡的oo,
最後只能偷渡了
rectangle mbn = new rectangle(e.marginbounds.top, e.marginbounds .left , e.marginbounds.height, e.marginbounds.width);
fieldinfo fi = e.gettype().getfield("marginbounds",bindingflags.instance|bindingflags.nonpublic);
fi.setvalue(e, mbn);
用反射把值給改了,注意的是轉換的(x,y)值,e.pagebounds 就不用了,是不用關注(x,y)
C 多種方式進行進製轉換
printf 05o n 35 按八進位制格式輸出,保留5位高位補零 printf 03d n 35 按十進位制格式輸出,保留3位高位補零 printf 05x n 35 按十六進製制格式輸出,保留5位高位補零sscanf temp,x k 將16進製制字串轉換為10進製數temp為字串,中間為輸出...
C 列印預覽
截圖 本來想用.net提供的列印預覽對話方塊,可終究不如自己寫的用起來方便,比如說新增滑鼠和滾輪支援。在.net環境下實現列印和預覽還是蠻簡單的。需要用到的類是printdocument和printpreviewcontrol printdocument是要列印的文件,printpreviewcon...
C 單據列印
region 屬性 private int x public int x set private int y public int y set private bool iserr false public bool iserr set endregion public delegate void ...