# print server 目前的作法,不知道實際列印狀況: ```sequence Application->print.js: printNative() print.js->Web Server: 使用 Ajax\n要報表資料 Web Server->print.js: 取得報表資料 print.js->Print Server: 透過 WebSocket 送印 Print Server->print.exe: 呼叫 process print.exe->Adobe Reader: 透過 AutoIT\n使用 Adobe DDE\n列印報表 Adobe Reader->Print Spool: 送到 Windows 列印佇列 Print Spool->Printer: 實際列印\n不過目前不會知道\n這一段的結果 Adobe Reader->print.exe: 傳送 DDE 呼叫結果 print.exe->Print Server: 將 DDE 結果轉成\nExit Code\n結束程式:\n0: 正常\n1: 沒參數\n2: 找不到 Adobe\n3: 不能叫 DDE\n3: 不能印 Print Server->print.js: 回傳成功或失敗訊息 print.js->Application: fulfill 或\nreject 請求 ``` 有空之後可以改寫 print.exe,讓它可以去查詢 Print Spool,才能真正掌握到印列狀況: ```sequence Application->print.js: printNative() print.js->Web Server: 使用 Ajax\n要報表資料 Web Server->print.js: 取得報表資料 print.js->Print Server: 透過 WebSocket 送印 Print Server->print.exe: 呼叫 process print.exe->Adobe Reader: 透過 AutoIT\n使用 Adobe DDE\n列印報表 Adobe Reader->Print Spool: 送到 Windows 列印佇列 Print Spool->Printer: 實際列印 Adobe Reader->print.exe: 傳送 DDE 呼叫結果 print.exe->Print Spool: 查詢佇列狀況 Print Spool-->print.exe: 確定沒有文件還在佇列中 print.exe->Print Server: 將執行結果轉成\nExit Code\n結束程式:\n0: 正常\n1: 沒參數\n2: 找不到 Adobe\n3: 不能叫 DDE\n3: 不能印 Print Server->print.js: 回傳成功或失敗訊息 print.js->Application: fulfill 或\nreject 請求 ``` 不過目前 print.exe 只是編譯過的 AutoIT 腳本,似乎沒辦法做到這麼複雜的事,可能要用 C# 重寫一次。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up