Cetak file dengan pengaturan khusus dari aplikasi web

Untuk klien, saya sedang membuat aplikasi seluler di mana pengguna dapat memilih di antara beberapa bingkai foto. Mereka dapat menambahkan foto ke bingkai ini menggunakan perangkat seluler mereka. Setelah selesai, pengguna akan diarahkan ke layar pembayaran. Ketika pesanan dibayar, sistem akan membuat kode QR. Dengan kode QR tersebut mereka dapat menuju ke salah satu pilar fisik kami di mana mereka dapat memindai kode QR tersebut. Pilar memiliki komputer (Windows 10), pemindai QR, dan printer yang terhubung (Mitsubishi D90). Sistem memeriksa pesanan dan memulai pekerjaan pencetakan. Untuk saat ini komputer pilar menjalankan browser dalam mode kios.

masukkan deskripsi gambar di sini

Masalahnya

Bingkai dapat memiliki ukuran berbeda:

  • 5” x 15” x2 (printer memotong bingkai menjadi dua, sehingga Anda memiliki dua cetakan)
  • 10” x 15”
  • 15” x 10”

Saat saya menggunakan jendela cetak asli, semuanya tampak berfungsi dengan baik. Bingkai saya pas di halaman dengan sempurna. Saya dapat memilih ukuran halaman yang berbeda dan dapat menggunakan pemotong internal. Namun saya ingin mengotomatiskan seluruh proses ini. Sistem harus dapat beralih di antara ukuran yang berbeda dan harus dapat memasukkan pekerjaan secara langsung ke dalam antrean.

Pendekatan #1

Karena komputer menjalankan jendela browser, pikiran pertama saya adalah menyiapkan aplikasi NodeJS yang dapat mengambil frame dari server dan mendorong pekerjaan langsung ke antrian. Saya memeriksa Node-Printer. Semuanya bekerja dengan baik di Macbook saya (menggunakan CUPS) tetapi sayangnya pilarnya menjalankan Windows. Saya mencoba mengatur semuanya agar berfungsi dengan cara yang sama seperti pada Macbook saya, tetapi saya tidak dapat memproses pekerjaan pencetakan. Saya menerima pesan bahwa pekerjaan telah dikirim ke printer saya. Saya telah menghabiskan beberapa hari untuk mencoba membuat ini berfungsi tetapi printer node yang berjalan di Windows memiliki banyak keterbatasan. Saya juga mencoba membuat partisi Ubuntu untuk melihat apakah partisi tersebut berfungsi dari sana tetapi menghasilkan masalah yang sama.

Pendekatan #2

Pikiran kedua saya adalah menyiapkan printer sebagai Google Cloud Printer. Dengan begitu saya bisa mendorong pekerjaan dari halaman web saya langsung ke Print API. Namun saya menemukan banyak keterbatasan dalam memilih pengaturan yang sama seperti yang saya lakukan saat menggunakan jendela cetak asli. Di sebelah kiri adalah jendela pencetakan asli, di sebelah kanan adalah jendela Google Print.

masukkan deskripsi gambar di sini

Saya juga mencoba mengambil setelan printer menggunakan Printer Lookup API. Saya dapat melihat banyak pengaturan (juga ukuran halaman) tetapi setiap kali saya mencoba mencetak sesuatu, hasil cetakannya tidak sama. Bingkai terlalu kecil, terlalu besar, salah diputar, margin aneh, dll. Saya mencoba 100 cetakan berbeda dengan semua kombinasi pengaturan yang mungkin, namun tidak ada satu pun yang mendekati apa yang saya dapatkan saat menggunakan dialog cetak asli.

Saya juga mencoba Electron tetapi saya tidak dapat menentukan pengaturan apa pun. Saya berasumsi ini juga menggunakan solusi seperti node-printer.

Saya benar-benar tidak tahu lagi harus mencari ke mana atau bagaimana cara memperbaikinya. Saya telah menghabiskan terlalu banyak hari untuk mencoba mencari tahu apa yang terjadi. Apakah ada pendekatan (baik) lain yang tidak terpikirkan oleh saya? Apakah ada cara untuk mendapatkan pengaturan yang sama di Google Cloud Print?

TL;DR: Butuh bantuan untuk mendorong pekerjaan pencetakan dalam antrian dari jendela browser (atau pembungkus seperti Electron). Bisa melalui API seperti Google Cloud Print atau langsung USB.


person Rover    schedule 25.02.2019    source sumber


Jawaban (1)


Coba Google Cloud Print dan berikan pengaturan Anda sendiri saat Anda memicu pencetakan.

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

Lihat dokumen di atas. Dan ketika Anda mengirimkan pekerjaan, tambahkan parameter tambahan yang disebut "tiket". Dan tentukan ukuran media di tiket.

Dan tampilannya seperti ini:

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

(^tentukan dimensi yang ingin dicetak tinggi dan lebarnya)

Anda dapat menemukan dimensi standar dalam pdf berikut pada topik 4.2:

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

Coba gunakan kombinasi tinggi dan lebar yang berbeda untuk hasil yang diinginkan

person Anirudh Saria    schedule 28.03.2019