是否可以从浏览器发送ipp打印作业?

时间:2012-03-16 02:33:17

标签: javascript cross-domain ipp-protocol

是否可以使用ajax从浏览器发送IPP打印请求?

我认为它看起来像这样:

// Data to be sent
var data = "Testing\nTesting\n1\n2\n3";

// Jquery AJAX call
$.ajax("ipp://<printerip>:631", {
    'type': 'POST',
    'data': data,
    'complete': function(jqXHR, textStatus){
        alert('Result:'+textStatus)
    }
}); 

唯一的问题是我得到了:

XMLHttpRequest cannot load ipp://<printerip>:631. 
Cross origin requests are only supported for HTTP.

有没有解决这个问题?或者这根本不可能?

2 个答案:

答案 0 :(得分:2)

  • AJAX和IPP唯一的共同点是HTTP
  • IPP消息字节编码不是XML或JSON编码
  • 您需要将XML / JSON转换为正确的IPP(老实说:没有意义)

https://www.npmjs.com/package/ipp有一个纯JavaScript IPP实现(不确定它是否在浏览器中运行)

答:使用 ajax 发送IPP请求不可能

答案 1 :(得分:0)

有些Chrome扩展程序可以触发IPP打印。由于chrome没有为此提供任何特定的API,因此我认为仅靠前端技术就可以触发IPP打印机。