เครื่องมือข้อความและชีวิตประจำวัน · ชุดเครื่องมือ QR และบาร์โค้ด
Code 128 ชุดโค้ด A, B และ C: เหตุใดตัวเลขจึงสร้างบาร์โค้ดที่สั้นลง
· มันทำงานอย่างไร
การเข้ารหัส การพิมพ์ นักพัฒนาเวิร์กโฟลว์
อธิบายชุดโค้ด Code 128 สามชุด วิธีที่ชุดโค้ด C บรรจุตัวเลขสองหลักต่อสัญลักษณ์ และเหตุใดป้ายกำกับที่เป็นตัวเลขเท่านั้นจึงแคบกว่าป้ายกำกับแบบผสมอย่างเห็นได้ชัด
บาร์โค้ดที่ไม่พอดีกับป้ายกำกับ — วิธีการเลือกอักขระ ไม่ใช่แค่ขนาดตัวอักษร จะควบคุมความกว้างของสัญลักษณ์ Code 128 ได้อย่างไร
ความกว้าง Code 128 ถูกควบคุมโดยลำดับสัญลักษณ์ที่ปล่อยออกมา ไม่ใช่โดยการลดขนาดแบบอักษรคำอธิบายภาพ การทดสอบของ ToolAcre แสดงให้เห็นว่าการวิ่งของตัวเลขได้รับการเข้ารหัสให้กระชับมากกว่าการวิ่งของตัวอักษรที่มีขนาดใกล้เคียงกัน เนื่องจากตัวเข้ารหัสอัตโนมัติสามารถใช้ตัวเลขที่จับคู่ได้
ผู้ออกแบบฉลากสามารถวัดผลที่ตามมาได้โดยตรงเนื่องจาก `generateCode128` ส่งคืน `moduleCount` ด้วยรูปแบบไบนารี สตริงสองสตริงที่มีความยาวอักขระเท่ากันสามารถมีจำนวนโมดูลที่แตกต่างกันได้ เมื่อสตริงหนึ่งอนุญาตให้ใช้ตัวเลขที่จับคู่กัน และอีกสตริงหนึ่งกำหนดให้ต้องมีอักขระแต่ละตัวหรือเปลี่ยนแปลงชุด ความกว้างที่ส่งออกยังรวมถึงโซนเงียบคงที่ด้วย ดังนั้นการบีบคำบรรยายหรือการเปลี่ยนแบบอักษรจึงไม่ช่วยลดแถบเลย
รหัสชุด A, B และ C ในตารางเดียว — อักขระควบคุมและตัวพิมพ์ใหญ่ ตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก และคู่ตัวเลข
ชุดโค้ดทั้งสามชุดครอบคลุมส่วนต่างๆ ของรายการ Code 128: A มีประโยชน์สำหรับตัวพิมพ์ใหญ่และตัวควบคุม B ครอบคลุมข้อความตัวพิมพ์ผสมที่สามารถพิมพ์ได้ และ C แทนคู่ของเลขทศนิยม ToolAcre ไม่ขอให้ผู้ใช้เลือกชุดด้วยตนเอง
ToolAcre จงใจซ่อนการเลือกชุดด้วยตนเอง เนื่องจากตัวเข้ารหัสอัตโนมัติมีอินพุตครบถ้วนและสามารถเลือกการเปลี่ยนภาพได้อย่างสม่ำเสมอ ซึ่งจะเป็นการหลีกเลี่ยง UI ที่ผู้ใช้บังคับให้ตั้งค่า C เป็นตัวอักษรหรือตั้งค่าที่เน้นการควบคุมสำหรับข้อความธรรมดาผิดพลาด ขอบเขตมีความสำคัญเท่าเทียมกัน: การเลือกอัตโนมัติจะปรับสตริง ASCII ที่ถูกต้องให้เหมาะสม แต่จะไม่ทับศัพท์ตัวอักษรที่มีการเน้นเสียงหรือขยาย Code 128 เกินจุดรหัสศูนย์ถึง 127
เหตุใดชุดโค้ด C จึงลดความกว้างของตัวเลขลงครึ่งหนึ่ง — หนึ่งสัญลักษณ์ต่อสองหลัก และจะเกิดอะไรขึ้นกับการนับเลขคี่
ชุด C จะเปลี่ยนตัวเลขคู่ที่สมบูรณ์แต่ละหลักให้เป็นสัญลักษณ์ข้อมูลเดียว ดังนั้นการรันตัวเลขที่มีความยาวเท่ากันจึงต้องใช้สัญลักษณ์น้อยลง ด้วยการนับเลขคี่ ตัวเข้ารหัสจะต้องปล่อยหรือหน่วงเวลาการตั้งค่า C สำหรับตัวเลขที่ไม่ตรงกัน ทำให้ผลลัพธ์ที่แน่นอนขึ้นอยู่กับการแบ่งส่วนอัตโนมัติ
การวิ่งแบบคี่แสดงให้เห็นถึงขีดจำกัดของทางลัด "สองหลักต่อสัญลักษณ์" ใน `12345` ตัวเลขสุดท้ายไม่สามารถสร้างคู่ set-C ได้ ดังนั้นตัวเข้ารหัสจะต้องคำนึงถึงค่าดังกล่าวผ่านกลยุทธ์อื่นและค่าใช้จ่ายในการเปลี่ยนผ่าน คำนำหน้าการรันด้วย `A` จะเพิ่มอักขระที่ไม่ได้จับคู่อีกตัวหนึ่ง สร้างค่าทั้งสองค่าแทนที่จะประมาณความกว้างจากอักขระที่แสดงหกตัว เนื่องจากการตัดสินใจแบ่งส่วนจะแสดงในโมดูลที่ปล่อยออกมา ไม่ใช่คำอธิบายภาพ
การสลับบาร์โค้ดตรงกลาง - การเปลี่ยนอักขระและการเปลี่ยนรหัสทำให้บาร์โค้ดผสมกันได้อย่างไร โดยเสียค่าสัญลักษณ์เพิ่มเติม
ตัวระบุแบบผสมสามารถสลับระหว่างชุดได้เมื่อสัญลักษณ์ที่บันทึกไว้มีค่าเกินค่าโสหุ้ยของสวิตช์ ตัวเข้ารหัส CODE128_AUTO เป็นผู้ตัดสินใจ แอปพลิเคชันจะตรวจสอบเอาต์พุตแทนที่จะให้คำมั่นว่าคู่หลักที่แยกได้ทุกคู่จะทริกเกอร์การเปลี่ยนแปลงเฉพาะ
สัญลักษณ์สวิตช์ใช้พื้นที่ ซึ่งหมายความว่าเกาะตัวเลขสั้นๆ ภายในตัวอักษรอาจไม่คุ้มค่าที่จะป้อนชุด C CODE128_AUTO ตัดสินใจจากสตริงทั้งหมด ไม่ใช่จากกฎที่ทุกๆ สองหลักทริกเกอร์สวิตช์ นอกจากนี้ยังอธิบายด้วยว่าเหตุใดการแทรกเครื่องหมายวรรคตอนลงในอนุกรมจึงสามารถขยายเครื่องหมายข้อมูลได้มากกว่าหนึ่งสัญลักษณ์: มันสามารถแยกการทำงานที่มีประโยชน์และทำให้เกิดการเปลี่ยนแปลงรอบการหยุดชะงัก
โมดูลการนับ — 11 โมดูลต่อสัญลักษณ์ 13 โมดูลสำหรับรูปแบบการหยุด และโซนเงียบเพื่อคาดการณ์ความกว้างที่พิมพ์
สัญลักษณ์ Code 128 ปกติใช้พื้นที่ 11 โมดูล ในขณะที่รูปแบบการหยุดยาวกว่า และผู้แสดงภาพจะเพิ่มโซนเงียบแบบแถบแคบ 10 โซนทั้งสองด้าน การนับโมดูลที่ปล่อยออกมาจะทำนายความกว้างได้อย่างน่าเชื่อถือมากกว่าการนับอักขระอินพุตที่มองเห็นได้
ตัวเรนเดอร์จะเปลี่ยนแต่ละโมดูลไบนารี่ให้เป็นพิกเซลจำนวนคงที่ และเพิ่มโซนเงียบของโมดูลแคบๆ อีก 10 โซนทั้งสองด้าน ลำดับการหยุดคือสิบสามโมดูล ในขณะที่สัญลักษณ์ธรรมดาเริ่มต้นในกลุ่มสิบเอ็ดโมดูล ข้อเท็จจริงการใช้งานเหล่านี้ช่วยให้โครงร่างใช้จำนวนโมดูลที่ส่งคืนเพื่อคำนวณความกว้างพิกเซลของผู้สมัคร ไม่รับประกันว่าการพิมพ์ทางกายภาพจะสแกนบนอุปกรณ์เฉพาะ
ตัวอย่างการทำงาน — อนุกรมสิบสองอักขระเดียวกันกับตัวเลขเท่านั้น จากนั้นมีคำนำหน้าตัวอักษร เปรียบเทียบจำนวนสัญลักษณ์และความกว้าง
เปรียบเทียบ 123456789012 กับ A12345678901 ในเครื่องกำเนิด อินพุตที่เป็นตัวเลขทั้งหมดจะทำให้ตัวเข้ารหัสมีชุดคู่ที่ต่อเนื่องกัน ในขณะที่คำนำหน้าบังคับให้มีลำดับแบบผสม การทดสอบของ ToolAcre ใช้หลักการเดียวกันนี้เพื่อตรวจสอบว่าข้อมูลตัวเลขแคบลง
ใช้คู่ควบคุม เช่น `123456789012` และ `A12345678901` คงการตั้งค่าการส่งออกไว้เหมือนเดิม และเปรียบเทียบความกว้างของช่องมองภาพ SVG ทั้งสอง ค่าที่สองอาจต้องมีชุดเริ่มต้นที่แตกต่างกันและการเข้ารหัสแบบผสม แม้ว่าทั้งสองค่าจะมีอักขระสิบสองตัวก็ตาม นี่เป็นข้อพิสูจน์ด้านการออกแบบที่ดีกว่าการทดแทนโมดูลที่มีขนาดเล็กลง ซึ่งช่วยรักษาจำนวนไว้ แต่ทำให้ทุกแถบยากสำหรับเครื่องพิมพ์และเครื่องอ่านในการแก้ไข
สิ่งนี้ไม่ครอบคลุมถึง — ความละเอียดของเครื่องพิมพ์ คุณภาพริบบอน และกฎ GS1 สำหรับบาร์โค้ดสำหรับการขายปลีก
การเปรียบเทียบดังกล่าวไม่ได้กล่าวถึงคุณภาพของหมึกพิมพ์ จุดเครื่องพิมพ์ หรือกฎฉลาก GS1 นอกจากนี้ยังไม่เปลี่ยน ToolAcre ให้เป็นบริการบาร์โค้ดสำหรับร้านค้าปลีก: สัญลักษณ์ที่กำหนดค่าและใช้งานนั้นธรรมดา Code 128 สำหรับตัวระบุที่คุณควบคุม
จุดเครื่องพิมพ์ การแพร่กระจายของหมึก และการถ่ายโอนผ้าหมึกเกิดขึ้นหลังจากที่ ToolAcre สร้างรูปทรงเรขาคณิตที่แน่นอน กฎ GS1 เกิดขึ้นก่อนหน้านั้น โดยการกำหนดข้อมูลและการควบคุมที่จะเข้ารหัส ทั้งสองปัญหาไม่ได้รับการแก้ไขด้วยตัวเลือกชุดโค้ดอัตโนมัติ SVG ที่มีขนาดกะทัดรัดทางเทคนิคยังคงเป็นสัญลักษณ์ที่ไม่ถูกต้อง การพิมพ์ที่ยังไม่ได้รับการแก้ไข หรือตัวระบุที่ฐานข้อมูลที่ได้รับไม่เคยลงทะเบียน
Takeaway — ออกแบบฉลากด้วยการเลื่อนตัวเลขในที่ที่คุณสามารถทำได้ จากนั้นสร้างบาร์โค้ดในชุดเครื่องมือ QR และบาร์โค้ดเพื่อตรวจสอบความกว้าง
ออกแบบตัวระบุภายในที่มีการเรียกใช้หลักที่มีประโยชน์เมื่อความกะทัดรัดมีความสำคัญ แต่ให้ผู้ที่ต้องพิมพ์ตัวเลขเหล่านี้เข้าใจได้ สร้างรูปแบบสุดท้ายก่อนที่จะวางฉลาก เนื่องจากจำนวนโมดูลที่แท้จริงคือความกว้างที่สำคัญ
ความกะทัดรัดควรอยู่ภายใต้การดำเนินงานที่มั่นคง ปุ่มตัวเลขที่สั้นกว่าสามารถบันทึกโมดูลได้ แต่ลำดับที่ทึบอาจเพิ่มข้อผิดพลาดในการถอดเสียงเมื่อต้องป้อนฉลากที่เสียหายด้วยตนเอง เลือกรูปแบบที่พนักงานและซอฟต์แวร์สามารถใช้ได้ สร้างตัวแทนสุดขั้วก่อนที่จะแก้ไขเทมเพลตฉลาก และรักษาโซนเงียบไว้แทนการเรียกคืนพื้นที่ว่างสำหรับข้อความใกล้เคียง