nodejs IIP + pdfKit поток печатает сырой pdf - PullRequest
0 голосов
/ 04 декабря 2018

Я занимаюсь разработкой веб-службы nodejs Express.Мне нужно печатать прямо на сетевом принтере (который поддерживает IPP, только что проверил).Я следовал

https://github.com/williamkapke/ipp

Невозможно распечатать с узлом js ipp модуль

Как передать поток с помощью pdfkit с узлом js

и я могу запрашивать принтеры, получать информацию о принтере и распечатывать текстовый файл.У меня возникает проблема при печати PDF, созданного с помощью pdfKit.Если я использую процедуру:

[...]

doc.on('end', function () {
    var printer = ipp.Printer("ipp://EPSON3D096F.local.:631/ipp/print");
    var file = {
        "operation-attributes-tag":{
        "requesting-user-name": "User",
        "job-name": "Print Job",
        "document-format": "application/octet-stream"
        },
        data: Buffer.concat(buffers)
    };

    printer.execute("Print-Job", file, function (err, res) {
        console.log("Printed: "+res.statusCode);
    });
});

[...]

принтер печатает необработанное содержимое PDF, например,

% PDF-1,3% ���� 5 0 obj << / Тип / Страница / Родительский 1 0 R / MediaBox [0 0 350 200] / Содержание 3 0 R / Ресурсы 4 0 R </p>

endobj 4 0 obj << / ProcSet [/ PDF / Text / ImageB / ImageC / ImageI] / Font << / F2 6 0 R </p>

endobj 7 0 obj << / Producer(PDFKit) / Creator (PDFKit) [...] </p>

Весь PDF довольно длинный, как вы можете догадаться.

Итак, что можетя делаю, чтобы сообщить принтеру, что поток октетов содержит PDF?

Я тестировал его с EPSOWF7620 и Brother820NWB.

Приложение AFAIK / поток октетов должен интерпретироваться принтером, угадываяправильный формат файла.

Спасибо

...