C# 實現虛擬打印機 HP Color LaserJet 4500 1
無聊了研究了下PCL和HPGL兩種語言。如果要實現虛擬打印機只使用.NET來做,驅動是最大的問題。其實我們可以使用已經寫好的打印機驅動來實現。只是讓驅動最終生成的打印語言輸出到我們想要的位置。並且我們對打印語言進行模擬顯示就可以。經過幾天的研究發現HP Color LaserJet 4500 打印出的圖形爲PCL和HPGL的混合體。那就寫個控制HP Color LaserJet 4500的程序進行控制並且把打印出的打印語言輸出到我們想要的位置。
首先 先給系統添加打印機 HP Color LaserJet 4500
其他的設置不用管。用程序來控制把,免得配置複雜以後我自己都忘了怎麼配置的。
思路 先給打印機更換端口 使用寫註冊表 把臨時目錄放做爲打印端口 然後設置打印後保留文檔 通過API EnumJobs 獲取打印任務 重新執行打印後獲取臨時文件 ,這裏臨時文件就是我們需要的PCL/HPGL文件( ImagePRN 這個類 我暫時不貼出來) 因爲包含兩種打印語言所以這個東西的類我還的找個時間再整理下,到目前爲止就10來個類了貼出來太累了。等整理後、成一個類後我會帖出來。
效果圖
不說了 先看代碼把
測試使用代碼
下面是打印控制的類
下一篇 我會把PCL/HPGL的類貼出來。