Печать файлов с определенными настройками из веб-приложения - PullRequest
0 голосов
/ 25 февраля 2019

Для клиента я создаю мобильное приложение, в котором пользователи могут выбирать между несколькими фоторамками.Они могут добавлять фотографии в эти кадры, используя свои мобильные устройства.Когда они будут закончены, пользователь будет отправлен на экран оплаты.Когда заказ будет оплачен, система создаст QR-код.С этим QR-кодом они могут перейти к одному из наших физических столбов, где они могут сканировать QR-код.Столб имеет компьютер (Windows 10), QR-сканер и подключенный принтер (Mitsubishi D90).Система проверяет заказ и запускает задание на печать.На данный момент на компьютере колонны запущен браузер в режиме киоска.

enter image description here

Проблема

Рамкимогут иметь разные размеры:

  • 5 ”x 15” x2 (принтер разрезает рамку пополам, чтобы получить два отпечатка)
  • 10 ”x 15”
  • 15 ”x 10”

Когда я использую собственное окно печати, кажется, все работает нормально.Мои рамки отлично вписываются в страницу.Я могу выбрать разные размеры страницы и использовать внутренний резак.Однако я хочу автоматизировать весь этот процесс.Система должна иметь возможность переключаться между различными размерами и должна помещать задание непосредственно в очередь.

Подход № 1

Поскольку компьютер работаетВ окне браузера моей первой мыслью было создание приложения NodeJS, которое может извлекать кадр с сервера и отправлять задание прямо в очередь.Я посмотрел на Node-Printer .На моем Macbook все работало как чудо (используя CUPS), но, к сожалению, на столпах работает Windows.Я пытался настроить все на работу так же, как на моем Macbook, но не смог обработать задания на печать.Я получил сообщение, что задание было отправлено на мой принтер, хотя.Я потратил несколько дней, пытаясь заставить это работать, но у узла-принтера, работающего в Windows, есть много ограничений.Я также попытался создать раздел Ubuntu, чтобы увидеть, работает ли он оттуда, но это привело к той же проблеме.

Подход № 2

Моя вторая мысль была о настройкепринтер как облачный принтер Google.Таким образом, я могу перенести задания со своей веб-страницы прямо в API печати.Однако я обнаружил много ограничений, когда дело доходит до выбора тех же настроек, что и я, используя собственное окно печати.Слева окно родной печати, справа окно печати Google.

enter image description here

Я также пытался получить настройки принтера с помощью Printer Lookup API .Я вижу много настроек (также размеров страниц), но каждый раз, когда я пытаюсь что-то напечатать, отпечатки просто не совпадают.Рамки слишком маленькие, слишком большие, неправильно повернуты, странные поля и т. Д. Я перепробовал 100 различных отпечатков со всеми возможными комбинациями настроек, но не было даже одного, близкого к тому, что я получаю при использовании собственного диалогового окна печати. ​​

Я также попробовал Electron, но не смог указать какие-либо настройки.Я предполагаю, что это также использует решение, подобное узлу-принтеру.

Я действительно не знаю, где искать и как это исправить.Я провел слишком много дней, пытаясь понять, что происходит.Есть ли другие (хорошие) подходы, о которых я не думал?Есть ли способ получить те же настройки в Google Cloud Print?

TL; DR: Нужна помощь для отправки заданий на печать в очередь из окна браузера (или оболочки, как Electron).Может быть через API, такой как Google Cloud Print, или напрямую через USB.

1 Ответ

0 голосов
/ 28 марта 2019

Попробуйте Google Cloud Print и задайте свои собственные настройки при запуске печати. ​​

https://developers.google.com/cloud-print/docs/appInterfaces#submit

См. Выше документ.И когда вы отправляете работу, добавьте дополнительный параметр, называемый «тикет».И укажите размер носителя в билете.

И это выглядит так:

ticket :   {"version":"1.0","print":{"media_size":{"width_microns":210000,"height_microns":297000,"is_continuous_feed":false,"vendor_id":"ISO_A4"}}}

(^ укажите размеры, которые вы хотите напечатать по высоте и ширине)

Стандартные размеры вы можете найти в следующем pdf в разделе 4.2:

http://ftp.pwg.org/pub/pwg/cloud/white/Google_GCP/CDD_2013-11-06.pdf

Попробуйте использовать другую комбинацию высоты и ширины для желаемых результатов

...