การเขียนเว็บ และการเซทให้ Firefox ปริ้นอัตโนมัติ โดยไม่ขึ้นเตือน Silent Print

ขี้เกียจเซฟรูป เขียนเป็นเชิงทฤษฎีก็ละกัน

ถ้าเป็นโปรแกรมรันบนคอมธรรมดาการสั่งปริ้นนั้นก็ทำได้แสนสบาย แต่ถ้าเป็นเว็บไซต์ละ?

ล่าสุดผมใช้วิธีสั่งให้ Firefox ปริ้นอัตโนมัติ โดยเข้าไปเซทใน about:config
แล้วทำการเพิ่ม Boolean ชื่อ print.always_print_silent จากนั้นเซทเป็น True
แล้วก็ทำการเซทปริ้นเตอร์ที่ต้องการให้มันปริ้นตามต้องการ

จากนั้นทางฝั่งเว็บก็เขียน JS ให้มันเช็คว่างจะต้องปริ้นอะไรไว้
ตัวอย่างเช่น ถ้าจะให้ปริ้นรายการละ 2 ครั้ง
ก็สร้าง record เวลาเซฟก็ใส่เลข 2 เอาไว้
จากนั้นเวลาโหลดหน้าก็ให้ลดลงทีละ 1 จนเหลือ 0
ส่วนในหน้าที่ Render สำหรับพิมพ์ก็จัดหน้ากระดาษด้วย HTML เอาไว้ อันนี้ต้องลองพิมพ์ดู
เวลาโหลดหน้านี้ก็อย่าลืมลดค่าออกไป 1 ด้วย อย่างที่บอกไว้ข้างบน
จากนั้นก็ใส่ JS เอาไว้อีกว่า window.print() ให้ทำงานเวลามันโหลดเสร็จเรียบร้อยแล้ว
พอโหลดเสร็จก็จะพิมพ์ออกมา
หลังจากปริ้นเสร็จก็ให้ัมน redirect กลับมา โดยอาจจะเขียน
JS แบบตั้งหน่วงเวลาว่า window.location = “<MonitorPage>”;
หรือจะเขียน HTML ก็ได้ ว่า <meta http-equiv=”REFRESH” content=”3;url=<MonitorPage>”> ก็น่าจะง่ายกว่า
เพียงเท่านี้ก็สำเร็จแล้ว

สรุปการทำงานคือ
ที่หน้า Monitor จะทำการเช็คง่านอยู่เรื่อยๆ โดยอาจจะใช้ Ajax
พอมีงานใหม่มา ขึ้นอยู่กับว่ากำหนดว่าอะไร ก็พาไปที่หน้าปริ้นงานนั้นๆ
พอโหลดแล้วก็หน้าปริ้นขึ้นมา และอย่าลืมหักค่าจะปริ้นออก เพื่อที่จะได้ไม่เกิดมาปริ้นเรื่อยๆ
จากนั้นสักพักก็ redirect กลับมาหน้า monitor แล้วมันก็จะเกิดเรื่องอย่างงี้ไปเรื่อยๆ

จบอย่างงดงาม