我使用pdfkit
和ipp
库将PDF打印到网络打印机(Brother HL-L2360D series).
以下是代码
const ipp = require('ipp');
const concat = require('concat-stream');
const PDFDocument = require('pdfkit');
const doc = new PDFDocument({ margin: 0 });
doc.text('Testing Printing Functionality. Sent By Developer', 0, 780);
doc.pipe(concat(function (pdf) {
const printer = ipp.Printer('http://printer.sandbox.com/ipp/print');
const msg = {
'operation-attributes-tag': {
'requesting-user-name': 'William',
'job-name': 'My Test Job',
'document-format': 'application/octet-stream'
},
data: pdf
};
printer.execute('Print-Job', msg, function (err, res) {
console.log({ err, res });
});
}));
doc.end();
但它打印了一些随机字符
当我通过发送Get-Printer-Attributes
操作判断打印机配置时.它返回以下受支持的有效文档列表.我看它没有application/pdf
.出于这个原因,我将application/octet-stream
作为document-format
发送.
{
"version": "2.0",
"statusCode": "successful-ok",
"id": 31208186,
"operation-attributes-tag": {
"attributes-charset": "utf-8",
"attributes-natural-language": "en-us"
},
"printer-attributes-tag": {
"copies-default": 1,
"finishings-default": "none",
"printer-info": "en\u001eBrother HL-L2360D series",
"printer-make-and-model": "en\u001eBrother HL-L2360D series",
"ipp-versions-supported": [
"1.0",
"1.1",
"2.0"
],
"operations-supported": [
"Print-Job",
"Validate-Job",
"Create-Job",
"Send-Document",
"Cancel-Job",
"Get-Job-Attributes",
"Get-Jobs",
"Get-Printer-Attributes",
"Identify-Printer"
],
"multiple-document-jobs-supported": false,
"multiple-operation-time-out": 150,
"natural-language-configured": "en",
"charset-configured": "utf-8",
"charset-supported": "utf-8",
"document-format-supported": [
"application/octet-stream",
"image/urf",
"image/pwg-raster"
],
"document-format-default": "application/octet-stream",
"printer-is-accepting-jobs": false,
"queued-job-count": 1,
"pdl-override-supported": "attempted",
"printer-up-time": 14285,
"compression-supported": "none",
"color-supported": false,
"landscape-orientation-requested-preferred": 5,
"marker-colors": "en\u001e#000000",
"marker-high-levels": 100,
"marker-levels": 100,
"marker-low-levels": 10,
"marker-names": "en\u001eBK",
"marker-types": "toner",
"media-bottom-margin-supported": 432,
"media-left-margin-supported": 432,
"media-right-margin-supported": 432,
"media-source-supported": [
"auto",
"manual",
"tray-1"
],
"media-top-margin-supported": 432,
"media-type-supported": [
"stationery",
"stationery-lightweight",
"stationery-heavyweight",
"stationery-cover",
"envelope",
"envelope-heavyweight",
"envelope-lightweight",
"stationery-recycled",
"labels",
"stationery-bond"
]
}
}
我不确定我做错了什么.有没有人能帮帮我?
我试着换了document-format
元.已try 先创建作业(job),然后再执行它.我也试过使用iip://printer.sandbox.com/ipp/print
,问题仍然是一样的.