1ページが1枚の画像で構成されているような画像ベースのPDFを、ハンドヘルドデバイス向けに最適化するツールです。画像ファイルのZIPをPDF化する機能も持ちます。
以下のサブコマンドを受け付けます。
- PDF内の画像が、指定したサイズにぴったり収まる画素数になるよう縮小します。
- もともと指定サイズよりも小さい画像はオリジナルのサイズを保ち、拡大はしません。
- 縦長の画像はデバイスを縦置きしたときにぴったりの画素数に、横長の画像はデバイスを横置きしたときにピッタリの画素数にします。
- 指定した閾値よりも小さな画像は、デバイス上で見開き表示したときにぴったりの画素数になるよう縮小します。
- 紙焼けの色を薄くする機能も持ちます。ただし、これを使用すると薄い網の色も消えてしまうことがあります。
- PDFの各ページの回転方向を、指定した角度(0、90、180、270のいずれか)に揃えます。
- 参照するPDFを指定し、そのPDFの各ページの回転方向に合わせることもできます。これは、Adobe AcrobatのOCRで回転されてしまったページを元に戻す際などに有効です。
- ZIPファイルから画像ファイルだけを抽出し、1ページが1枚の画像で構成されたPDFを作成します。
- PDFが右開きになるよう指定することもできます。
- ZIP内のパスでソートした順序で出力します。
- PDFの初期表示設定を変更します。
- ページレイアウト、ズームレベル、読み込み方向を指定できます。
- PDFリーダーで開いたときの表示方法を設定するのに便利です。
-
Java (25以降) とImageMagick (6以降) をインストールします。
-
Releaseページから
optimpdf-2.1.0-jar-with-dependencies.jarをダウンロードします。 -
コマンドラインから、サブコマンドと対象ファイルを引数に指定して、JARを実行します。
java -jar optimpdf-2.1.0-jar-with-dependencies.jar reduce some.pdf
- コマンドライン引数で、処理対象となる入力ファイルを指定します。
- 処理対象ファイルは複数指定することもできます。
-r,--recursiveオプションを付けると、処理対象がディレクトリならその中のファイルを再帰的に処理します。
- 何もオプションを付けなければ、入力ファイルと同じパスに処理結果を出力しようとして、上書きできずに失敗します。
-f,--forceオプションを付けると、出力ファイルがすでに存在する場合でも上書きします。-o,--outfileオプションで出力ファイル名を指定できます。入力ファイルが1つのときだけ使用できます。-s,--suffixオプションで、入力ファイル名に付加する接尾辞を指定できます。-d,--outdirオプションで、ファイルを出力するディレクトリを指定できます。-u,--updateオプションを付けると、出力ファイルが存在しないか、入力ファイルが出力ファイルより新しいものだけを処理対象にします。
| オプション | 説明 |
|---|---|
| -h, --help | ヘルプメッセージを表示して終了する。 |
| -V, --version | バージョン情報を表示して終了する。 |
| オプション | 説明 |
|---|---|
| -d, --outdir=dir | 出力ファイルを dir に書き込む。 |
| -f, --force | 出力ファイルを上書きする。 |
| -h, --help | ヘルプメッセージを表示して終了する。 |
| -l, --list | 処理するファイルの一覧を表示して終了する。 |
| -n, --dry-run | テスト実行する(出力ファイルを保存しない)。 |
| -o, --outfile=file | 出力を file に書き出す。単一入力の場合のみ。 |
| -q, --quiet | 各ページの情報を表示しない。 |
| -r, --recursive | 再帰的に処理する。 |
| -s, --suffix=suffix | 入力ファイル名+suffix を出力ファイル名として使用する。 |
| -u, --update | 入力が出力より新しい場合、または出力が存在しない場合のみ処理する。 |
| オプション | 説明 |
|---|---|
| -B, --bleach-pages=pages | 指定されたページを漂白する。(例: 1,3-5 or all) |
| -P, --pages=pages | 指定されたページだけを処理する。(例: 1,3-5) |
| -Q, --jpeg-quality=jpegQuality | JPEGの品質を指定する。(デフォルト: 50) |
| -S, --screen-size=screenSize | 出力画面サイズを指定する。(デフォルト: 1536x2048) |
| -T, --number-of-threads=numberOfThreads | 使用するスレッド数を指定する。(デフォルト: CPUコア数) |
| -W, --double-page-threshold=doublePageThreshold | 見開きサイズの閾値を指定する。入力JPEGがこれ以下の場合、出力画面サイズを半分にする。(Default: 2539) |
| オプション | 説明 |
|---|---|
| -D, --degree=degree | 全ページの回転方向を degree にする。0、90、180、270のいずれかでなければならない。(デフォルト: 0) |
| -R, --ref-pdf=pdf | 各ページの回転方向を pdf ファイルに合わせる。 |
| オプション | 説明 |
|---|---|
| -R, --right-to-left | 右開きにする。 |
| オプション | 説明 |
|---|---|
| --clear | 編集前にカタログからOpenAction、PageLayout、ViewerPreferencesを削除する。 |
| -F, --fit | ページ全体を表示するよう拡大/縮小する。 |
| -L, --page-layout=layout | ページレイアウトを設定する。_layout_は SinglePage、OneColumn、TwoColumnLeft、TwoColumnRight、TwoPageLeft、TwoPageRight のいずれかである必要があります。 |
| -R, --right-to-left | 右開きにする。 |
Git、Java (25以降)、Maven、ImageMagick (6以降) をインストールし、クローン&ビルドします。
git clone https://github.com/alpha3166/optimpdf
cd optimpdf
mvn package