สำหรับลูกค้า ฉันกำลังสร้างแอปบนอุปกรณ์เคลื่อนที่ซึ่งผู้ใช้สามารถเลือกระหว่างกรอบรูปหลายกรอบได้ พวกเขาสามารถเพิ่มรูปภาพลงในเฟรมนี้ได้โดยใช้อุปกรณ์เคลื่อนที่ เมื่อดำเนินการเสร็จสิ้น ผู้ใช้จะถูกส่งไปยังหน้าจอการชำระเงิน เมื่อชำระเงินตามคำสั่งซื้อแล้ว ระบบจะสร้างรหัส QR ด้วยโค้ด QR นั้น พวกเขาสามารถไปที่หนึ่งในเสาหลักทางกายภาพของเรา ซึ่งพวกเขาสามารถสแกนโค้ด QR ได้ เสามีคอมพิวเตอร์ (Windows 10) เครื่องสแกน QR และเครื่องพิมพ์เชื่อมต่ออยู่ (Mitsubishi D90) ระบบตรวจสอบคำสั่งซื้อและเริ่มงานพิมพ์ ขณะนี้คอมพิวเตอร์หลักกำลังใช้งานเบราว์เซอร์ในโหมดคีออสก์
ปัญหา
เฟรมอาจมีขนาดแตกต่างกัน:
- 5” x 15” x2 (เครื่องพิมพ์จะตัดเฟรมลงครึ่งหนึ่งเพื่อให้คุณมีงานพิมพ์สองอัน)
- 10” x 15”
- 15” x 10”
เมื่อฉันใช้หน้าต่างการพิมพ์ดั้งเดิม ดูเหมือนว่าทุกอย่างจะทำงานได้ดี เฟรมของฉันพอดีกับหน้าอย่างสมบูรณ์แบบ ฉันสามารถเลือกขนาดหน้าที่แตกต่างกันและสามารถใช้เครื่องตัดภายในได้ อย่างไรก็ตาม ฉันต้องการให้กระบวนการทั้งหมดนี้เป็นแบบอัตโนมัติ ระบบควรจะสามารถสลับไปมาระหว่างขนาดต่างๆ และควรจะสามารถผลักงานเข้าไปในคิวได้โดยตรง
แนวทาง #1
เนื่องจากคอมพิวเตอร์ใช้หน้าต่างเบราว์เซอร์ ความคิดแรกของฉันคือตั้งค่าแอปพลิเคชัน NodeJS ที่สามารถดึงเฟรมจากเซิร์ฟเวอร์และผลักงานไปที่คิวโดยตรง ฉันตรวจสอบ Node-Printer แล้ว ทุกอย่างทำงานได้อย่างมีเสน่ห์บน Macbook ของฉัน (โดยใช้ CUPS) แต่น่าเสียดายที่หลักๆ นั้นใช้ Windows ฉันพยายามตั้งค่าทุกอย่างให้ทำงานแบบเดียวกับที่ทำบน Macbook ของฉัน แต่ฉันไม่สามารถรับงานพิมพ์มาดำเนินการได้ ฉันได้รับข้อความว่างานถูกส่งไปยังเครื่องพิมพ์ของฉันแล้ว ฉันใช้เวลาหลายวันในการพยายามทำให้สิ่งนี้ใช้งานได้ แต่เครื่องพิมพ์โหนดที่ทำงานบน Windows มีข้อจำกัดมากมาย ฉันยังพยายามสร้างพาร์ติชัน Ubuntu เพื่อดูว่าใช้งานได้หรือไม่ แต่ส่งผลให้เกิดปัญหาเดียวกัน
แนวทาง #2
ความคิดที่สองของฉันคือการตั้งค่าเครื่องพิมพ์เป็นเครื่องพิมพ์ Google Cloud ด้วยวิธีนี้ ฉันสามารถส่งงานจากหน้าเว็บของฉันไปยัง Print API ได้โดยตรง อย่างไรก็ตาม ฉันค้นพบข้อจำกัดมากมายในการเลือกการตั้งค่าเดียวกันกับที่ฉันใช้หน้าต่างการพิมพ์แบบเนทิฟ ทางด้านซ้ายคือหน้าต่าง Native Print ทางด้านขวาคือหน้าต่าง Google Print
ฉันยังพยายามดึงข้อมูลการตั้งค่าเครื่องพิมพ์โดยใช้ API การค้นหาเครื่องพิมพ์ ฉันสามารถเห็นการตั้งค่ามากมาย (รวมถึงขนาดหน้าด้วย) แต่ทุกครั้งที่ฉันพยายามพิมพ์บางอย่าง งานพิมพ์ก็ไม่เหมือนกัน เฟรมมีขนาดเล็กเกินไป ใหญ่เกินไป หมุนผิด ขอบแปลก ฯลฯ ฉันลองพิมพ์ 100 แบบด้วยการตั้งค่าที่เป็นไปได้ทั้งหมด แต่ไม่มีแม้แต่รายการที่ใกล้เคียงกับสิ่งที่ฉันได้รับเมื่อใช้กล่องโต้ตอบการพิมพ์แบบเนทีฟ
ฉันลองใช้ Electron แล้ว แต่ไม่สามารถระบุการตั้งค่าใดๆ ได้ ฉันคิดว่านี่กำลังใช้โซลูชันเหมือนเครื่องพิมพ์โหนดด้วย
ฉันไม่รู้จริงๆว่าจะดูที่ไหนอีกต่อไปหรือจะแก้ไขปัญหานี้ได้อย่างไร ฉันใช้เวลาหลายวันเกินไปในการพยายามคิดว่าเกิดอะไรขึ้น มีแนวทางอื่น (ที่ดี) ที่ฉันคิดไม่ถึงหรือไม่ มีวิธีรับการตั้งค่าเดียวกันใน Google Cloud Print หรือไม่
TL; DR: ต้องการความช่วยเหลือในการผลักดันงานพิมพ์ในคิวจากหน้าต่างเบราว์เซอร์ (หรือ wrapper เช่น Electron) อาจผ่าน API เช่น Google Cloud Print หรือ USB โดยตรง