2012年3月30日 星期五

如何在Windows 2008遷移印表機


Windows2003時代,如果要將printer server上的印表機,從A-Server遷移到B-Server,可以使用一支微軟出品的Print Migrator 3.1程式來做遷移。

但是到了Windows 2008,這支程式已不再支援,必須用Windows2008本身的Print and Document Services Tools來完成。以下介紹如何使用:

一、安裝 Print and Document Services Tools
Features > Add Features Wizard > Remote Server Administration Tools > Role Administration Tools > Print and Document Services Tools

二、印表機匯出
Print and Document Services > Print Management 上按滑鼠右鍵,選擇select Migrate Printers


選擇 Export printer queues and printer drivers to a file



選擇要匯出的Printer server。可以是本機,或遠端Server



選擇匯出的檔案名稱,按Next之後,開始執行匯出動作。




二、印表機匯入
Print and Document Services > Print Management 上按滑鼠右鍵,選擇select Migrate Printers
選擇 Import printer queues and printer drivers from a file



選擇匯入的檔案。



選擇匯入到哪台Server



選擇匯入模式。按下一步開始執行匯入動作。
完成後,就可以看到原本在A-Server上的印表機,原封不動的搬到B-Server上了。



後記:
我有測試從Win2003 x32遷移到Win2008 x64的環境,結果當然不成功。找了一些資料,問題在於當x32Driver遷移到x64的環境中會被丟棄。

文件有提到解決的方式,就是在Win2003 x32的印表機上加裝x64Driver,再做一次遷移,結果還是失敗。

有興趣的人可以自行測測看!!

參考文件:
http://technet.microsoft.com/en-us/library/cc722360.aspx


2012年3月20日 星期二

如何使用PHP將資料直接輸出到印表機


利用PHP寫一支小程式,將文件直接輸出到印表機。本來以為這是個簡單的事情,將網路上查到的PHP印表機函數,直接套用即可。

我錯了,執行測試程式時,會出現未定義的錯誤訊息。查官方網站,才知道這個函式屬於外掛的,放在PECL這個延伸函式庫。

以下介紹如何使用PHP輸出到印表機:

1.到以下網站下載PECL for Windows元件。

2. 下載並解壓縮後,裡面有一堆dll元件,而我們只需要php_printer.dll這個檔案。我是用AppServ,因此將該元件複製到 “C:\AppServ\php5\ext”路徑底下。


3. 接下來開啟php.ini檔,加入extension=php_printer.dll




4. 重啟Apache

5. 利用”phpinfo();”查詢Printer是否已啟用。


6. 寫一支測試程式,看看列印是否正常!!
$printer = "\\\\主機\\分享的印表機名稱";
$ph=printer_open($printer); //連線到印表機
$content="測試PHP列印到印表機!!";
printer_write($ph, $content); //輸出資料到印表機
printer_close($ph); //關閉印表機連線

7. 官方印表機函式手冊