ความเป็นมามาตรฐานคำสั่งการควบคุมเครื่องพิมพ์ที่เรียกว่า
PCL (Printer Command Language) และแสดงให้เห็นลักษณะและความสามารถที่สำคัญของภาษาสั่งงานพีซีแอล
ยุคของการใช้เครื่องพิมพ์
การใช้เครื่องพิมพ์มีวิวัฒนากรพร้อมกับการพัฒนาคอมพิวเตอร์
เพราะเครื่องพิมพ์ก็เป็นอุปกรณ์ที่สำคัญสำหรับการทำรายงานผลที่ได้จากคอมพิวเตอร์
การใช้งานเครื่องพิมพ์มีการพัฒนามาหลายยุคสมัย และมีพัฒนาการดีขึ้นเรื่อย
ๆ เราอาจจัดแบ่งเครื่องพิมพ์ออกเป็นระดับตามการใช้งานและการพัฒนาได้ดังนี้
ระดับแรก
การพิมพ์ที่เรียกว่า
Print and Space ลักษณะการพิมพ์เหมือนเครื่องพิมพ์ดีด กล่าวคือ ถ้าต้องการเลื่อนไปพิมพ์กลางหน้ากระดาษก็ต้องเคาะ
Space ไปเรื่อย ๆ จนถึงตำแหน่งที่ต้องการ
ระดับที่สอง
เป็นงานพิมพ์ที่ใช้รหัสตัวควบคุมมาตรฐาน ทำให้ลดจำนวนส่งตัวอักษร space ลง
เช่น การใช้ CR, LF การแทป การย่อหน้าโดยกำหนดเป็นตัวอักษรในตารางรัหสแอสกี
และสามารถใช้ในการสื่อสารระหว่างเครื่องคอมพิวเตอร์กับเครื่องพิมพ์
ระดับที่สาม
เป็นงานพิมพ์เวิร์ดโปรเซสเซอร์ ยุคนี้เป็นยุคของเครื่องพิมพ์ดอตแมตริกซ์ ซึ่งรับรุ้คำสั่ง
ESC มีการกำหนดรูปแบบการพิมพ์ การย่อหน้า การใช้ตัวอักษรใหญ่เล็ก ขีดเส้นใต้
ตัวเอน การพิมพ์ลักษณ์พิเศษอื่น ๆ เครื่องพิมพ์ในยุคนี้เป็นที่รู้จักกันดีในหมู่นักไมโครคอมพิวเตอร์
ระดับที่สี่
เป็นการใช้ภาษาสั่งการพิมพ์
ลักษณะนี้ได้แก่ โพสต์สคริปต์,พีซีแอล เป็นต้น ภาษาสั่งงานพิมพ์นี้เป็นการประยุกต์ใช้งานพิมพ์ในลักษณะพิมพ์เป็นหน้าแทนที่จะพิมพ์แบบลำดับทีละบรรทัด
เครื่องพิมพ์ที่พิมพ์เป็นหน้า ได้แก่ เครื่องพิมพ์เลเซอร์ เป็นต้น งานพิมพ์จึงทำได้ดี
สามารถจัดรูปภาพและเอกสารร่วมกันได้ งานประยุกต์ก็จะกว้างขวางขี้นไปอีกมาก
เช่น งานไทป์เซตติ้ง งานออกแบบกราฟิก งานเดสค์ท้อปพับลิชชิ่ง เป็นต้น
ทำไมต้องพีซีแอล
(PCL)
บริษัทฮิวเล็ตต์-แพคการ์ด
ซึ่งเป็นบริษัทที่มีชื่อเสียงในการพัฒนาเครื่องพิมพ์เลเซอร์และมีผู้นิยมใช้เครื่องพิมพ์ของฮิวเล็ตต์-แพคการ์ดอยู่มาก
ได้พัฒนาภาษาสั่งงานเครื่องพิมพ์ขึ้นมาภาษาหนึ่งเรียกว่า พีซีแอล (PCL-Printer
Command Language) พีซีแอลได้รับการพัฒนาขึ้นมาด้วยจุดมุ่งหมายดังต่อไปนี้
- ให้เครื่องพิมพ์ทุกเครื่องที่มีโครงสร้างกลไกฮาร์ดแวร์ต่างกันจะทำงานกับซอฟต์แวร์ได้เหมือนกัน
- ครื่องพิมพ์ระดับที่ต่ำกว่าจะเป็นเซตย่อยของเครื่องพิมพ์ระดับนี้กล่าวคือ
การใช้งานของเครื่องพิมพ์อะไรก็ตามสามารถใช้กับพีซีแอลได้
- สั่งงานได้กะทัดรัดและง่ายรวดเร็ว
- มีการทำงานได้ทั้งรูปแบบที่เรียกว่า
มาสเตอร์กราฟิกหรือแบบเดซีวีลที่พิมพ์ตัวอักษรทีละตัว เห็นได้ว่าบริษัทฮิวเล็ต-แพคการ์ดได้เน้นเครื่องพิมพ์ที่ใช้
PCL ครอบคลุมการทำงานของเครื่องพิมพ์อื่น ๆ ทั้งหมด ทำให้การเขียนซอฟต์แวร์จะได้เป็นมาตรฐานเดียวกันได้
ลักษณะของพีซีแอล
พีซีแอลมีลักษณะของคำสั่งที่ใช้ในการสั่งงานเครื่องพิมพ์
การสั่งงานก็เหมือนกับสั่งงานเครื่องพิมพ์ในระดับดอตแมตริกซ์เดิม คือส่งรหัสไปยังเครื่องพิมพ์
เครื่องพิมพ์จะทำการแปลความหมายของการพิมพ์
พีซีแอลที่ใช้นี้มี
3 รูปแบบคือ
1.
ใช้รหัสควบคุมโดยตรง เช่น การใช้รหัส CR, LF, FF เป็นต้น รหัสควบคุมนี้อยู่ในตารางรหัสแอสกีแล้ว
2.
ตัวอักษรตามรหัส ESC เช่น ESC ตามด้วย X X ที่ตามมาจะสื่อความหมายกับเครื่องพิมพ์ในการสั่งการทำงาน
รหัส X ที่ใช้มีค่าอยู่ระหว่างรหัส แอสกี 48-126 เช่น ESC E หมายถึงใช้รีเซตเครื่องพิมพ์
ESC 9 หมายถึงการรีเซตการตั้งขอบซ้ายและขอบขวา
3.
ตัวอักษรตามรหัส ESC ในรูปพารามิเตอร์ ในกรณีนี้ใช้ตัวอักษรหลายตัว และเป็นตัวแปรหรือตัวเลขที่แปรเปลี่ยนค่าได้
รูปแบบของการใช้เป็น
ESC X
y # Z1 # Z2 # Z3…#Zn [data] โดยที่
y, #, Zi
และ [data] อาจเป็นตัวเผื่อเลือก คือ จะมีหรือไม่ก็ได้
X เป็นตัวอักษรที่เรียกว่า
พารามิเตอร์ ใช้รหัสแอสกีจาก 33-47 (!ถึง/)
Y คือ ตัวอักษรบอกกรุ๊ป
ใช้รหัสแอสกีจาก 96-126
# คือ ฟิล์ดบอกค่า
เป็นกลุ่มของตัวอักษรที่เป็นค่าตัวเลข
Zi คือ ตัวอักษรพารามิเตอร์
Zn คือ ตัวบอกจบคำสั่ง
[data] คือ
ตัวข้อมูลที่มองแบบรหัสไบนารี่
ตัวอย่างพีซีแอล

คำสั่งดังกล่าวเป็นคำสั่งที่รวมคำสั่งเข้าด้วยกัน
คือ ESC & I 1 o กับ ESC & I 1 2 A สังเกตว่าหาก
คำสั่งที่ใช้อยู่ในกลุ่มเดียวกันสามารถนำมารวมกันได้
แต่ต้องเปลี่ยนตัวอักษรบอกจบคำสั่งของคำสั่งแรกให้เป็นตัวอักษรตัวเล็กเสียก่อน
เพราะรหัสจบคำสั่งของพีซีแอลจะใช้ตัวอักษรตัวใหญ่เท่านั้น
พีซีแอลสั่งงานให้ทำอะไรได้บ้าง
ในที่นี้จะไม่ยกคำสั่งของพีซีแอล
เพราะคำสั่งของพีซีแอลมีมาก และไม่สามารถนำมาแสดงให้ดูได้หมด ผู้สนใจหาดูได้จากหนังสือ
Technical Reference Manual ของเครื่องพิมพ์เลเซอร์ สำหรับบทความนี้จะกล่าวถึงขีดความสามารถของพีซีแอลว่าทำอะไรให้เราได้บ้างในเชิงภายนอกที่เห็นว่าเราจะใช้พีซีแอลมาช่วยงานเราได้แค่ไหน
คำสั่งในการกำหนดขนาดกรอบการพิมพ์
เครื่องพิมพ์เลเซอร์เป็นเครื่องพิมพ์ที่พิมพ์ได้ทีละแผ่น
การจัดการข้อมูลการพิมพ์จะต้องกำหนดขอบเขตของการพิมพ์ โดยการกำหนดกรอบกระดาษ
การกำหนดจุดบนกระดาษ พีซีแอลอ้างอิงตำแหน่ง X,Y ตำแหน่งอ้างอิง 0,0 อยู่บนซ้ายสุดของขอบกระดาษ
โครงสร้างของตำแหน่งกระดาษแสดงได้ดังรูปที่ 1
ในการอ้างอิงทางแน
Xของพีซีแอล จะอ้างอิงเป็นจุด หรืออ้างแบบแบบแกนนอน จะเป็นดังรูป 2
ขนาดกระดาษ
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
LETTER
|
3300
|
2550
|
3180
|
2550
|
60
|
60
|
50
|
100
|
LEGAL
|
4200
|
2550
|
4080
|
2550
|
60
|
60
|
50
|
100
|
EXECUTIVE
|
3150
|
2175
|
3030
|
2175
|
60
|
60
|
50
|
100
|
A4
|
3507
|
2480
|
3389
|
2480
|
60
|
58
|
50
|
92
|
COM-10
|
2850
|
1237
|
2730
|
1237
|
60
|
60
|
50
|
100
|
MONARC
|
2250
|
1162
|
2130
|
1162
|
60
|
60
|
50
|
100
|
C5
|
2704
|
1913
|
2586
|
1913
|
60
|
58
|
50
|
92
|
DL
|
2598
|
1299
|
2480
|
1299
|
60
|
58
|
50
|
92
|
รูปที่
2 กรอบการพิมพ์แบบแกนนอน

ขอบกระดาษ
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
LETTER
|
2550
|
330
|
2400
|
330
|
50
|
100
|
60
|
60
|
LEGAL
|
2550
|
4200
|
2400
|
4200
|
50
|
100
|
60
|
60
|
EXCUTIVE
|
2175
|
3150
|
2025
|
3150
|
50
|
100
|
60
|
60
|
A4
|
2480
|
3507
|
2338
|
2507
|
50
|
92
|
60
|
58
|
COM-10
|
1237
|
2850
|
1087
|
2850
|
50
|
100
|
60
|
60
|
MONARC
|
1162
|
2250
|
1012
|
2250
|
50
|
100
|
60
|
60
|
C5
|
1913
|
2704
|
1771
|
2704
|
50
|
92
|
60
|
58
|
DL
|
1299
|
2598
|
1157
|
2598
|
50
|
92
|
60
|
58
|
รูปที่
3 กรอบการพิมพ์แบบแถบตั้ง
สังเกตว่าการใช้งานเครื่องพิมพ์เลเซอร์จำเป็นต้องใช้พีซีแอลบอกชนิดของกระดาษที่ใช้
แล้วจึง
อ้างอิงตำแหน่งการพิมพ์ได้
หากการอ้างอิงออกนอกกรอบที่จะพิมพ์ได้ เครื่องพิมพ์เลเซอร์จะไม่ยอมพิมพ์ให้
หรือแม้แต่การกำหนดตัวหนังสือที่จะพิมพ์เหลื่อมจากกรอบที่กำหนด
ก็จะไม่พิมพ์ตัวหนังสือนั้นเช่นกัน
พีซีแอลสามารถสั่งการกำหนดเคอร์เซอร์ได้เหมือนจอภาพ
การพิมพ์บนกระดาษจำเป็นต้องมีการกำหนดเคอร์เซอร์
การเลื่อนเคอร์เซอร์ เครื่องพิมพ์เลเซอร์มีเคอร์เซอร์และจะเลื่อนเคอร์เซอร์ได้สองแบบ
แบบแรกคือ การเลื่อนแบบแอปโซลุท และแบบที่สองเป็นแบบ รีเลตีฟ แบบแอปโซลุทเป็นแบบที่ใช้พีซีแอลสั่งให้เลื่อนไปยังตำแหน่ง
X, Y โดยตรง ส่วนแบบรีเลตีฟนั้นค่าตัวเลขพารามิเตอร์ที่บอกมาจะนำมาบวกหรือลบกับค่าเดิม
โครงสร้างการกำหนดเคอร์เซอร์แสดงได้ดังรูป 4
ในการพิมพ์ตัวอักษรลงบนกระดาษเคอร์เซอร์จะเลื่อนไปเองโดยอัตโนมัติ
นอกจากนี้เรายังสามารถ
เก็บตำแหน่งของเคอร์เซอร์ลงในสแต็ก
และเรียกหน่วยเดซิพอยต์ หรืออ้างเป็นคอลัมน์ก็ได้ การอ้างเป็น
เดซิพอยต์เป็นหน่วยทางด้านงานพิมพ์
ซึ่งหนึ่งเดซิพอยต์มีค่าเท่ากับ 1/720 นิ้ว ส่วนการอ้างอิงทางแกน
Y จะต้องเป็นจุดหรือหน่วยเดซิพอยต์หรือเป็นแถวก็ได้
เครื่องพิมพ์เลเซอร์ส่วนใหญ่ให้รายละเอียดจุดมีค่าเป็น
1/300 นิ้ว หรือพิมพ์ได้ละเอียด 300 จุดต่อนิ้ว
การสั่งงานด้วยพีซีแอลสามารถสั่งให้การพิมพ์พิมพ์ตามแนวนอน
หรือแนวตั้งของกระดาษก็ได้ ถ้าพิมพ์แนวนอน ก็เรียกการพิมพ์แบบ landscape และถ้าพิมพ์แกนตั้งก็เรียกว่า
portrait
การพิมพ์แบบนอนนั้นผู้สั่งงานใช้คำสั่งพีซีแอลเพื่อกำหนดการพิมพ์จะต้องไม่พิมพ์เกินกรอบที่กำหนด
เครื่องพิมพ์แต่ละเครื่องมีกรอบการพิมพ์ ดังนั้นการอ้างอิงตำแหน่ง X, Y ต้องไม่เกินกว่าตำแหน่งของกรอบกระดาษ
กรอบกระดาษแบบแกนนอนมีกรอบการพิมพ์ได้ดังรูปที่
4 ส่วนการสั่งงานพีซีแอลในกรอบการพิมพ์กลับเข้ามาใหม่ได้ การสั่งพิมพ์นี้สั่งพิมพ์ได้ทั้งแบบตัวอักษรหรือกราฟิกผสมกันได้
รูปที่
4 การควบคุมเคอร์เซอร์
พีซีแอลสามารถสั่งงานเพื่อกำหนดสิ่งแวดล้อม
ข้อเด่นของการใช้พีซีแอลเห็นจะได้แก่การสั่งพิมพ์เป็นหน้า
และคำสั่งพีซีแอลมีรูปลักษณะที่ควบคุม
การทำงานได้ง่าย
นอกจากนี้ยังสามารถสั่งการควบคุมการทำงานในการกำหนดสิ่งแวดล้อมได้ เช่น ออกจำนวนสำเนาซึ่งจะพิมพ์กี่ใบก็ได้
บอกรายละเอียดของกรอบกระดาษ ชนิดของตัวอักษรและสามารถสั่งให้
พิมพ์ผสมกับตัวอักษรหลายรูปแบบในหน้าเดียวกันได้
พีซีแอลกับลักษณะของตัวอักษร
(ฟอนต์)
ปกติภายในเครื่องพิมพ์เลเซอร์มีการเก็บรูปแบบลักษณะตัวอักษรไว้แล้วหลายรูปแบบ
เครื่องพิมพ์
เลเซอร์บางเครื่องสามารถเก็บรูปแบบตัวอักษรได้ถึง
16 แบบหรือสามารถโหลดมาเพิ่มเติมได้อีก ในการสั่งพิมพ์นั้นอาจให้พิมพ์ตัวหนาโดยใช้ฟอนต์เดิมได้
หรือเลือกฟอนต์หลายชนิดผสมกันได้ รูปที่ 5 เป็นตัวอย่าง
การสั่งให้พิมพ์ตัวหนาและเลือกตัวอักษรหลายแบบ
รูปที่
5 ตัวอย่างการสั่งให้พิมพ์ตัวหนาและการเลือกตัวอักษรหลายแบบ
การสร้างตัวอักษรใช้เอง
การสร้างตัวอักษรภาษาไทยใช้เองทำได้สะดวกมาก
เพราะเครื่องพิมพ์เลเซอร์มีขีดความสามารถที่จะให้ผู้ใช้งานสร้างไฟล์ตัวอักษรและโหลดเข้ามายังเครื่องพิมพ์เลเซอร์ได้
ตัวอักษรที่จะสร้างขึ้นจะเป็นตัวอักษรที่มีความละเอียดค่อนข้างสูง
ดังนั้นจึงต้องใช้จุดที่อยู่ในเซลตัวอักษรจำนวนมาก
รูปที่ 6
เป็นขอบเขตของตัวอักษรหนึ่งตัว ซึ่งเมื่อสร้างตัวอักษรขึ้นใช้เองต้องให้รายละเอียดข้อมูลเหล่านี้ไว้หมด
รูปที่
6 เซลตัวอักษร
การกำหนดข้อมูลตัวอักษรจะเก็บไว้ในไฟล์
โดยโครงสร้างของไฟล์เขียนได้อย่างคร่าว ๆ เป็นดังรูปที่ 7
รูปที่
7 โครงสร้างไฟล์ที่เก็บข้อมูลตัวอักษร
ข้อมูลตัวอักษรแต่ละตัวจะเก็บเป็นข้อมูลตัวเลขไบนารี
และมีข้อมูลอยู่มากพอควรสำหรับตัวอักษร แต่ละชุด รูปที่ 8 เป็นตัวอย่างข้อมูลของตัวอักษรตัวหนึ่งที่เก็บรายละเอียดของตัวอักษรขนาด
24x32 จุด
รูปที่
8 ข้อมูลตัวอักษณหนึ่งตัว
ด้วยวิธีการกำหนดข้อมูลตัวอักษรแต่ละตัวแยกกัน
ทำให้เราสามารถสั่งงานเครื่องพิมพ์เลเซอร์ในลักษณะที่พิมพ์แบบตัวอักษรที่มีความกว้างไม่เท่ากันได้
คำสั่งพีซีแอลสำหรับลากเส้น
ตีกรอบ ระบายแรเงา
เพื่อให้การใช้งานเครื่องพิมพ์เลเซอร์ได้ดียิ่งขึ้น
คำสั่งของพีซีแอลยังรวมเอาคำสั่งที่เกี่ยวกับกราฟิกลงไปไว้ด้วย เช่น คำสั่งในการลากเส้นตีกรอบ
หรือแม้แต่ระบายหรือแรเงา
ผู้เขียนโปรแกรมพีซีแอลสามารถนำคำสั่งต่าง
ๆ มารวมกันให้เป็นมาโครได้ นอกจากนี้พีซีแอลยังครอบคลุมการทำงานแบบเดิมที่ใช้คำสั่ง
ESC ไว้กล่าวคือ สามารถทำการแปลงรหัส ESC ที่ใช้กับเครื่องพิมพ์อื่นให้ใช้กับเครื่องพิมพ์เซอร์ได้
เขียนโดย : รศ. ยืน ภู่วรวรรณ
ไมโครคอมพิวเตอร์ ฉบับที่ 58
เดือนพฤษภาคม 2539 |