01 November 2012

เรียงหน้า PDF ด้วย PDFTK

ผมต้องการ scan เอกสาร โดยแต่ละแผ่นมีข้อความทั้งด้านหน้าและด้านหลัง แต่ scanner ที่มีอยู่ มี feeder ที่สามารถใส่เอกสารเป็นปึกได้ แต่ scan ได้แค่ด้านเดียว ผมก็เลยแก้ปัญหาด้วยการ scan สองรอบ
  • รอบแรก scan หน้าคี่ทั้งหมด  โดยเริ่มจากหน้าแรกของเอกสาร
  • รอบที่สอง scan หน้าคู่ แต่เริ่มจากหน้าสุดท้าย เพราะไม่ต้องเรียงกระดาษใหม่
สุดท้ายได้ไฟล์ PDF มาสองไฟล์ ไฟล์แรกเป็นหน้าคี่เรียงจากหน้าไปหลัง ไฟล์ที่สองเป็นหน้าคู่เรียงจากหลังมาหน้า ผมเอาสองไฟล์ที่มารวมกัน (ถ้าจะใช้ภาษาไทยแบบหรูๆ หน่อยก็ต้องเรียกว่า ผสาน มั้ง) โดยใช้ Pdftk ซึ่งเป็นโปรแกรมสำหรับช่วยจัดการเอกสาร PDF แบบ command-line ปรากฏว่าผมสามารถทำสิ่งที่ผมต้องการได้ด้วยคำสั่งเดียว คือ

$ pdftk A=front.pdf B=back.pdf shuffle A1-end Bend-1 output merged.pdf

คำสั่งนี้สั่งให้ pdftk โหลดไฟล์ PDF ขึ้นมาสองไฟล์ ไฟล์แรกเรียกว่า A ไฟล์ที่สองเรียกว่า B เสร็จแล้วใช้คำสั่ง shuffle ซึ่งเป็น operation สำหรับผสานเอกสาร 2 ฉบับ โดยกำหนดช่วงของหน้าที่ต้องการ ผมกำหนดว่าไฟล์แรกใช้ 1-end เพราะเรียงหน้าไปหลังตามปกติ ส่วนไฟล์ที่สองใช้ end-1 เพราะเรียงกลับจากหลังไปหน้า รวมเสร็จให้เอาไปเก็บไว้ในไฟล์ชื่อ merged.pdf เป็นอันเสร็จสิ้น

ทั้งๆ ที่รู้มาก่อนว่าควรจะใช้ Pdftk แต่ตอนแรกผมก็ไม่คิดว่าจะง่ายขนาดนี้ ประทับใจจริงๆ นี่แหละหนาที่ทำให้เลิกใช้ Linux ไม่ได้ (ถ้าต้องทำบน MS Windows เนี้ย ไม่รู้จะทำไงเลยนะ งมกันนานแน่ๆ)