如何使用chrome.printerProvider API

时间:2017-04-18 13:22:38

标签: javascript google-chrome google-chrome-extension printing

我找到了开发者链接; https://developer.chrome.com/extensions/printerProvider

但是,无法理解如何使用它。

我试图打印当前页面而不显示打印弹出窗口。

为了能够实现它,我看起来是打印机供应商,但没有成功。

的manifest.json

{
  "name": "Print this page",
  "description": "Adds a print button to the browser.",
  "version": "1.1",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
    "tabs", "http://*/*", "https://*/*", "printerProvider"
  ],


  "browser_action": {
    "default_icon": "icon.png"
  },
  "manifest_version": 2
}

background.js

chrome.printerProvider.onGetCapabilityRequested.addListener(function callback) {
    alert(callback);
});


chrome.printerProvider.onGetPrintersRequested.addListener(function callback){
    console.log(callback);
});

但是,这些回调都没有返回。

如何使用/触发这些事件?

3 个答案:

答案 0 :(得分:0)

您可以查看sample codemanifest.jsontest.js。同样基于此related SO post,请注意此API不允许您修改现有打印机的打印设置。它是一种"驱动程序"界面为Chrome提供新的打印机。

答案 1 :(得分:0)

当用户点击pritn / Ctl + P

时,Chrome会调用回调api
  • onGetPrintersRequested()这应该返回打印机列表
  • 回调中的
  • onGetCapabilityRequested()您需要以CDD格式传递打印机功能
  • 当用户选择该打印机并点击打印对话框中的打印时,会调用
  • onPrintRequested()

所有这些回调方法都需要在background.js

中实施

和 您提供的回叫功能不正确。有关回调签名的信息,请参阅文档

答案 2 :(得分:-1)

不幸的是,我没有任何方法在没有弹出窗口的情况下打印页面。但是,您可以使用

打印弹出窗口
chrome.tabs.executeScript({
code: 'window.print()'
});