พิมพ์ไฟล์ด้วยการตั้งค่าเฉพาะจากเว็บแอป

สำหรับลูกค้า ฉันกำลังสร้างแอปบนอุปกรณ์เคลื่อนที่ซึ่งผู้ใช้สามารถเลือกระหว่างกรอบรูปหลายกรอบได้ พวกเขาสามารถเพิ่มรูปภาพลงในเฟรมนี้ได้โดยใช้อุปกรณ์เคลื่อนที่ เมื่อดำเนินการเสร็จสิ้น ผู้ใช้จะถูกส่งไปยังหน้าจอการชำระเงิน เมื่อชำระเงินตามคำสั่งซื้อแล้ว ระบบจะสร้างรหัส 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 โดยตรง


person Rover    schedule 25.02.2019    source แหล่งที่มา


คำตอบ (1)


ลองใช้ 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

ลองใช้ความสูงและความกว้างที่แตกต่างกันเพื่อให้ได้ผลลัพธ์ที่ต้องการ

person Anirudh Saria    schedule 28.03.2019