冶南
釬具為您提供windows接口打印的相關原理。
Windows接口打印是一種常見的打印方式,其打印過程就如在Word中打印文檔一樣。只要安裝了打印機和其Windows驅(qū)動程序,就可以使用了,而且它不需要生成中間文件也不太需要軟件程序的過多干預。
(1)打印原理
簡單地說,地圖數(shù)據(jù)的打印輸出過程就是在打印機設備環(huán)境上繪制地圖數(shù)據(jù)的過程。其中的關鍵是將地圖數(shù)據(jù)的范圍映射到打印機的設備范圍上。而打印機設備范圍是由兩個要素決定的:打印紙的有效大小和打印分辨率,打印紙的有效大小是指打印機能實際打印的范圍。因此,若紙張有效范圍為(xmin, ymin, xmax, ymax)inch,打印分辨率為Rdpi,當前打印設備范圍為(Dxmin, Dymin, Dxmax, Dymax),則有:
Dxmin =xmin·R;Dymin=ymin·R;
Dxmax =xmax·R;Dymax=ymax·R;
有了打印設備范圍,根據(jù)地圖數(shù)據(jù)的范圍(Mxmin, Mymin,Mxmax, Mymax),就可以算出兩個空間范圍的橫、縱向比例系數(shù)Sx, Sy:
Sx=(Dxmax-Dxmin)/(Mxmax-Mxmin);
Sy=(Dymax-Dymin)/(Mymax-Mymin);
根據(jù)比例系數(shù),就可以進行坐標變化了對地圖數(shù)據(jù)中的任一點p(x, y),經(jīng)變換后有:
x′=(x-Mxmin)·Sx+Dxmin;
y′=(y-Mymin)·Sy+Dymin。
(2)打印流程
解決了數(shù)據(jù)的坐標變換問題,則打印步驟如下:
1)通過CPrintDialog對象取得打印機的設備環(huán)境句柄。有了設備環(huán)境句柄就能得到打印機的相關參數(shù),如打印紙大小、有效打印范圍、打印分辨率等并啟動打??;
2)根據(jù)打印機參數(shù)就能計算出坐標變換的比例系數(shù)Sx和Sy;
3)取地圖數(shù)據(jù),根據(jù)比例系數(shù)Sx和Sy進行坐標變換、使用打印機設備環(huán)境句柄進行圖形繪制即打印;
4)循環(huán)第三步,直到所有的地圖數(shù)據(jù)被打印,則程序結束。