Skip to content

Latest commit

 

History

History
124 lines (87 loc) · 6.44 KB

File metadata and controls

124 lines (87 loc) · 6.44 KB

OptimPDF

1ページが1枚の画像で構成されているような画像ベースのPDFを、ハンドヘルドデバイス向けに最適化するツールです。画像ファイルのZIPをPDF化する機能も持ちます。

サブコマンド

以下のサブコマンドを受け付けます。

reduce

  • PDF内の画像が、指定したサイズにぴったり収まる画素数になるよう縮小します。
  • もともと指定サイズよりも小さい画像はオリジナルのサイズを保ち、拡大はしません。
  • 縦長の画像はデバイスを縦置きしたときにぴったりの画素数に、横長の画像はデバイスを横置きしたときにピッタリの画素数にします。
  • 指定した閾値よりも小さな画像は、デバイス上で見開き表示したときにぴったりの画素数になるよう縮小します。
  • 紙焼けの色を薄くする機能も持ちます。ただし、これを使用すると薄い網の色も消えてしまうことがあります。

rotete

  • PDFの各ページの回転方向を、指定した角度(0、90、180、270のいずれか)に揃えます。
  • 参照するPDFを指定し、そのPDFの各ページの回転方向に合わせることもできます。これは、Adobe AcrobatのOCRで回転されてしまったページを元に戻す際などに有効です。

unzip

  • ZIPファイルから画像ファイルだけを抽出し、1ページが1枚の画像で構成されたPDFを作成します。
  • PDFが右開きになるよう指定することもできます。
  • ZIP内のパスでソートした順序で出力します。

setview

  • PDFの初期表示設定を変更します。
  • ページレイアウト、ズームレベル、読み込み方向を指定できます。
  • PDFリーダーで開いたときの表示方法を設定するのに便利です。

起動方法

  1. Java (25以降) とImageMagick (6以降) をインストールします。

  2. Releaseページからoptimpdf-2.1.0-jar-with-dependencies.jarをダウンロードします。

  3. コマンドラインから、サブコマンドと対象ファイルを引数に指定して、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 入力が出力より新しい場合、または出力が存在しない場合のみ処理する。

reduceサブコマンドのオプション

オプション 説明
-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)

rotateサブコマンドのオプション

オプション 説明
-D, --degree=degree 全ページの回転方向を degree にする。0、90、180、270のいずれかでなければならない。(デフォルト: 0)
-R, --ref-pdf=pdf 各ページの回転方向を pdf ファイルに合わせる。

unzipサブコマンドのオプション

オプション 説明
-R, --right-to-left 右開きにする。

setviewサブコマンドのオプション

オプション 説明
--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