Отправить текст в порт с помощью Javascript

Недавно у меня появился новый принтер (в частности, HP Photosmart C6380, если это помогает), который позволяет мне отправлять текст на порт 9100 для печати. Telnet-подключение к нему и ввод текста для печати работает нормально, но мне интересно, могу ли я создать веб-страницу, используя HTML и Javascript, которые могут отправлять текст прямо на нее.

В настоящее время я использую код из статьи Межсайтовая печать (pdf),, но недостатком является то, что при распечатке он показывает весь запрос POST, а не только текст.

Итак, мой вопрос к вам: могу ли я отправить только содержимое запроса POST или удалить ненужные символы, используя только HTML и Javascript?

Примечание. Причина, по которой он ограничен HTML и Javascript, заключается в том, что я надеюсь, что смогу использовать его на iPhone или iPod Touch.

Редактировать: Похоже, что нет способа избавиться от заголовков HTTP, поэтому теперь мой вопрос: могу ли я создать собственный запрос POST, который минимизирует то, что отправляется в заголовке? Например, могу ли я не отправлять пользовательский агент, поскольку принтеру все равно, что это за пользовательский агент?

Почему вы против создания сценария на стороне сервера для обработки вашего запроса и пересылки данных на принтер? Это как пара строк perl ...

rmeador 22.01.2009 22:04

Я хочу избежать настройки сервера и пересылки данных через посредника. Это в основном для моего личного использования, когда я подключен к своей домашней сети. Я представляю себе локальную веб-страницу с текстовым полем, которое я могу ввести, нажать «Отправить», и он будет распечатан.

Sean 22.01.2009 22:24

Кроме того, я предполагаю загрузить это на свой iPod Touch с помощью такого приложения, как Air Sharing, чтобы я мог набрать текст и распечатать его, поскольку у него нет такой возможности.

Sean 22.01.2009 22:25

Но если это решение для вашей домашней сети, что мешает вам настроить только локально доступный веб-сервер? Или даже написать базовый вариант самостоятельно - просто отбросьте заголовок (все до \ r \ n \ r \ n), передайте остальное на порт вашего принтера и отправьте в браузер сообщение «204 No Content»?

Christoph 22.01.2009 23:55

Ничто не мешает мне настроить сервер, я просто надеялся, что смогу сделать что-то полностью самодостаточным только на HTML и Javascript.

Sean 23.01.2009 00:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
5
3 124
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете выполнять HTTP-запросы из JS, поэтому у вас всегда есть HTTP-заголовок, независимо от порта, на который вы отправляете. Итак, ответ: нет.

Ответ принят как подходящий

Нет, в клиентском JavaScript невозможно избавиться от заголовков HTTP. Для этого вам необходимо настроить серверный скрипт, который затем установит фактическое соединение с портом принтера.

Редактировать: Серверный сценарий не будет отправлять HTTP-запрос на ваш принтер: он должен открыть новый сокет и, таким образом, может полностью контролировать то, что отправляется!

Могу ли я создать собственный запрос POST в Javascript на стороне клиента, чтобы минимизировать количество распечатываемой ненужной информации?

Sean 22.01.2009 21:54

Да, вы можете отправлять пользовательские запросы через XMLHttpRequest (также называемый AJAX). Но в этом нет необходимости: используйте простую старую HTML-форму (с method = "POST") и язык на стороне сервера по вашему выбору (PHP, ASP.NET, Perl, Python, ...). Afaik все они могут читать переменные POST и создавать сокеты ...

Christoph 22.01.2009 22:03

Другие вопросы по теме