2013-02-10 127 views
0

我需要構建一個可以接收HTML文檔並將其發送到打印機的Web服務。該服務必須接收HTML作爲輸入,然後將其發送到網絡上的打印機。我已經閱讀了很多關於PrintDocument的內容,但它似乎並不是將預格式化文檔(本例中爲HTML)或文件發送到打印機的可行解決方案。相反,它期望你的代碼編排每個頁面的內容和佈局,使用個體命令來打印文本,圖形等等。在我的情況下,HTML本身應該定義頁面佈局。我只需要以與桌面瀏覽器相同的方式盲目地打印HTML文檔,而不需要任何用戶輸入,而是以編程方式作爲服務。用於將HTML文檔打印到網絡打印機的.NET Web服務

上下文:我們有需要打印HTML頁面的iOS設備(iPad,iPod等),但由於各種原因,我們無法使用AirPrint技術。首先,AirPrint要求iOS設備與打印機位於同一網段,事實並非如此。我們必須能夠使用公司網絡上的任何打印機。其次,我們使用的打印機不兼容AirPrint。

建議的解決方案:在.NET中構建一個Web服務(REST或SOAP),該服務將在已配置網絡打印機並已安裝驅動程序的Windows Server上運行。讓iOS應用程序將HTML文檔發送到Web服務。 Web服務將以某種方式將收到的HTML發送到在託管Web服務的Windows Server上本地配置的遠程網絡打印機...

有關如何打印內存中HTML文檔,類似內容到瀏覽器的方式,但從Web服務,沒有任何用戶界面?

+0

**你到目前爲止嘗試過什麼以及你面臨的困難是什麼**創建一個接受編碼HTML字符串的WCF服務聽起來像是一個簡單的任務,不是嗎? – abatishchev 2013-02-10 05:20:35

+0

同意。構建一個WCF服務來接收編碼的HTML是非常簡單的。我面臨的挑戰是將HTML作爲文檔發送給打印機。諷刺的是,PrintDocument對象不支持打印現有的內存文檔。您可以向打印機發送一系列命令,在代碼中指定頁面佈局。所以我想知道以編程方式打印預先形成的文檔的最佳方式是什麼。有些人使用了shell命令,但他們必須授予WCF服務的管理權限,並間接打開另一個應用程序,而不是像PrintDocument那樣在進程內打印。 – txdev 2013-02-11 16:39:17

回答

0

聽起來像PhantomJS可以滿足您的需求。它將允許您將HTML文件轉換爲PDF(其他格式),然後您可以將其發送到打印機。

你可能會想看看你的情況的「rasterize」的例子。