フリーソフトPopplerのpdftocairoコマンドを利用するとPDFを画像に変換することが出来ます。

PopplerとはPDFビューア(XpdfReader)やPDF解析・変換ツールのフリーソフトです。PopplerはXpdf(フリーソフト)をベースとして機能を拡張して提供されています。
ソースコードも提供されているライブラリとなります。コマンドライン実行のため、VBAや他プログラムからも利用可能となります。
| コマンド |
|---|
| pdftocairo [options] <PDF-file> |
| オプション | |
|---|---|
| -png | PDFをページ単位にPNG画像に変換します |
| -jpeg | PDFをページ単位にJPEG画像に変換します |
| -jpegopt <string> | JPEG画像の画像品質も指定します |
| -tiff | PDFをページ単位にTIFF画像に変換します |
| -tiffcompression <string> | TIFF画像の画像圧縮の指定します |
| -ps | PDFをPostScript形式に変換します |
| -eps | PDFをEPS形式に変換します |
| PDFをPDFに再変換します | |
| -svg | PDFをSVG形式に変換します |
| PDFを標準プリンターに出力します | |
| -printdlg | 印刷前に印刷ダイアログを表示し、PDFをプリンターに出力します |
| -printer <string> | 印刷するプリンター名を指定して、PDFを印刷します |
| -setupdlg | プリンタの設定ダイアログを表示後にPDFを印刷します |
| -o | PDFファイルの奇数ページのみを対象とする |
| -e | PDFファイルの偶数ページのみを対象とする |
| -singlefile | PDFファイルの最初のページのみを対象とする |
| -r <fp> | 画像変換する解像度を1インチあたりのピクセル数を指定します(縦横) |
| -rx <fp> | 画像変換する解像度を1インチあたりのピクセル数を指定します(横) |
| -ry <fp> | 画像変換する解像度を1インチあたりのピクセル数を指定します(縦) |
| -scale-to <int> | 指定したピクセルサイズ内に収まるよう画像変換します(縦横) |
| -scale-to-x <int> | 指定したピクセルサイズ内に収まるよう画像変換します(横) |
| -scale-to-y <int> | 指定したピクセルサイズ内に収まるよう画像変換します(縦) |
| -x <int> | トリミング(切り取り)する位置を指定します(横位置) |
| -y <int> | トリミング(切り取り)する位置を指定します(縦位置) |
| -W <int> | トリミング(切り取り)する位置を指定します(幅) |
| -H <int> | トリミング(切り取り)する位置を指定します(高さ) |
| -sz <int> | トリミング(切り取り)する範囲(ボックス)を指定します |
| -cropbox | クロップボックスをベースにPDFの画像化されます |
| -mono | PDFをモノクロ画像で出力する |
| -gray | PDFをグレー画像で出力する |
| -transp | PDFの白い箇所を透明として画像出力する |
| -antialias <string> | PDFを画像に変換するときのアンチエイリアスを指定します |
| -icc <string> | 指定したiccプロファイルが埋め込まれます |
| -level2 | PDFをレベル2のPostScriptに変換します |
| -level3 | PDFをレベル3のPostScriptに変換します |
| -origpagesizes | 「-paper match」と同じ |
| -paper <string> | 出力する用紙サイズを指定します |
| -paperw <int> | 出力する用紙サイズの横幅と高さをポイント値で指定します(幅) |
| -paperh <int> | 出力する用紙サイズの横幅と高さをポイント値で指定します(高さ) |
| -nocrop | クロップボックスでのトリミングは行わない |
| -expand | 用紙より小さいPDFページを用紙いっぱいに拡大します |
| -noshrink | 用紙より大きいPDFページは拡大縮小しません |
| -nocenter | 用紙より小さいサイズのPDFは中央寄せしない |
| -duplex | DSCコメントをPostScriptファイルに追加します |
| -struct | 論理文書構造を有効にします |
| -q | 変換時のメッセージ/エラーメッセージを非表示にします |
| -f <int> | 解析を行うPDFの開始ページを指定します |
| -l <int> | 解析を行うPDFの終了ページを指定します |
| -opw <string> | オーナーパスワード設定されている場合にパスワードを指定します |
| -upw <string> | ユーザーパスワード設定されている場合にパスワードを指定します |
| -v | バージョンとコピーライトを表示します |
| -h | コマンドの使用方法を表示します |
>pdftocairo -png Sample_tocairo.pdf png\out_png
>dir png
65,620 out_png-1.png
61,977 out_png-2.png
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_png-1.png (65KB)
out_png-2.png (61KB)
|
>pdftocairo -jpeg Sample_tocairo.pdf jpeg\out_jpeg
>pdftocairo -jpeg -jpegopt quality=10,progressive=n Sample_tocairo.pdf jpeg\out_jpegopt
>dir jpeg
80,221 out_jpeg-1.jpg
83,520 out_jpeg-2.jpg
48,069 out_jpegopt-1.jpg
49,702 out_jpegopt-2.jpg
>
「jpgopt」の指定内容
| パラメータ | 設定値 |
|---|---|
| quality | JPEGの画像品質(0~100) |
| progressive | プログレッシブの有無(y:あり, n:なし) |
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_jpeg-1.jpg (79KB)
out_jpeg-2.jpg (82KB)
|
|
out_jpegopt-1.jpg (47KB)
out_jpegopt-2.jpg (49KB)
|
>pdftocairo -tiff Sample_tocairo.pdf tiff\out_tiff
>pdftocairo -tiff -tiffcompression lzw Sample_tocairo.pdf tiff\out_tiff_lzw
>dir tiff
6,535,608 out_tiff-1.tif
6,537,792 out_tiff-2.tif
234,060 out_tiff_lzw-1.tif
279,424 out_tiff_lzw-2.tif
>
「tiffcompression」の指定内容
| パラメータ | 設定値 |
|---|---|
| tiffcompression | 圧縮形式(「none」「packbits」「jpeg」「lzw」「deflate」) |
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_tiff-1.tif (6.5MB)
out_tiff-2.tif (6.5MB)
ファイルサイズが大きいためサンプル無し
|
|
out_tiff_lzw-1.tif (234KB)
out_tiff_lzw-2.tif (279KB)
|
>pdftocairo -ps Sample_tocairo.pdf ps\out_ps.ps
>dir ps
47,285 out_ps.ps
>
| 元PDF | 変換後ファイル |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_ps.zip (17KB)
(ダウンロード用にZIP圧縮しています)
|
(注)EPS形式に変換する1ページを指定する必要があります。
指定方法は「コマンド共通オプション」をご確認ください。
>pdftocairo -eps -f 1 -l 1 Sample_tocairo.pdf eps\out_eps.eps
>dir eps
43,799 out_eps.eps
>
| 元PDF | 変換後ファイル |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_eps.zip (16KB)
(ダウンロード用にZIP圧縮しています)
|
変換しても見た目は変わりませんが、PDF内の構成は変わっています。
>pdftocairo -pdf Sample_tocairo.pdf pdf\out_pdf.pdf
>dir pdf
18,635 out_pdf.pdf
>
| 元PDF | 変換後ファイル |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_pdf.pdf (19KB)
|
>pdftocairo -svg Sample_tocairo.pdf svg\out_svg.svg
>dir svg
61,962 out_svg.svg
>
| 元PDF | 変換後ファイル |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_svg.zip (14KB)
(ダウンロード用にZIP圧縮しています)
|
※Windowsのみ
>pdftocairo -print Sample_tocairo.pdf >
※Windowsのみ
>pdftocairo -printdlg Sample_tocairo.pdf >

※Windowsのみ
>pdftocairo -printer PrinterA Sample_tocairo.pdf >
※Windowsのみ
>pdftocairo -print -setupdlg Sample_tocairo.pdf >

>pdftocairo -png -o Sample_tocairo.pdf o\out_o
>dir o
65,620 out_o-1.png
>
>pdftocairo -png -e Sample_tocairo.pdf e\out_e
>dir e
61,977 out_e-2.png
>
>pdftocairo -png -singlefile Sample_tocairo.pdf singlefile\out_singlefile
>dir singlefile
65,620 out_singlefile.png
>
PDFを画像に変換した後の解像度を1インチあたりのピクセル数を指定します。(デフォルト150PPI)
「-r」:縦横,「-rx」:横,「-ry」:縦
>pdftocairo -jpeg -r 50 Sample_tocairo.pdf r\out_r
>pdftocairo -jpeg -rx 50 Sample_tocairo.pdf r\out_rx
>pdftocairo -jpeg -ry 50 Sample_tocairo.pdf r\out_ry
>dir r
15,574 out_r-1.jpg
15,987 out_r-2.jpg
32,541 out_rx-1.jpg
32,635 out_rx-2.jpg
37,573 out_ry-1.jpg
38,370 out_ry-2.jpg
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_r-1.jpg (16KB)
out_r-2.jpg (16KB)
|
|
out_rx-1.jpg (32KB)
out_rx-2.jpg (32KB)
|
|
|
out_ry-1.jpg (38KB)
out_ry-2.jpg (20KB)
|
指定したピクセルサイズ内に収まるようにPDFを画像に変換します。
「-scale-to」:縦横ボックスサイズ,「-scale-to-x」:横サイズ,「-scale-to-y」:縦サイズ
( -jpeg, -png, -tiff のみ )
>pdftocairo -jpeg -scale-to 500 Sample_tocairo.pdf scale-to\out_scale-to
>pdftocairo -jpeg -scale-to-x 500 Sample_tocairo.pdf scale-to\out_scale-to-x
>pdftocairo -jpeg -scale-to-y 500 Sample_tocairo.pdf scale-to\out_scale-to-y
>dir scale-to
12,488 out_scale-to-1.jpg
13,759 out_scale-to-2.jpg
38,181 out_scale-to-x-1.jpg
28,881 out_scale-to-x-2.jpg
33,107 out_scale-to-y-1.jpg
44,337 out_scale-to-y-2.jpg
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_scale-to-1.jpg (13KB)
out_scale-to-2.jpg (14KB)
|
|
out_scale-to-x-1.jpg (38KB)
out_scale-to-x-2.jpg (29KB)
|
|
|
out_scale-to-y-1.jpg (33KB)
out_scale-to-y-2.jpg (44KB)
|
トリミング(切り取り)する位置を指定します。
「-x」:横の開始位置,「-y」:縦の開始位置,「-W」:横幅,「-H」:高さ
>pdftocairo -jpeg -x 300 Sample_tocairo.pdf x\out_x
>pdftocairo -jpeg -y 300 Sample_tocairo.pdf x\out_y
>pdftocairo -jpeg -W 300 Sample_tocairo.pdf x\out_W
>pdftocairo -jpeg -H 300 Sample_tocairo.pdf x\out_H
>dir x
10,246 out_H-1.jpg
23,580 out_H-2.jpg
13,849 out_W-1.jpg
11,295 out_W-2.jpg
67,380 out_x-1.jpg
72,900 out_x-2.jpg
70,329 out_y-1.jpg
58,547 out_y-2.jpg
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_x-1.jpg (66KB)
out_x-2.jpg (72KB)
|
|
out_y-1.jpg (69KB)
out_y-2.jpg (58KB)
|
|
|
out_W-1.jpg (14KB)
out_W-2.jpg (12KB)
|
|
|
out_H-1.jpg (11KB)
out_H-2.jpg (24KB)
|
「-W」「-H」を両方したのと同等の機能となります。
>pdftocairo -jpeg -sz 700 Sample_tocairo.pdf sz\out_sz
>dir sz
18,297 out_sz-1.jpg
16,570 out_sz-2.jpg
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_sz-1.jpg (18KB)
out_sz-2.jpg (17KB)
|
メディアボックスではなく、クロップボックスをベースにPDFの画像化が行われます。
>pdftocairo -jpeg -cropbox Sample_tocairo.pdf cropbox\out_cropbox
>dir cropbox
80,221 out_cropbox-1.jpg
83,520 out_cropbox-2.jpg
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_cropbox-1.jpg (79KB)
out_cropbox-2.jpg (82KB)
|
>pdftocairo -png -mono Sample_tocairo.pdf mono\out_mono
>dir mono
6,063 out_mono-1.png
5,395 out_mono-2.png
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_mono-1.png (6KB)
out_mono-2.png (6KB)
|
>pdftocairo -jpeg -gray Sample_tocairo.pdf gray\out_gray
>dir gray
66,716 out_gray-1.jpg
68,861 out_gray-2.jpg
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_gray-1.jpg (66KB)
out_gray-2.jpg (68KB)
|
※「-png」「-tiff」
>pdftocairo -png -transp Sample_tocairo.pdf transp\out_transp
>dir transp
64,061 out_transp-1.png
60,036 out_transp-2.png
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_transp-1.png (63KB)
out_transp-2.png (59KB)
|
>pdftocairo -png -antialias default Sample_tocairo.pdf antialias\out_antialias_default
>pdftocairo -png -antialias none Sample_tocairo.pdf antialias\out_antialias_none
>pdftocairo -png -antialias gray Sample_tocairo.pdf antialias\out_antialias_gray
>pdftocairo -png -antialias subpixel Sample_tocairo.pdf antialias\out_antialias_subpixel
>pdftocairo -png -antialias fast Sample_tocairo.pdf antialias\out_antialias_fast
>pdftocairo -png -antialias good Sample_tocairo.pdf antialias\out_antialias_good
>pdftocairo -png -antialias best Sample_tocairo.pdf antialias\out_antialias_best
>dir antialias
52,075 out_antialias_best-1.png
48,345 out_antialias_best-2.png
65,620 out_antialias_default-1.png
61,977 out_antialias_default-2.png
65,620 out_antialias_fast-1.png
61,977 out_antialias_fast-2.png
65,620 out_antialias_good-1.png
61,977 out_antialias_good-2.png
65,620 out_antialias_gray-1.png
61,977 out_antialias_gray-2.png
16,051 out_antialias_none-1.png
16,001 out_antialias_none-2.png
68,167 out_antialias_subpixel-1.png
64,976 out_antialias_subpixel-2.png
>
「antialias」の指定内容
| パラメータ | 設定値 |
|---|---|
| default | 変換画像のデフォルトでアンチエイリアシングする 「-antialias」指定なしの時のデフォルト |
| none | アンチエイリアシングは無効とする |
| gray | グレーの陰影を使用して単色のアンチエイリアシングをする |
| subpixel | サブピクセル要素の順序を利用してアンチエイリアシングする |
| fast | 品質よりも速度を優先してアンチエイリアシングする |
| good | 速度よりも品質を優先してアンチエイリアシングする |
| best | 速度よりも最高品質のアンチエイリアシングする なぜか、サンプルは正しく変換できませんでした |
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_antialias_default-1.png (65KB)
out_antialias_default-2.png (61KB)
|
|
out_antialias_none-1.png (16KB)
out_antialias_none-2.png (16KB)
|
|
|
out_antialias_gray-1.png (65KB)
out_antialias_gray-2.png (61KB)
|
|
|
out_antialias_subpixel-1.png (67KB)
out_antialias_subpixel-2.png (64KB)
|
|
|
out_antialias_fast-1.png (65KB)
out_antialias_fast-2.png (61KB)
|
|
|
out_antialias_good-1.png (65KB)
out_antialias_good-2.png (61KB)
|
|
|
out_antialias_best-1.png (51KB)
out_antialias_best-2.png (48KB)
|
※[-png」のみ
>pdftocairo -png -icc iccFile.icc Sample_tocairo.pdf icc\out_icc >
※「-ps」「-eps」「-pdf」「-svg」のみ
>pdftocairo -ps -level2 Sample_tocairo.pdf level2\out_level2.ps
>pdftocairo -ps -level3 Sample_tocairo.pdf level3\out_level3.ps
>dir level2
47,285 out_level2.ps
>
>dir level3
47,285 out_level3.ps
>
指定値:「letter」「legal」「A4」「A3」「match」
「match」を指定すると変換元PDFに合わされます(デフォルト)。
(「-ps」「-eps」「-pdf」「-svg」のみ)
>pdftocairo -pdf -paper A3 Sample_tocairo.pdf paper\out_paper.pdf
>dir paper
18,526 out_paper.pdf
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_paper.pdf (19KB)
|
出力する用紙サイズの横幅と高さをポイント値で指定します。
(「-ps」「-eps」「-pdf」「-svg」のみ)
>pdftocairo -pdf -paperw 200 -paperh 100 Sample_tocairo.pdf paperw\out_paperw.pdf
>dir paperw
18,598 out_paperw.pdf
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_paperw.pdf (19KB)
|
「-ps」「-eps」「-pdf」「-svg」のみ
>pdftocairo -pdf -nocrop Sample_tocairo.pdf nocrop\out_nocrop.pdf
>dir nocrop
18,635 out_nocrop.pdf
>
用紙より小さいPDFページを用紙いっぱいに拡大します。
(「-ps」「-eps」「-pdf」「-svg」のみ)
>pdftocairo -pdf -expand Sample_tocairo.pdf expand\out_expand.pdf
>dir expand
18,635 out_expand.pdf
>
用紙より大きいPDFページは拡大縮小しません。
(「-ps」「-eps」「-pdf」「-svg」のみ)
>pdftocairo -pdf -noshrink Sample_tocairo.pdf noshrink\out_noshrink.pdf
>dir noshrink
18,550 out_noshrink.pdf
>
用紙より小さいサイズのPDFは中央寄せしない。(デフォルトは中央寄せ)
(「-ps」「-eps」「-pdf」「-svg」のみ)
>pdftocairo -pdf -nocenter -paper A3 Sample_tocairo.pdf nocenter\out_nocenter.pdf
>dir nocenter
18,524 out_nocenter.pdf
>
| 元PDF | 変換後画像 |
|---|---|
| Sample_tocairo.pdf (22KB) |
out_nocenter.pdf (19KB)
|
%%IncludeFeature: *Duplex DuplexNoTumble DSCコメントをPostScriptファイルに追加します(PSのみ)。これにより、プリントマネージャは両面印刷を有効にします。
>pdftocairo -ps -duplex Sample_tocairo.pdf duplex\out_duplex.ps
>dir duplex
47,349 out_duplex.ps
>
>pdftocairo -pdf -struct Sample_tocairo.pdf struct\out_struct.pdf
>dir struct
18,636 out_struct.pdf
>
共通的に使用されるコマンドオプション「-f」「-l」「-enc」「-opw」「-upw」「-v」「-h」等のオプションは こちら でご確認ください。
Windows版を使用しています。
pdftocairo version 24.08.0 Copyright 2005-2024 The Poppler Developers - http://poppler.freedesktop.org Copyright 1996-2011, 2022 Glyph & Cog, LLC Usage: pdftocairo [options] <PDF-file> [<output-file>] -png : generate a PNG file -jpeg : generate a JPEG file -jpegopt <string> : jpeg options, with format <opt1>=<val1>[,<optN>=<valN>]* -tiff : generate a TIFF file -tiffcompression <string>: set TIFF compression: none, packbits, jpeg, lzw, deflate -ps : generate PostScript file -eps : generate Encapsulated PostScript (EPS) -pdf : generate a PDF file -svg : generate a Scalable Vector Graphics (SVG) file -print : print to a Windows printer -printdlg : show Windows print dialog and print -printer <string> : printer name or use default if this option is not specified -printopt <string> : printer options, with format <opt1>=<val1>[,<optN>=<valN>]* -setupdlg : show printer setup dialog before printing -f <int> : first page to print -l <int> : last page to print -o : print only odd pages -e : print only even pages -singlefile : write only the first page and do not add digits -r <fp> : resolution, in PPI (default is 150) -rx <fp> : X resolution, in PPI (default is 150) -ry <fp> : Y resolution, in PPI (default is 150) -scale-to <int> : scales each page to fit within scale-to*scale-to pixel box -scale-to-x <int> : scales each page horizontally to fit in scale-to-x pixels -scale-to-y <int> : scales each page vertically to fit in scale-to-y pixels -x <int> : x-coordinate of the crop area top left corner -y <int> : y-coordinate of the crop area top left corner -W <int> : width of crop area in pixels (default is 0) -H <int> : height of crop area in pixels (default is 0) -sz <int> : size of crop square in pixels (sets W and H) -cropbox : use the crop box rather than media box -mono : generate a monochrome image file (PNG, JPEG) -gray : generate a grayscale image file (PNG, JPEG) -transp : use a transparent background instead of white (PNG) -antialias <string> : set cairo antialias option -icc <string> : ICC color profile to use -level2 : generate Level 2 PostScript (PS, EPS) -level3 : generate Level 3 PostScript (PS, EPS) -origpagesizes : conserve original page sizes (PS, PDF, SVG) -paper <string> : paper size (letter, legal, A4, A3, match) -paperw <int> : paper width, in points -paperh <int> : paper height, in points -nocrop : don't crop pages to CropBox -expand : expand pages smaller than the paper size -noshrink : don't shrink pages larger than the paper size -nocenter : don't center pages smaller than the paper size -duplex : enable duplex printing -struct : enable logical document structure -opw <string> : owner password (for encrypted files) -upw <string> : user password (for encrypted files) -q : don't print any messages or errors -v : print copyright and version info -h : print usage information -help : print usage information --help : print usage information -? : print usage information
| 主な機能 | 概要 |
|---|---|
| pdfattach | PDFファイルに添付ファイルを埋め込みします |
| pdfdetach | PDF内に添付(埋め込み)されているファイルの一覧表示や抽出を行います |
| pdffonts | PDFファイルで使用されているフォントやフォントの埋め込み有無を調べる |
| pdfimages | PDFファイルで使用(埋め込み)されている画像を抽出する |
| pdfinfo | PDFファイルの情報(作成者、作成日時、ページ数など)を表示する |
| pdfseparate | PDFファイルを1ページごとに分割する |
| pdftohtml | PDFをHTML形式に変換する |
| pdftoppm | PDFファイルを画像に変換する |
| pdftops | PDFファイルをPostScriptファイルに変換する |
| pdftotext | PDFファイルからテキストを抽出する |
| pdfunite | 複数のPDFファイルをページ結合する |