2012-06-08 134 views
1

我是Windows開發新手,我試圖編寫用戶模式窗口(XP,Vista & 7)虛擬打印機驅動程序。我的目標是攔截由第三方應用程序發送到硬件打印機的輸出,並在輸出結尾添加一些額外的數據(文本+圖形)到該輸出。然後發送最終的有效載荷,由硬件打印機打印。請注意,我的數據不會被添加到機器的每個打印輸出中,而僅僅是來自特定的第三方應用程序。爲Windows編寫虛擬打印機驅動程序

我想在將其額外的數據轉換爲任何頁面描述語言(PDL)之前將其添加到打印輸出中。我可以這樣做嗎?我能否在預測的輸出結尾添加我的額外數據以適當的格式?如果是的話,那麼我需要寫什麼樣的驅動程序以及什麼樣的layer of the architecture

有沒有更好的方式來做同樣的事情,然後編寫用戶模式的打印機驅動程序?

最後,有沒有一個示例代碼,在線博客或書籍,可以幫助我呢?

+0

可能重複的[如何在Windows中創建虛擬打印機?](http://stackoverflow.com/questions/1019036/how-to-create-a-virtual-printer-in-windows) –

+0

打算識別打印應用程序? –

+0

由於我打算編寫打印機驅動程序,它將顯示爲應用程序選擇打印的選項之一。所以當一個打印請求到達我的打印機驅動程序時,我會認爲它來自特定的應用程序本身。 – mabicha

回答

1

我不認爲你需要一個驅動程序。只需使用隨WDK提供的標準Postscript驅動程序,添加.PPD和.INF文件以命名並指定特徵,然後將代碼放入端口監視器。端口監視器比打印驅動程序更易於構建和維護。

2

我認爲最好讓應用程序寫入通用的Postscript驅動程序並對結果Postscript進行後處理,而不是試圖理解寫入打印機驅動程序的數據;有很好的開源工具可用於操作Postscript。

This page describes setting up a driver on Windows that will produce Postscript雖然除了將其發送到另一臺打印機,您仍然希望使用Postscript做其他事情。

+0

感謝您的回覆!其實我在通過你的[建議鏈接](http://www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html)時有疑問。實際上,使用我的軟件的人可能使用任何類型的頁面描述語言(PDL),如ESC/PAGE(來自Epson),PCL,PostScript等打印機。所以我想知道所有這些打印機是否能夠打印輸出來自GhostScript ie預期文檔的柵格化圖像? – mabicha

+0

按照您的需要轉換Postscript後,您可以通過Ghostscript打印機驅動程序發送它,該驅動程序將Postscript轉換爲打印機可接受的格式。 – antlersoft

相關問題