« Home | เย้... ในที่สุดก็เรียนจบซะที ครับพี่น้อง » | Feisty Fawn @ HP Kayak XM600 » | My Nerd Score » | คำคม คำคน: ตอนที่ 2 "Difference Between Theory and... » | การปรับแต่งเครื่อง HP Kayak XM600 » | การสร้างไฟล์ PDF ด้วย LaTeX บน Linux » | ปัญหาการอัพเกรด Thailatex » | คำคม คำคน: ตอนที่ 1 "ความผิดพลาด" » | การใช้ Patch Manager ในเครื่อง Sun » | ลงเครื่อง Sun ใหม่ » 

Friday, March 14, 2008 

วิธีรวมไฟล์ pdf หลายไฟล์เข้าด้วยกันในลินุกซ์

วันนี้อยากรวมไฟล์ pdf สองไฟล์ที่เป็นตัวแก้บทความส่ง TCAS1 กับจดหมายตอบกลับบรรณาธิการ แต่เดิมก็จะใช้โปรแกรมบนวินโดวส์ อย่าง Adobe Acrobat Professional หรือScansoft PDF Converter แต่คิดว่าบนลินุกซ์ก็น่าจะทำได้ เมื่อลองค้นดูก็ปรากฏว่ามีวิธีที่ง่ายและฟรีอยู่จริงๆ ด้วย โดยอาศัยแพ็คเกจ Ghostscript ที่ต้องมีกันทุกคนอยู่แล้ว สำหรับผู้นิยม Latex ซึ่งก็สามารถรวมไฟล์ได้ง่ายๆ ด้วยคำสั่ง
$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=combined.pdf file1.pdf
file2.pdf [ENTER]
โดยส่วนต่างๆ ของคำสั่งจะหมายถึง
  • gs คือ การเรียกโปรแกรม ghostscript
  • -dBATCH สั่งให้เมื่อทำงานเสร็จแล้วให้ปิดโปรแกรม ghostscript ด้วย
  • -dNOPAUSE สั่งให้ทำทุกหน้าโดยไม่ต้องรอคำยืนยัน
  • -q สั่งให้ ghostscript ไม่ต้องแสดงข้อความขณะทำงาน
  • -sDEVICE=pdfwrite กำหนดให้ใช้ ตัวเขียน pdf ภายในในการทำงาน
  • -sOutputFile=combined.pdf กำหนดชื่อไฟล์สุดท้ายเมื่อรวมเสร็จแล้ว

นอกจากนี้ พวกออปชั่นทั้งหลายที่ใช้ใน ghostscript หรือ ps2pdf ทั้งหลายก็สามารถเอามารวมไว้ในคำสั่งนี้ได้ เช่นอยากให้ไฟล์ที่รวมแล้วเทียบเท่า Acrobat 5.x ก็สั่ง
$ gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dCompatibilityLevel=1.4
-sOutputFile=finished.pdf file1.pdf file2.pdf [ENTER]

อ้างอิง: Putting together PDF files