COS คืออะไร?
COS (Carousel Object Syntax) คือไวยากรณ์ที่ใช้ในไฟล์ PDF และไฟล์ FDF ซึ่งมีการอธิบายไว้อย่างละเอียดใน ISO 32000-2:2020. เมื่อตรวจดูโครงสร้างภายในของไฟล์ PDF คุณจะพบว่า COS คือสิ่งที่อยู่เบื้องหลัง
"Carousel" เป็นโค้ดเนมของ Acrobat 1.0 ตอนที่มีการนำไวยากรณ์นี้มาใช้ครั้งแรก
ประเภทอ็อบเจ็กต์ทั้งแปดของ COS
COS เป็นไวยากรณ์ขนาดเล็ก และเกือบทุกอย่างในไฟล์ PDF จะเป็นหนึ่งในอ็อบเจ็กต์พื้นฐานทั้งแปดประเภทนี้ เมื่อคุณแยกแยะได้แล้ว ภายในไฟล์ PDF จะไม่ดูเป็นข้อมูลรบกวนอีกต่อไป:
- บูลีนและตัวเลข เขียนแบบตรงไปตรงมา
- สตริง อยู่ในวงเล็บกลมหรือเป็นเลขฐานสิบหกในวงเล็บมุม
- เนม เขียนโดยมีสแลชนำหน้า เช่น \/Type หรือ \/Page
- แอเรย์อยู่ในวงเล็บเหลี่ยม และดิกชันนารีอยู่ในวงเล็บมุมคู่
- สตรีม คือดิกชันนารีที่ตามด้วยบล็อกของไบต์ดิบหรือไบต์ที่บีบอัดแล้ว
- อ็อบเจ็กต์ null
เนื้อหาหน้า ฟอนต์ รูปภาพ และ เมทาดาทา ทั้งหมดถูกสร้างขึ้นจากองค์ประกอบเหล่านั้น สตรีมเป็นที่อยู่ของข้อมูลส่วนใหญ่ในไฟล์ เพราะเป็นที่เก็บคำอธิบายหน้าแบบบีบอัดและรูปภาพที่ฝังอยู่
วิธีค้นหาอ็อบเจ็กต์อีกครั้ง
อ็อบเจ็กต์จะมีหมายเลขกำกับ และในตอนท้ายของไฟล์จะมีตาราง cross-reference บันทึกตำแหน่งไบต์ของแต่ละอ็อบเจ็กต์ ผู้อ่านจะเริ่มจากท้ายไฟล์ อ่านเทรลเลอร์ พบตาราง cross-reference จากนั้นจึงกระโดดไปยังอ็อบเจ็กต์ที่ต้องการได้โดยตรง นี่คือเหตุผลที่ไฟล์ PDF สามารถเปิดได้โดยไม่ต้องแยกวิเคราะห์ตั้งแต่ต้นจนจบ ในเวอร์ชันหลังๆ ตารางนี้อาจถูกจัดเก็บเป็น object stream ที่บีบอัดแทน และ incremental update จะผนวกตารางที่สองต่อท้าย แทนที่จะเขียนตารางแรกใหม่