IPP for the browse and node
npm install @c_phillips/ipp-browsersh
$ npm install @cphillips/ipp-browser --save
`
#### yarn
`sh
$ yarn add @cphillips/ipp-browser
`
API
$3
To interact with a printer, create a Printer object.
options:
* charset - Specifies the value for the 'attributes-charset' attribute of requests. Defaults to utf-8.
* language - Specifies the value for the 'attributes-natural-language' attribute of requests. Defaults to en-us.
* uri - Specifies the value for the 'printer-uri' attribute of requests. Defaults to ipp://+url.host+url.path.
* version - Specifies the value for the 'version' attribute of requests. Defaults to 2.0.
$3
Converts an IPP message object to IPP binary.
* 'operation' - There are many operations defined by IPP. See: /lib/types.ts.
* 'message - A javascript object to be serealized into an IPP binary message.
$3
Returns the heades to be included in your request
* 'headers' - The headers you want to add to the request.
Usage/Example
#### Create a print request
`javascript
import axios from 'axios'
import PDFDocument from 'pdfkit'
import concat from 'concat-stream'
import Printer from './lib/printer'var doc = new PDFDocument({ margin: 5 });
doc.pipe(concat(function (data: any) {
let url = "http://192.168.4.62:631/ipp/print"
let printer = new Printer(url);
let msg = {
"operation-attributes-tag": {
"document-format": "application/pdf",
},
data: data,
};
axios
.post(url, printer.encodeMsg("Print-Job", msg), {
responseType:"arraybuffer",
headers: printer.getHeaders(),
})
.then((response:any) => {
console.log(printer.decodeMsg(response.data))
});
}))
``