Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
18
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

ImageMagickでPDFを画像に変換する

ImageMagickでPDFを扱うための設定

ImageMagickでPDFを扱う場合、GSをインストールしないといけないとのこと。

OSXでbrew使ってる時は、brew install gsで大丈夫。

サンプリング解像度の設定が必須

densityオプションでdpiを設定をしないと、すごく画像が粗くなる。
元PDF設定や、出力したい画像のサイズに合わせて設定する。

参考にしたサイト
http://icepotato.cocolog-nifty.com/blog/2013/06/imagemagickpdfw.html

PythonのPillowではPDFの読み込みができない

PythonのPillowだとPDFは、書き込みのみで読み込みは対応してないみたい。

フォルダ丸ごとPDFをPNGに変換するコード

サンプリング解像度が300dpi、余白のトリミング付きで、同じフォルダにPNG画像を書き出してます。

ImageMagickをインストールしてれば動くはず。

# coding: utf-8

import os
import os.path
import fnmatch
import subprocess


def execute(root_path):
    for dirpath, _, filenames in os.walk(root_path):
        for filename in filenames:
            if fnmatch.fnmatch(filename, u"*.pdf"):
                org_path = os.path.join(dirpath, filename)
                png_path = org_path.replace(".pdf", ".png")

                print "convert {0} to {1}".format(org_path, png_path)

                if subprocess.call(["convert", "-density", "300", "-trim", org_path, png_path]) != 0:
                    print "failed: {0}".format(org_path)

if __name__ == '__main__':
    root_path = raw_input("target folder path> ")
    execute(root_path)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
18
Help us understand the problem. What are the problem?