第1029回-自由的風-50-如何幫 PDF檔減肥?

因為備課需要,我到南一備課雲去下載國小社會三下的課文PDF檔(需要先加入教師會員),但一看到檔案大小,我實在傻眼了!第一單元16頁竟然要356.8MB!一冊六個單元要1.4GB!這應該是給印刷廠用的吧?老師不需要這麼大的檔案,攜帶不便。


第一個想法是跟南一反應,但一來我不知道要找誰講,二來講到好不知道是多久以後,我現在就需要用來備課。我港覺用神奇偉大的 ezgo13 就可以輕鬆搞定這件事!

我想,喜歡玩自由軟體的人,大概都有一個共同點:喜歡照自己的想法(任性)自己動手解決問題(愛亂搞。我用 pdf shrink ubuntu 當關鍵字去google,我看中意搜尋結果中,五樓的樓上,的一篇文章:
How to Reduce the Size of PDFs on Ubuntu by Allen Bethea

我中意 Allen Bethea 的解決方案是因為夠簡單(無腦)!

  • 打開終端機
  • 輸入:
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=減肥後檔名.pdf 原本檔名.pdf
  • 20:25 開始轉檔,原本檔案大小為356.8MB
  • 20:33 轉檔結束,只有 3.6MB!哇!竟然瘦身到原來的百分之一而已!嚇鼠寶寶了!
轉好南一國小社會105三下的課本第一單元PDF檔(105-X6A013D-1.pdf),還有五個單元的PDF檔,能不能再更簡單(無腦)一點?

Allen 大大說可以喔!他說可以把上述的指令變成一個 shell script (程式化腳本) ,看倌們可以把 shell script 想成是變魔術就可以了。我把他說的轉換成在 ezgo13 上可以做的步驟來說明:
  • 開始功能表 => 附屬應用程式 => 文字編輯 Leafpad
  • 複製貼上以下文字
    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$1small.pdf $1.pdf
  • 檔案=>另存為: 切換到目前登入的使用者的家目錄,檔名為 shrink-pdf.sh
  • 打開終端機,輸入: sh ~/shrink-pdf.sh 你要瘦身的pdf檔檔名(不要加.pdf)
  • 如此一來,要轉多個pdf檔會很輕鬆


21:23 開始轉五個檔,一面和兒子玩企鵝破冰桌遊、和老婆聊天、邊寫網誌邊吃情人節巧克力蛋糕、喝水上廁所,等等等,到21:59 全部完成,哇!感恩 ezgo13 讚嘆 ezgo13 我也會變魔術了!原本共1.4GB的六個PDF檔,被我瘦身到 17.6MB而已!

後記:
  • 南一105國小社會三下的課本PDF檔6個共1.4GB,轉檔後17.6MB
  • 南一105國小社會四下的課本PDF檔6個共247.5MB,轉檔後12MB
  • 南一105國小社會三下的習作PDF檔(含解答)6個共172.8MB,轉檔後MB
  • 南一105國小社會四下的習作PDF檔(含解答)6個共 30.5MB,轉檔後3.0MB
shrink-pdf-w.sh 一次轉12個習作PDF檔(我土法煉鋼,應該有更快的作法)
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-4-unit-1-w.pdf 105-X6A024D-1.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-4-unit-2-w.pdf 105-X6A024D-2.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-4-unit-3-w.pdf 105-X6A024D-3.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-4-unit-4-w.pdf 105-X6A024D-4.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-4-unit-5-w.pdf 105-X6A024D-5.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-4-unit-6-w.pdf 105-X6A024D-6.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-3-unit-1-w.pdf 105-X6A023D-1.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-3-unit-2-w.pdf 105-X6A023D-2.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-3-unit-3-w.pdf 105-X6A023D-3.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-3-unit-4-w.pdf 105-X6A023D-4.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-3-unit-5-w.pdf 105-X6A023D-5.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=nani-105-2-social-3-unit-6-w.pdf 105-X6A023D-6.pdf

留言