ユーティリティ GhostScriptとPythonでPDFを単純圧縮

PDFに接する機会が日常的にあります。コンテや設定資料などをPDFで受け取ったり
請求書をPDFで送信したりと日常的に使います。

今回はChromeでページプリントアウトをPDFとして保存する際に
おそろしく重い場合があるのでそれを単純に圧縮するというのを
GhostScriptとPythonでやってみました。

実寸A4以下の領収証を出力した時に18MBとかになるとどんだけハイクオリティなんだよ
と思うことがしばしばありました。exrなのかと思うほどの重さです。
それも画像なしテキストとパスのみでそれっておかしすぎる。
以前は手作業で保存しなおしたりしてたんですが、それなりの数があるとめんどくせー。
しかもイヤイヤやるから名前の粒もそろわねー。
てことで、後学のためにスクリプトでも書いてみようってかんじです。

楽をするための努力なら、まずまずできるタイプです。先々を見越して打算的に努力できます。

ちなみにPythonつかってますけど、多分シェルスクリプトのみでもできるんじゃないかと思います。
シェルがお好きな方はそちらが良いかと思います。

ghostscriptはいつか入れた記憶があるものの最近使う3.11には入ってなかったのでbrewでインストールしました。
たぶん、pipでいれたんだろうと思う。

テストは10行コードな感じなのでサクッと書いて試行

300kbぐらいになる。見た目も別に変わりなし。
日常アタマの10進数ベースなラフい計算で60分の1ぐらいになるじゃんよ。

ほぼテキストなんだし、やっぱそんなもんだよねと思いつつも
rawの重さに“アホかっての…”と悪態の一つもつきたくなるほどの軽量化ぶり。
こんぐらいの感じならCloudに保存でも問題ないな
1ファイル20MB弱ってはっきり言って嵩がありすぎるので
クラウドへの直書き出しはさけてたんですよね。
何かしらのコード不備で複数回トライされるとクラウドを圧迫しますし。
これならサーバーで毎月定期処理にしてCloudにあげるってのも全然問題なさそうです。



コメントを書く