Используйте cURL для отправки веб-формы на печать

Используйте cURL для отправки веб-формы на печать

Я использую 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">

Далее следует поле идентификатора пользователя, количество копий и т. д.

<form action="#" method="post">

Вот кнопка «Отправить».

<button type="button" onclick="SubmitForm();">Submit Job</button>

Вотисходный коддля SubmitForm()функции. Функция начинается на строке 144 и заканчивается на строке 482.

Когда я отправляю форму с помощью cURL и позже запускаю, echo $?она 0не возвращает ошибку. Я пробовал использовать два других actionURL, а также URL самой страницы. URL в команде выше взят из выполнения проверки элемента и просмотра вкладки сети во время отправки.

Я думаю, проблема в следующем: «Примечание: пожалуйста, дождитесь окна подтверждения отправки вакансии, прежде чем переходить на другую страницу. В противном случае вакансия будет удалена».

Я отключил javascript в своем браузере. Затем я попытался отправить, но отправка не загрузилась. Javascript, запущенный на странице отправки, очевидно, является необходимым условием для отправки. Есть ли способ обойти это? Любые комментарии или идеи приветствуются. Спасибо

решение1

Это всплывающее окно с сообщением «Задание отправлено на печать» — этоОповещение JavaScriptвсплывающее окно, и нет возможности подтвердить оповещение через JS, хотя вы можете переопределить действие оповещения по умолчанию - см.здесь.

Я вижу, что вы пытались получить URL действия из формы, и это дало мне идею - можете ли вы найти определение функции, которую вызывает кнопка отправки? onclickДействие кнопки отправки называется SubmitForm(), поэтому посмотрите, сможете ли вы найти его в исходном коде и воспроизвести в cURL.

Связанный контент