Клиент печати приложения Google Chrome

Возможно ли, чтобы приложение Google Chrome печатало без звука, например, когда Chrome работает в режиме киоска?

--kiosk --kiosk-priting

person Nuno Santos    schedule 12.03.2014    source источник
comment
Что вы имеете в виду под печатью? Распечатать на принтер? Распечатать на console?   -  person 0xcaff    schedule 12.03.2014
comment
Да, распечатать на принтер. Что-то вроде этого ссылка, но как приложение Google Chrome. Спасибо!   -  person Nuno Santos    schedule 12.03.2014
comment
Вы хотите печатать со страницы фона/события, верно?   -  person 0xcaff    schedule 12.03.2014
comment
Именно, со страницы фона/события на принтер по умолчанию.   -  person Nuno Santos    schedule 12.03.2014
comment
Есть ли возможность добавить в среду приложение/устройство, которое может прослушивать события WebSocket?   -  person tresf    schedule 27.10.2016


Ответы (3)


Когда вы печатаете что-то в режиме киоска, все автоматически печатается на принтере по умолчанию, без вывода сообщений. Просто вызовите print() в контексте страницы, которую вы хотите напечатать. Если вы хотите печатать со страницы фона/события, вам нужно будет сделать что-то вроде следующего:

// ...
function closePrint () {
  document.body.removeChild(this.__container__);
}

function setPrint () {
  this.contentWindow.__container__ = this;
  this.contentWindow.onbeforeunload = closePrint;
  this.contentWindow.onafterprint = closePrint;
  this.contentWindow.print();
}

function printPage (sURL) {
  var oHiddFrame = document.createElement("iframe");
  oHiddFrame.onload = setPrint;
  oHiddFrame.style.visibility = "hidden";
  oHiddFrame.style.position = "fixed";
  oHiddFrame.style.right = "0";
  oHiddFrame.style.bottom = "0";
  oHiddFrame.src = sURL;
  document.body.appendChild(oHiddFrame);
}
//...

Просто вызовите printPage, передав URL, чтобы напечатать что-нибудь.

Код из MDN

person 0xcaff    schedule 12.03.2014
comment
Хорошо, это полезно для фонового события, но моя проблема в том, что диалог предварительного просмотра печати открыт и требует действия пользователя для подтверждения печати. Когда вы используете chrome в --kiosk --kiosk-priting печать запускается автоматически. Я хочу сделать это, но в приложении Chrome Google. - person Nuno Santos; 12.03.2014
comment
Запустите Chrome с помощью --kiosk и --kiosk-priting, а затем откройте приложение и распечатайте. Это работает, верно? - person 0xcaff; 12.03.2014
comment
Да, это работает, но это то, чего я не хочу, потому что это еще одна вещь, которую должен сделать пользователь. Я искал что-то вроде веб-сокетов и сетевых коммуникаций, как указано здесь stackoverflow.com/questions/19217687/ Спасибо! - person Nuno Santos; 12.03.2014
comment
Вы просто настраиваете удаленный принтер и устанавливаете его по умолчанию. Веб-сокеты не требуются. - person 0xcaff; 12.03.2014
comment
Как это сделать, чтобы избежать подтверждения предварительного просмотра? - person Nuno Santos; 13.03.2014
comment
Запустите хром с флагами --kiosk и --kiosk-priting! - person 0xcaff; 13.03.2014

Я нашел временное (может быть, не временное :)) решение для этой темы:

РЕШЕНИЕ ДЛЯ ПРИЛОЖЕНИЯ CHROME

  1. Установите свое приложение в хром

  2. Создайте ярлык из этого приложения на рабочий стол.

  3. Щелкните правой кнопкой мыши> Свойства> Изменить целевое текстовое поле, как показано ниже (вы добавите параметр «--kiosk-printing»)

    Перед редактированием: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Профиль 2" --app-id=eoaefbbbpgcbhgeilphgobiicboopknp

    После редактирования: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --kiosk-printing --profile-directory="Profile 2" --app-id =eoaefbbbpgcbhgeilphgobiicboopknp

  4. Абсолютно перезапустите хром для эффекта (закройте все вкладки и окна в хроме)
  5. Попробуйте распечатать

  6. Если вы хотите удалить верхний и нижний колонтитулы по умолчанию (адрес страницы и дату): откройте обычную хромированную печать что-нибудь> в предварительном просмотре принтера> Дополнительные настройки> снимите флажок «Верхний и нижний колонтитулы». Chrome всегда будет помнить эти настройки.

(На самом деле хром должен предоставить это свойство и в manifest.json, но я пока не смог найти)

person kadir950    schedule 07.09.2015

У меня есть настройка:

  1. C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --kiosk-printing --profile-directory=Профиль 1

  2. Тестирование веб-сайта с библиотекой jquery https://printjs.crabbly.com/ Принтер Chrome Popup автоматически закрывается и не печатает из..

person Bang Andre    schedule 30.11.2020