PythonでPDFをサクッと圧縮する

2022年8月8日

はじめに

前回は画像の圧縮を作ってみました。

今回はPDFの圧縮を作ってみたいと思います。
方法は色々ありますが、一番簡単なghostscriptを使う方法で紹介します。
(今回のプログラムはPythonでなくても、BATでも作れるのですが、あえてPythonで)

準備

パッケージをインストールします。

pip install ghostscript

またWindowsの場合、下記の作業も必要になります。

①.下記よりghostscriptをダウンロードして、インストールしてください。

②.設定ファイルの作成。今回は「pdf_compress.ini」というファイル名で作成しています。

[BASE]
gs_path = C:\Program Files\gs\gs9.56.1\bin\gswin64c.exe

※パスはご自身の環境に合わせて変えてください。

Pythonのプログラム

import os
import sys
import subprocess
import configparser

#!ls "/gdrive/My Drive/folder"
def paf_compress(attach):
    for i,file in enumerate(attach):
        print(f'{i}:{file}')
        fname = os.path.basename(file)
        dname = os.path.dirname(file)
        outfile_name = fname.replace('.pdf', '_min.pdf')

        subprocess.check_output([gs_path
            ,'-sDEVICE=pdfwrite'
            ,'-dCompatibilityLevel=1.4'
            ,r'-dPDFSETTINGS=/screen'
            ,'-dBATCH'
            ,'-dNOPAUSE'
            ,'-dQUIET'
            ,f'-sOUTPUTFILE={dname}\\{outfile_name}'
            , file
            ])

if __name__ == '__main__':
    config = configparser.ConfigParser()
    config.read('pdf_compress.ini')
    gs_path = config['BASE']['gs_path']
    paf_compress(sys.argv[1:])
    print('PDFを圧縮しました。')

使い方は、必要なファイルをD&Dすれば圧縮されますよ。
無駄に容量の大きなPDFを友達に送るときなどにご利用ください!!

まとめ

いかがだったでしょうか?このようなオンラインサービスはありますが、クラウドは情報漏洩が怖いですよね。
簡単にサックと作れるので試してみる価値はあると思いますよ!!

IT,Python

Posted by スングル