2012-05-07 72 views
2

我創建了一個應用程序,我想運行和打印報告(如水晶報告到.net)。什麼是最簡單的方法來做到這一點?更具體地說,我創建了一個應用程序,用戶可以在他的客戶處創建發票並在藍牙打印機上打印它們。有沒有像android的水晶報告一樣簡單的方法?我試圖使用水晶報告進行日食,但這些庫不能在android上工作(至少我不知道如何)。在android上運行並打印報告

回答

3

首先,Android沒有內置或本機打印功能,只是因爲Android沒有打印機的概念。

但是,您可以使用第三方庫。

要正確回答您的問題,您必須指定您的應用程序支持哪些Android版本。因爲一些第三方庫僅支持特定版本的Android。

除了在應用程序中包含第三方打印庫之外,還可以發送帶有要打印的數據的廣播意圖,並且根據用戶設備上安裝的應用程序,用戶可以選擇支持打印您在意圖中發送的數據類型的應用程序。

您也可以使用Google的新雲打印服務。這將是我更喜歡的選擇,但要實際打印到物理打印機,用戶需要一臺桌面PC,服務器或Mac,它們或者連接了打印機,或者安裝並配置了具有網絡功能的打印機。在這一點上,這可能是你最好的選擇。

這是一個很難解決的問題,有幾個原因。首先,您需要弄清楚要打印的內容,您需要以可打印的方式進行格式化(PDF,PostScript或ASCII僅舉幾例)。接下來,您需要弄清楚是否要支持打印不支持藍牙功能的打印機,因此如果您打算支持打印到支持網絡的打印機,則必須與WLAN相同的LAN/VLAN Android設備已連接並且需要禁用AP隔離。如果您計劃支持共享的Windows打印機,Mac OS X Bonjour打印機共享或Zeroconf Linux打印機共享,則您需要找到支持庫並實現搜索各種網絡共享的方法,然後選擇並存儲網絡共享打印到。

由於您計劃支持打印到支持藍牙的打印機;那麼有幾個Ice Cream Sandwich和Honeycomb發行版可以與藍牙打印機配對(Android版本需要3.0或3.1+以上[我不完全確定在Honeycomb的SDK級別實現了藍牙打印協議]和4.0.3+)。至於實際格式化要通過藍牙打印的數據,我不確定可以打印什麼以及使用哪些藍牙版本或協議。今天上午我會做一些進一步的研究,我會回覆我提供的信息。

+0

謝謝你的回答。我開始爲2.1開發,但如果必須的話,我沒有問題去4.0.3+。我不使用雲,因爲用戶將脫機工作。他們的設備不會連接到互聯網。他們將成爲拜訪客戶的司機。我想從sqlite打印發票。這就是爲什麼我搜索像水晶報告這樣的解決方案。 – apant

+0

尼斯詳細解答JBDynamics。請原諒我的無知,但假設您在第三方組件中調用了「打印」功能,那麼它所使用的格式將不會被預先確定?我想我的錯誤是假設這些庫甚至可以實現一種打印到Android的方式嗎?意思是,如果他們不是在本地執行,你必須將你的數據按摩到PDF/PostScript/ASCII /等。那麼將它發送到雲端或打印計劃的任何地方? –