2017-05-14 183 views
-1

我正在使用本教程link發送一個字符串來打印它。但是,即使打印機顯示「接收數據」,數據也不會被打印。在代碼本身中,libusb_bulk_transfer返回我想要打印的字符串中的字符數。字符串通過libusb傳輸,但打印機不會打印

有沒有人有任何線索,我可能會做錯什麼?也許我應該指出,我正在與OsX合作,當我嘗試按照常規程序打印文件時,打印機正常工作。

謝謝!

回答

0

將字符串發送到現代光柵圖像或頁面打印機不太可能具有所需的效果(即,它不會打印字符串) - 打印機會嘗試將其解釋爲命令或圖像數據。任何特定打印機的控制都是特定於該型號的打印機,而在現代打印機上則相當複雜。例如大多數噴墨打印機,主機PC會生成光柵圖像併發送圖像數據。對於PostScript打印機,生成PostScript語言(類似於PDF文檔)的頁面描述併發送到打印機。

操作系統通過打印機驅動程序進行打印;操作系統以自己的格式構建頁面描述,打印機驅動程序將其轉換爲打印機專有格式。

如果要打印文本,通常必須通過操作系統服務(除非您正在編寫打印機驅動程序本身)執行此操作,而不是通過USB直接傳輸數據。唯一的例外是,當你有一個PostScript文件和一個PostScript打印機時 - 那麼這個文件已經是打印機的語言。

此外在USB中,打印設備已經定義爲device class。這使您可以獲取有關打印機及其功能的信息,以便您可以適當地訪問它(同樣是打印機驅動程序和操作系統的作業)