2014-04-08 84 views
0

其實,我有一個通過Qt生成的CSV文件。如果可能的話,我需要爲用戶添加一個打印選項,以便按原樣打印CSV文件,而無需打開文件。Qt:如何打印QFile?

我試圖搜索解決方案。但找不到解決問題的方法。

任何人都可以建議我打印QFile?有沒有打印QFile的函數?

+1

我想你必須自己編程。 – RobbieE

+0

要從文件中獲取任何數據,您必須打開它。因此在打開文件之前打印文件是不可能的。開放是在OS API級別完成的操作,並不意味着向用戶顯示任何內容。當然,要打印文本文件,您仍然需要以某種方式進行格式化! –

+0

請澄清你的意思是打印。將原始內容(即使用逗號分隔符)打印到標準輸出,或者您想要CSV表格的精美打印輸出等等? – lpapp

回答

0

創建一個設置了CSV內容的QTextDocument並調用print()方法。

+0

如果我正確地理解了你,你已經有了生成的內容,並最終希望在保存到CSV文件之前打印預覽? –

+0

Sebastian Lange,謝謝你的回覆。我猜QTextDocument有一個選項只適用於HTML,即「setHtml()」。我有QString。實際上,我有一個通過QTableView顯示的QSqlTabelModel,然後根據用戶的選擇,它可以保存爲CSV文件。我還希望添加一個選項供用戶直接打印。所以我所擁有的是作爲QString的數據。 – skg

+0

它確實支持''''setPlainText(const QString&text)''',這將導致文檔默認格式化。調用setPlainText後可以通過print-method打印。 –

0

你使用的是Linux嗎?運行使用QProcess中

lpr -P "printername" "path+filename" 

編輯此終端命令: 因爲你使用的是Windows

c:> lpr -Sprinter's IP address [-Poption] [-ol] \path\file name 

http://support.ricoh.com/bb_v1oi/pub_e/oi_view/0001042/0001042969/view/netsys/int/0207.htm但是我不能,因爲我使用Ubuntu來測試它試試這個。

+0

謝謝reggie。你的想法很好。我正在使用Windows XP。是否有類似的DOS命令默認打印機?這是一個很好的暗示,我可以嘗試。 – skg