C 列印之橫行進紙

2021-05-31 21:37:39 字數 889 閱讀 3880

今天遇到乙個需求.程式控制列印.但進紙需要是橫行進紙.

就是說呢文件是豎向的.正常豎向放紙就能出結果.但之前程式設計.橫行的輸出是當成豎向列印,就是把紙橫行進紙.文件是寬》高.好了現在正常豎向文件,寬《高.橫行進紙就變成列印區域不正確了.

解決方案很簡單.就是文件轉成橫向列印

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 ...