Skip to content
3月 19 / rakkyoo

pdfをページごとにpngファイルに変換

PDFファイルをページごとに画像ファイルに変換(jpegやpng)したいことがままあるのですが,プレビューの標準の機能では1ページごとしかできませんでした.

いろいろと探していたところ,,,

このあたりで,しっかりと検討されていたので,そのまま流用したら簡単にできました.

PDFからJPEGに変換するスクリプト

「pdf2jpeg.sh」などとして保存します.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
 
if [ $# -ne 2 ];then
echo “Usage: $0 target.pdf outfile”
exit
fi
 
TARGET=$1
OUTFILE=$2
 
gs \
-dSAFER \
-dBATCH \
-dNOPAUSE \
-sDEVICE=jpeg \
-r300 \
-dTextAlphaBits=4 \
-dGraphicsAlphaBits=4 \
-dMaxStripSize=8192 \
-sOutputFile=${OUTFILE}_%d.jpg \
${TARGET}

ここで,「-r300」を「-r150」とするなど,数字を変更すると解像度を変更可能です.

あとは,「-sDEVICE」を変更するとpngなどにも変更可能です.

PDFからPNGに変換するスクリプト

「pdf2png.sh」などとして保存します.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
 
if [ $# -ne 2 ];then
echo “Usage: $0 target.pdf outfile”
exit
fi
 
TARGET=$1
OUTFILE=$2
 
gs \
-dSAFER \
-dBATCH \
-dNOPAUSE \
-sDEVICE=png256 \
-r600 \
-dTextAlphaBits=4 \
-dGraphicsAlphaBits=4 \
-dMaxStripSize=8192 \
-sOutputFile=${OUTFILE}_%d.png \
${TARGET}

上記は,「-r600」となっているので,かなり高解像度かと,あとは,-sDEVICEを「png256」として,PNGに変換しています.
そして,「-sOutputFile=${OUTFILE}_%d.png \」として,出力するファイルの拡張子をpngとしています.

使う

使いかたは,

1
$ chmod +x pdf2png.sh

として,実行権限を持たせたあとで,

1
$ pdf2png test.pdf out

っとすると,

1
2
3
4
5
6
7
8
9
10
11
12
13
$ pdf2png.sh test.pdf out                                                                                                                                                [~/training]
GPL Ghostscript 9.05 (2012-02-08)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 8.
Page 1
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8

っという感じに,8ページのPDFから8つのpngファイルが出来ました.

ちなみに,これらは「gs」コマンドを使っているので,「ghostscript」が必要です.

とっても快適に.

[`twib` not found]

Leave a comment

CAPTCHA


This blog is kept spam free by WP-SpamFree.