简介
@penneo/ipp-printer是一个用于打印东西的npm包,它是基于IPP(Internet Printing Protocol)协议开发的,可以让您轻松地将打印机添加到您的Web应用程序中,让您的用户可以在不打开预览窗口的情况下快速打印。同时,该npm包支持在各种不同的浏览器和操作系统上使用。
安装
您可以在您的项目中使用npm或yarn来安装@penneo/ipp-printer。
使用npm:
npm install @penneo/ipp-printer --save
使用yarn:
yarn add @penneo/ipp-printer
如何使用
要使用@penneo/ipp-printer,您需要创建一个打印机对象,然后调用该对象的print()方法来打印文件。
-- -------------------- ---- ------- ------ - ------- - ---- ---------------------- ----- --------- - --- --------- ---- ------------------------------------------ ----- --- -------- --- ----------------- ----- ------ ------- ------------ ------------ ---------- -- - --------------------- ------------ ---------------- -- - --------------------- --------- ------- ---
上面的代码首先导入了Printer类,然后创建了一个打印机对象。该打印机对象需要一个URL参数,该参数指定连接到打印机的IPP URL。以及一个name参数,它代表打印机的自定义名字。
接下来,我们调用myPrinter的print方法。它需要一个对象作为参数,该对象包含您要打印的数据以及您要打印的数据的内容类型。在这个例子中,我们打印了一条 "Hello World" 信息,这是一个纯文本文件。
在调用print方法之后,您需要使用Promise来处理打印结果。如果打印成功,则控制台显示 "Printing succeeded",否则显示 "Printing failed"。
API文档
Printer类
Printer类是使用@penneo/ipp-printer的主要类。Printer实例表示与服务器连接的打印机。 Printer类的构造函数使用以下选项:
- url: IPP URL,连接到打印机的url地址
- name: 打印机名
以下是Printer
类的示例:
import { Printer } from '@penneo/ipp-printer'; const myPrinter = new Printer({ url: 'http://myprinter.com/printers/myprinter', name: 'My Printer' });
Printer类中有三个常规方法:
Printer.print(options)
该方法是向打印队列添加一个打印任务并开始打印的主要方法。options
参数具有以下属性:
- data: 要打印的数据
- contentType: 要打印的数据的内容类型
以下是如何在 Printer 中调用print方法:
myPrinter.print({ data: 'Hello world', contentType: 'text/plain' }).then(() => { console.log('Printing succeeded.'); }).catch((error) => { console.log('Printing failed:', error); });
Printer.getPrinter()
此方法返回当前打印机的数据。它返回一个Promise对象。
以下是如何在 Printer 中调用getPrinter方法:
myPrinter.getPrinter().then((printer) => { console.log('Printer name:', printer.name); console.log('Printer state:', printer.state); }).catch((error) => { console.log('Could not get the printer:', error); });
Printer.getServer()
此方法返回与打印机连接的服务器的数据。它返回一个Promise对象。
以下是如何在 Printer 中调用getServer方法:
myPrinter.getServer().then((server) => { console.log('Server name:', server.name); }).catch((error) => { console.log('Could not get the server data:', error); });
IPPError类
该类是 @penneo/ipp-printer
使用的错误类型。 它扩展了Error对象,并添加了一个status属性,表示错误的状态码。
以下是 IPPError
类的示例:
-- -------------------- ---- ------- ------ - -------- - ---- ---------------------- --- - ----------------- ----- ------ ------- ------------ ------------ ---------------- -- - ----- --- --------------- --- - ------- ----- ---------- -------------- --- - ----- ------- - -------------------------- -------------- -
IPPError.STATUS_CODES
此属性包含 IPPError 中定义的所有已知状态代码。以下是示例如何访问IPPError.STATUS_CODES的内容:
import { IPPError } from '@penneo/ipp-printer'; console.log(IPPError.STATUS_CODES.clientErrorBadRequest); // 400 console.log(IPPError.STATUS_CODES.successfulOK); // 200
结论
本文介绍了一个npm包 @penneo/ipp-printer,它是一个用于打印东西的npm包,基于IPP协议开发的。我们详细讨论了如何安装和使用该npm包,我们还介绍了完整的API,包括Printer类和IPPError类。此npm包的使用非常简单,易于使用。因此,如果你想让你的Web应用程序支持打印功能,你可以考虑使用@penneo/ipp-printer包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600566b381e8991b448e2fe2