筆者單位使用的辦公自動化系統,基于傳統三層架構開發,即數據庫層、業務層和界面層,其中數據庫為Oracle,界面層為瀏覽器。辦公自動化系統界面比較友好,打開公文條目時,標簽顯示辦文處理表和公文正文。辦公自動化系統客戶端電腦需要安裝IE瀏覽器、Office套件和Office瀏覽器插件才能正常使用。這種瀏覽器插件嵌入顯示公文方式,減少了用戶鼠標操作次數,一次點擊全部顯示,非常方便。
但是,它的缺點也顯而易見,加載公文顯示速度略慢,插件常被各類殺毒軟件和安全衛士刪除,導致公文不能正常顯示,維護工作量巨大。因此,穩定的IE瀏覽器環境,對辦公自動化系統的正常使用至關重要。
經過研究和探討,使用RemoteApp可以避開客戶端多樣化的瀏覽器應用,為用戶提供集成、統一、安全和穩定的IE瀏覽器環境,可以減少客戶端故障。為此,筆者在VMWare Workstation虛擬機部署了Windows Server 2008 R2標準版服務器,展開一系列測試。
首先安裝了Office套件,配置好辦公自動化系統所需的瀏覽器工作環境。接著,添加、激活的遠程桌面服務。最后,通過RemoteApp發布IE瀏覽器,并生成了MSI終端安裝程序包。由于公文格式的比較特殊,規定使用小標宋和仿宋(實際大量應用仿宋-GB2312)等字體,因此在服務器端也安裝了GB2312國標字體。
服務器部署完畢后,在終端用戶電腦安裝RemoteApp發布的IE瀏覽器程序包。運行遠程IE瀏覽器,通過安全認證,辦公自動化系統正常訪問,公文顯示正常。困擾多時的辦公自動化系統客戶端問題終于解決了,此時心里美滋滋的。當測試打印重定向功能時,瞬間崩潰,打印出來的公文標題正常,正文亂碼。是什么導致打印亂碼呢?
RemoteApp是Windows Server 2008遠程桌面服務特色功能之一,使用RDP協議,允許終端用戶通過遠程桌面服務訪問遠程應用,這些遠程應用就像在終端用戶本地電腦上運行一樣。經遠程服務器RemoteApp發布的程序,我們稱之為RemoteApp程序。使用這些RemoteApp程序時,用戶無需登錄遠程桌面服務器,它們也不在遠程桌面服務器顯示,而是和終端用戶的桌面合為一體,以獨立窗口形式存在。
RemoteApp是Windows傳統終端服務升級擴展而來的。終端服務可以理解為遠程桌面,它以整個桌面為單位發布出來,終端用戶登錄發布出來的遠程桌面后,再使用各類遠程應用或操控遠程資源。而RemoteApp與終端服務的整體桌面發布不同,它對應用做精細化管理,按需逐一發布,并可生成MSI安裝包,供終端用戶安裝使用。RemoteApp也提供了資源重定向功能,方便終端用戶調用本地磁盤、打印機和各類接口設備等資源。終端服務打印重定向需要在服務器端安裝打印機驅動程序,如果多用戶多品牌多型號打印機,打印機驅動程序安裝一個也不能少,相對繁瑣;而RemoteApp令人耳目一新,無需安裝打印機驅動程序,自動重定向終端用戶打印機。
由于測試系統安裝在VMWare Workstation 12 Pro上,重新啟動Windows系統,亂碼問題可能會得到解決。就在系統重啟之際,虛擬機右下角一閃而過一行提示:“在該系統上全局禁用了虛擬打印功能,不會為該虛擬機啟用此功能”。難道這會導致打印亂碼?是不是啟用該功能就可以正常打印?在VMWare“編輯”菜單打開“首選項”,選擇“設備”,勾選“啟用虛擬打印機”,重新啟動系統,馬上試用RemoteApp打印功能,結果亂碼依舊。
是不是虛擬機不支持導致亂碼?物理服務器安裝Windows Server 2008 R2,也許問題會得到解決。好不容易騰出一臺服務器,安裝Windows Server 2008 R2,部署其他軟件和配置 RemoteApp后,打印還是亂碼。
既然不是虛擬機造成打印亂碼,那會不會是打印機造成的呢?在重新安裝Lenovo M7650DNF驅 動程序后,又將打印機更換為HP LaserJet Professional P1606dn,亂碼情況還是沒有改觀。
筆者通過搜索引擎和論壇發帖求助方式,最后在某論壇搜索到一則“葵花寶典”:終端客戶機安裝 .NET 3.0 +.NET 3.0 SP1后,重啟客戶機就可以正常重定向本地打印機了。于是安裝了整套.NET后,重啟電腦,奇跡還是沒有發生。
經過前面多次失敗后,筆者重新整理思路,回到打印亂碼的公文文檔上來。既然該公文標題可以順利打印,說明RemoteApp打印重定向運行正常。經過詳細分析,發現該公文標題字體是小標宋,正文字體是仿宋-GB2312,也許是不同字體差異造成亂碼情況發生。一番測試發現,仿宋-GB2312字體打印亂碼,楷體-GB2312字體打印也是亂碼,只要選用國標字體,RemoteApp打印都會亂碼,應該是國標字體與RemoteApp兼容性問題造成。果斷刪除服務器端已安裝的所有國標字體,RemoteApp打印不再亂碼,辦公自動化系統客戶端問題得到徹底解決。