Tuesday, April 5, 2016

Rotate a PDF under Ubuntu Linux by PDF ToolKit

  • ปัญหาคือ pdf ต้นฉบับมันกลับหัว อยากให้มันแสดงผลแบบปกติ ทำยังไง
  • ใน Windows ปกติจะใช้ Adobe Acrobat ช่วย หรือ ใช้เว็บบริการ กลับหัว pdf ออนไลน์ 
  • โจทย์คือ ใช้ Linux Ubuntu นี่แหละช่วย แต่ไม่อยากใช้ เว็บช่วยกลับหัวอะ จะทำไง
  • ลองหาโปรแกรมช่วยแบบ GUI สิ่งที่ได้พบคือ PDF-Shuffler อืม ลองใช้ดู มันบอกว่า ทำได้ทุกอย่างเหมือน Toolkit ทั่วไป แต่พอเราลองเอามาช่วยกลับหัว page ทุกหน้า ปรากฏว่ามีบักซะงั้น ใช้ไม่ได้
  • มาลงเอยที่ Comman Line หว่า
sudo apt-get install pdftk
Man pdftk
EXAMPLES
       Collate scanned pages
         pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
         or if odd.pdf is in reverse order:
         pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf
       Decrypt a PDF
         pdftk secured.pdf input_pw foopass output unsecured.pdf
       Encrypt a PDF using 128-bit strength (the default), withhold all permissions (the default)
         pdftk 1.pdf output 1.128.pdf owner_pw foopass
       Same as above, except password 'baz' must also be used to open output PDF
         pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz
       Same as above, except printing is allowed (once the PDF is open)
         pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz allow printing
       Join in1.pdf and in2.pdf into a new PDF, out1.pdf
         pdftk in1.pdf in2.pdf cat output out1.pdf
         or (using handles):
         pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
         or (using wildcards):
         pdftk *.pdf cat output combined.pdf
       Remove page 13 from in1.pdf to create out1.pdf
         pdftk in.pdf cat 1-12 14-end output out1.pdf
         or:
         pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf
       Apply 40-bit encryption to output, revoking all permissions (the default). Set the owner PW to
       'foopass'.
         pdftk 1.pdf 2.pdf cat output 3.pdf encrypt_40bit owner_pw foopass
       Join two files, one of which requires the password 'foopass'. The output is not encrypted.
         pdftk A=secured.pdf 2.pdf input_pw A=foopass cat output 3.pdf
       Uncompress PDF page streams for editing the PDF in a text editor (e.g., vim, emacs)
         pdftk doc.pdf output doc.unc.pdf uncompress
       Repair a PDF's corrupted XREF table and stream lengths, if possible
         pdftk broken.pdf output fixed.pdf
       Burst a single PDF document into pages and dump its data to doc_data.txt
         pdftk in.pdf burst
       Burst a single PDF document into encrypted pages. Allow low-quality printing
         pdftk in.pdf burst owner_pw foopass allow DegradedPrinting
       Write a report on PDF document metadata and bookmarks to report.txt
         pdftk in.pdf dump_data output report.txt
       Rotate the first PDF page to 90 degrees clockwise
         pdftk in.pdf cat 1east 2-end output out.pdf
       Rotate an entire PDF document to 180 degrees
         pdftk in.pdf cat 1-endsouth output out.pdf
ตัวอย่างแบบไทย
  • มีไฟล์ pdf ชื่อว่า myfile.pdf ซึ่งมี 10 หน้า ความต้องการดังนี้ 
  • หน้า 1 ไม่ต้องเปลี่ยนแปลง
  • หน้า 2 - 3 กลับหัว 180 องศา
  • หน้า 4 หมุนทวนเข็มนาฬิกา 90 องศา
  • หน้า 5 -  7 หมุนตามเข็มนาฬิกา 90 องศา 
  • หน้าที่เหลือไม่ต้องเปลี่ยนแปลง
  • และตั้งชื่อให้เป็นไฟล์เดิมด้วย
Solved
pdftk myfile.pdf cat 1 2-3down 4left 5-7right 8-end output mytmp.pdf && mv mytmp.pdf myfile.pdf
Ref
  • man pdftk
  • http://makandracards.com/makandra/1487-rotate-a-pdf-under-ubuntu-linux

No comments:

Post a Comment