
私は Xubuntu 16.04 を使用しています。デフォルト グループ アカウント設定で Xerox 7545 のドライバーを正しく設定して印刷することができませんでした。ただし、ドキュメントを PDF として保存することで印刷できます。その後、ブラウザーでプリンターの IP アドレスにアクセスできます。そこで、印刷用の Web フォームを送信できます。
印刷プロセスをより効率的にするために、cURL コマンドをスクリプトに統合したいと思います。cURL 構文は適切であると確信しています。(別のプリンターに正常に印刷できました。)
curl -F "frmFileUpload=@/home/brock/Desktop/example.pdf" -F "frmUserId=####" http://###.##.##.###/print/print.php?submitted=true
しかし、印刷ジョブが削除され続けているように思います。印刷ジョブを送信する Web ページに、次のメッセージが表示されます。「注意: 別のページに移動する前に、ジョブ送信の確認ウィンドウを待ってください。そうしないと、ジョブが削除されます。」
Web ページで送信すると、ページが読み込まれます (フォームを送信するためのページ)。次に、小さなダイアログ ボックスがポップアップ表示されます。
送信ページには 2 つの<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
。ページ自体の URL だけでなく、他の 2 つの URL を使用してみましたaction
。上記のコマンドの URL は、送信中に要素の検査を実行し、ネットワーク タブを表示した結果です。
問題は次のとおりだと思います: 「注意: 別のページに移動する前に、ジョブ送信の確認ウィンドウを待ってください。そうしないと、ジョブが削除されます。」
ブラウザで JavaScript を無効にしました。その後、送信しようとしましたが、送信が読み込まれませんでした。送信ページで JavaScript が実行されていることは、送信に必須であることは明らかです。これを回避する方法はありますか? コメントやアイデアがあれば、ぜひお寄せください。ありがとうございます。
答え1
「ジョブが印刷のために送信されました」というポップアップはJavaScript アラートポップアップが表示され、JS経由でアラートを確認する方法はありませんが、デフォルトのアラートアクションを上書きすることはできます。ここ。
フォームからアクション URL を取得しようとしていることがわかりました。そこからヒントを得ました。送信ボタンが呼び出す関数の関数定義を見つけられますか? 送信ボタンのonclick
アクションは と呼ばれますSubmitForm()
。ソース コード内で見つけて、cURL で再現できるかどうか確認してください。