
我使用的是 Xubuntu 16.04。我無法正確配置 Xerox 7545 的驅動程式以使用預設群組帳戶設定進行列印。不過,我可以透過將文件儲存為 PDF 來進行列印。然後我可以在瀏覽器中存取印表機的IP位址。我可以在那裡提交一個網頁表單進行列印。
我想將 cURL 命令整合到腳本中,以使列印過程更有效率。我確信我的 cURL 文法很好。 (我能夠成功列印到另一台印表機。)
curl -F "frmFileUpload=@/home/brock/Desktop/example.pdf" -F "frmUserId=####" http://###.##.##.###/print/print.php?submitted=true
但是,我相信我的列印作業不斷被刪除。在您提交列印作業的網頁上,有這樣的消息:“注意:請等待作業提交確認窗口,然後再導航到其他頁面。否則,作業將被刪除。”
當我在網頁上提交時,頁面會載入(用於提交表單)。然後彈出一個小對話框:
提交頁面有兩個<form></form>
部分。下麵包含文件上傳欄位。
<form enctype="multipart/form-data" action="/upload/xerox.set" method="post">
下麵包含使用者 ID 欄位、份數等。
<form action="#" method="post">
這是提交按鈕。
<button type="button" onclick="SubmitForm();">Submit Job</button>
這是原始碼為SubmitForm()
函數。函數從第 144 行開始,到第 482 行結束。
當我使用 cURL 提交表單並稍後運行時,echo $?
它0
不會返回任何錯誤。我嘗試過使用其他兩個action
URL 以及頁面本身的 URL。上面命令中的 URL 來自執行檢查元素並在提交期間查看網路標籤。
我認為問題是這樣的:“注意:請等待作業提交確認窗口,然後再導航到另一個頁面。否則,作業將被刪除。”
我在瀏覽器中禁用了 JavaScript。然後我嘗試提交,但提交內容無法載入。提交頁面上執行的Javascript顯然是提交的必要條件。有沒有解決的辦法?任何意見或想法表示讚賞。謝謝
答案1
彈出視窗顯示「作業已提交列印」是JavaScript 警報彈出窗口,並且無法透過 JS 確認警報,儘管您可以覆蓋預設警報操作 - 請參閱這裡。
我看到您試圖從表單中獲取操作 URL,這給了我一個想法 - 您能找到提交按鈕調用的函數的函數定義嗎?提交按鈕的onclick
操作名為SubmitForm()
,因此請查看是否可以在原始程式碼中找到它並在 cURL 中重現它。