CPDF:メッチャ多機能なPDFのコマンドライン・ツール

TOP > Coherent PDF Command Line Tools (CPDF)


Untitled

概要

非常に多機能なPDFのコマンドライン・ツールです。多機能すぎて、解説は時間的も容量的にもかなり無理が有ります。

他のコマンドライン・ソフトを合体させて、更にプラス機能 x 10倍ぐらいを持っていると言えるかもしれません。

文書プロパティ(タイトル、作者、キーワード、ページレイアウト、ページモード、表示オプション等)の設定が出来るのは嬉しいです。

コマンドライン・ソフトなのでVBA等などのプログラミングからも実行可能です。

 

注記:ライセンスを御覧ください。

呼び方:コヘレント  ピーディーエフ  コマンドライン  ツール  コミュニュケーション  リリース(Coherent PDF Command Line Tools Community Release)では長いの シーピーディエフ (CPDF)コミュニュケーション版  でイイと思います。

 

ダウンロード

ココをクリックするとCoherent PDF Command Line Tools Community Release のサイトが表示されます。「Download pre-built tools now」の部分をマウスでクリックすると実行ファイルのダウンロード「cpdf-binaries-master.zip」が出来ます。

Coherent PDF Command Line Tools ツールのダウンロード

 

インストール

インストーラーは無いです。圧縮ファイル「cpdf-binaries-master.zip」を解凍するだけです。その解凍フォルダ内に有るWindowsフォルダの cpdf.exe をDos画面上で実行します。

 

マニュアルのダウンロード

多機能ゆえにマニュアルが無いと操作できません。ココのサイトを開いて「PDF document」をクリックするとPDFファイルがダウンロードできます。Webページのマニュアウルは「browsable online」をクリックすると表示されます。

Coherent PDF Command Line Tools ツールのPDFマニュアをダウンロード

全て英語ですが、簡単な文章と豊富な見やすいサンプルが書かれています。英語が不慣れな人も時間が経てば使えるようになると信じています。

 

機能

機能のハイライト部分をピックアップします。各機能別に更に細かな設定や操作が出来るようになっています。(いました

  1. 一般的な機能
    • ページ範囲を指定
    • PDFファイルのパスワード指定
    • 標準入力と標準出力で連鎖コマンドを使用
    • PDFファイルのIDを維持、変更
    • 制御ファイルを読み込んでコマンドラインを実行
    • Web用の最適化(リニアライズ)
    • 完全なエラー処理とプログラムからの呼び出し
    • 1つのコマンドラインで複数の操作の組み合わせが可能
  2. マージおよび分割
    • しおり(ブックマーク)を保って、複数のPDFファイルをマージ
    • 関連しおりを維持し、PDFファイルを分割
    • しおりの境界(章、節など)でPDFファイルを分割
  3. ページの操作
    • ページの拡大縮小(1つの用紙サイズから別のサイズ)
    • フィットするようにページの拡大縮小
    • ページ内容を移動(余白の変更など)
    • 絶対的または相対的な条件でページを回転
    • 水平または垂直にページを反転
    • ページのトリミング、またはトリミングを削除
    • ページのメディアボックスを設定
  4. 暗号化と40ビットおよび128ビットRC4、または128ビットと256ビットのAESセキュリティを使用してPDFファイルを復号化
  5. PDFファイル内のストリームの圧縮と解凍
  6. しおり(ブックマーク)
    • しおりの一覧
    • しおりを削除
    • しおりを追加
  7. トランジション効果を持つPDFベースのプレゼンテーションを作成
  8. ロゴ、透かし、スタンプ
    • ページの上または下にスタンプ
    • 個々のページを組み合わせて、2つのファイルを組み合わせる
    • 異なるフォント、色、サイズと透明性のページに、テキスト、ページ番号、または通し番号を追加
    • 両端揃えを含む複数行のテキストの段落を追加
    • 他のPDFからフォントをコピーして任意のフォントの使用を可能にする
  9. 複数ページの手法
    • 1つのページに複数のページを挿入(n-up)
    • 空白ページを挿入
  10. 注釈
    • 注釈の一覧表示
    • 注釈を別ファイルからコピー
    • 注釈の削除
  11. 文書情報とメタデータ
    • ページ数の表示
    • ページ情報の一覧
    • フォントの一覧
    • 文書情報(タイトル、作者、キーワードなど)の読み出し
    • 文書情報の設定
    • ページレイアウト、ページモード、表示オプションの設定
    • メタデータの読み込み、削除、設定
  12. 添付ファイルの追加と削除
  13. その他
    • 細線を太く
    • 不足しているフォントを検出
    • 低解像度画像を検出
    • テキスト、塗りつぶしや線を黒く する
    • ドラフト文書を作成(画像を削除)
    • PDFファイルのガベージコレクション(不要データの削除)
    • PDFバージョンの値を変更
    • 1ファイルから別のファイルへ固有のIDをコピー
    • ユニコードUTF8のテキスト入力と出力をサポート
    • PDFのオープンアクションを設定
  14. PDFファイルの圧縮(smpdf.exe)

 

cpdf.exe のHelpの内容

 

smpdf.exe のHelpの内容

 

終了コード

プログラム等から起動した時に結果を判断するための終了コードを返します。

  • 0 : 正常終了
  • 1 : パスワードの指定ミス
  • 2 : エラー

 

使用例

アッチ(英語)にもサンプルが公開されてますが、日本語でないと感覚的に判らないです。一部分ですが、文書プロパティの「開き方」タブの、レイアウトと倍率、ウィンドウオプション、ユーザーインターフェイスオプションの設定変更のサンプルです。テスト済みです。

Coherent PDF Command Line Tools (CPDF)で文書のプロパティを設定

 

▽ レイアウトと倍率 / 表示

Coherent PDF Command Line Tools (CPDF)で文書のプロパティを設定

  1. ページのみ
    >cpdf  -set-page-mode UseNone  in.pdf -o out.pdf
     
  2. しおりパネルとページ
    >cpdf  -set-page-mode UseOutlines  in.pdf -o out.pdf
     
  3. ページパネルとページ
    >cpdf  -set-page-mode UseThumbs  in.pdf -o out.pdf
     
  4. 添付ファイルパネルとページ
    >cpdf  -set-page-mode UseAttachments  in.pdf -o out.pdf
      
  5. レイヤーパネルとページ
    >cpdf  -set-page-mode UseOC  in.pdf -o out.pdf
     

 

▽ レイアウトと倍率 / ページレイアウト

Coherent PDF Command Line Tools (CPDF)で文書のプロパティを設定

  1. 単一ページ
    >cpdf  -set-page-layout SinglePage  in.pdf -o out.pdf
     
  2. 連続ページ
    >cpdf  -set-page-layout OneColumn  in.pdf -o out.pdf
     
  3. 見開きページ
    >cpdf  -set-page-layout TwoPageLeft  in.pdf -o out.pdf
     
  4. 連続見開きページ
    >cpdf  -set-page-layout TwoColumnLeft  in.pdf -o out.pdf
     
  5. 見開きページ(表紙)
    >cpdf  -set-page-layout TwoPageRight  in.pdf -o out.pdf
     
  6. 連続見開きページ(表紙)
    >cpdf  -set-page-layout TwoColumnRight  in.pdf -o out.pdf
     

▽ レイアウトと倍率 / 開くページ

Coherent PDF Command Line Tools (CPDF)で文書のプロパティを設定

「開くページ」を15にセット
>cpdf  -open-at-page 15  in.pdf -o out.pdf

 

▽ ウィンドウオプション

Coherent PDF Command Line Tools (CPDF)で文書のプロパティを設定

  • True : チェックをオン
  • Flase : チェックをオフ
  1. 「ページにウィンドウサイズを合わせる」をオン
    >cpdf  -fit-window true  in.pdf -o out.pdf
     
  2. 「ウィンドウを画面中央に配置」をオン
    >cpdf  -center-window true  in.pdf -o out.pdf
     
  3. 「フルスクリーンモードで開く」をオン
    >cpdf  -set-page-mode FullScreen in.pdf -o out.pdf
    注記:逆にオフにする方法が見つかってないので、実行時は要注意!
      どうしてもオフにしたい方はコメントを下さい。(面倒だが裏ワザ有
     
  4. 表示を「文書のタイトル」にセット(True)。「ファイル名」は False 。
    >cpdf  -display-doc-title true  in.pdf -o out.pdf   
    Coherent PDF Command Line Tools (CPDF)で文書のプロパティを設定

 

▽ユーザーインターフェイスオプション





Coherent PDF Command Line Tools (CPDF)で文書のプロパティを設定

  • True : チェックをオン
  • Flase : チェックをオフ
  1. 「メニューバーを非表示」をオン
    >cpdf  -hide-menubar true in.pdf -o out.pdf
      
  2. 「ツールバーを非表示」をオン
    >cpdf  -hide-toolbar true in.pdf -o out.pdf
      
  3. 「ウィンドウコントロールを非表示」をオン
    >cpdf  -hide-window-ui true in.pdf -o out.pdf
      

オプションを組み合わせる

事も当然ですが可能です。

>cpdf  -hide-window-ui true -set-page-mode UseAttachments  in.p
df -o out.pdf

 

しおりの抽出、削除、登録

当サイトのコメントによく出てくる質問です。残念ですがAcrobat のOLEでは出来ません。が、この Cpdf なら出来ます。以下のオプションを使います。

  1. -list-bookmarks :しおりの一覧を出力
  2. -remove-bookmarks :しおりを全て削除
  3. -add-bookmarks :ファイルから情報を入力してしおりを新規登録。
    登録時にしおりのレベル、名前、移動先のページ番号、下位レベルのしおりの開閉状態を指示できます。

これでは判らないのでサンプルです。

 

1. サンプル:しおりの抽出

「input.pdf」PDFファイル上のしおりを「siori-1.txt」テキストファイルへ出力します。テキストファイルはDOSの「>」リダイレクトを使います。

注意:

  • 「-utf8」をオプションに追加しておかないと日本語文字が扱えません。「-utf8」無しでの実行結果と比べるとその意味が分かります。

「siori-1.txt」テキストファイルの出力サンプルです。

「0 "目次" 3」:最初の「0」はしおりのレベルです。0だからトップです。1の場合は前の0の下に入ります。「"目次"」はしおりの名前です。「3」は移動先のページ番号です。

オプションで出力ファイルを指定する「-o」が有りますが、-list-bookmarks はDOS画面上に出力するだけなので「-o」オプションは使用できません。よってリダイレクト「>」でテキスト出力させます。

 

2.サンプル:しおりを削除

input.pdf上の全てのしおりを削除して、out-1.pdfへ出力します。

当然ですが入力PDFにセキュリティが掛かっていると実行出来ません。元のPDFを変更する訳では無いのですが。間違ってセキュリティが掛かっている時は、一時的に「Qpdf : コマンドラインのPDFツール」を使って解除を行えば実行できます。

特定のしおりを削除する方法があるかを試してみましたが、無いみたいです。全て削除して再度登録し直すという手を使うしかないみたいです。

 

3.サンプル:しおりの登録

しおり情報が入った「siori.txt」テキストファイルを読み込んで、「input.pdf」PDFファイルにしおりを追加した状態で、結果を「output.pdf」PDFファイルへ出力します。

  • 「siori.txt」テキストファイルはしおりの一覧「-list-bookmarks」オプションで出力されたフォーマットと同じ形式になっている必要が有ります。
  • 既に存在するしおりを一旦全て削除した後に新規登録を行います。
  • 入力PDFにセキュリティが掛かっていると実行出来ません。間違ってセキュリティが掛かっている時は、一時的に「Qpdf : コマンドラインのPDFツール」を使って解除を行えば実行できます。

実行結果は

Cpdf:しおりの追加後

しおりを手動で開くと

Cpdf:しおりの追加後に、しおりを開いた場合。

なお、入力テキストファイルの各しおりの最後に「open」を付けると、そのしおりの下位の直下のしおりのみを開いた状態にします。下位の全てのしおりを開いた状態にする訳では無い点を注意して下さい。よって、更にその下位のレベルのしおりも開いた状態にしたい時は全てに「open」を付ける必要が有ります。

例:

上記の実行結果は

Cpdf:しおりの追加後(open例)

「-uft8」オプションは不要です。(テスト結果から

 

制御ファイルの使用

設定するオプションが多いとコマンドラインの文字数の制限を越える心配が出てきます。そこで「cpdf」以降の部分をテキストファイルにして、それを制御ファイル(Control Files)として読み込んで実行する機能が備わっています。

「-hide-window-ui true -set-page-mode UseAttachments in.pdf -o out.pdf」の内容を option1.txt テキストファイルへ事前に入れときます。

>cpdf  -args  option1.txt

でコマンドラインの実行が可能です。

テキストファイル option1.txt の内容を「-hide-window-ui true -set-page-mode UseAttachments」と入出力PDFを外して

>cpdf  -args  option1.txt  in.pdf -o out.pdf

としてもOKでです。制御ファイルはオプション単位で改行してもOKです。基本的に各オプションとその値は一つ以上の半角の空白文字を入れる事になっています。

これはイロイロと応用が出来るはずです。

 

VBAのサンプル

Excel VBA から CPDF を起動するサンプルです。オプションの編集、エラーの判定は全て自分で行う必要が有ります。

コマンドラインの実行はVBA関数「 RunCommandLineEX 」をご使用ください。

例:

 

ライセンス

▽ Coherent PDF Command Line Tools Community Release:無料版?

こちらのサイトのページトップには「Powerful, free tools to manipulate PDF files」=「PDF ファイル操作する強力な無料ツール」と書かれています。個人での使用(=非商用)に限り、無料で使える『みたい』です。ソースコードも公開されています。

▽Coherent PDF Command Line Tools:有償版

こちらはサイトを見ると無料と言う表現は見つかりません。ソフトもツールキットと言う表現が有ります。ダウンロードファイルも解説上はデモ扱いです。但し、ダウンロードの実行ファイルに制限や登録コード等は見当たりませんでした。ライセンスもサポート無し版もあります。ドキュメントにデモ版は30日期限の表現も見当たりました。

□まとめ

実行ファイルを見比べるとバージョンも「--help」表示も同じように見えますが、DIFFソフトで比較すると異なるファイルになります。どちらのサイトも問合せ窓口が有りますので、商用で使用する場合は事前確認をお願いします。個人で無料で使用したい方は「 Coherent PDF Command Line Tools Community Release」版の方をご利用ください。

 

日本語の対応

基本的には2バイト文字への対応は無い(みたい)です。

文書のプロパティでタイトル(Title)へ漢字を入れようとしてエラー「Bad UTF8 in codepoints_of_utf8」で出来ませんでした。「-utf8」も「-stripped」オプションもダメです。
「-raw」オプションは正常終了しましたが。「-info」では見ると漢字は無視されます。更にAcrobat で見ると全く結果が反映されてないです。

標準出力は UTF-8N で出力されていますから、プログラムでコード変換して読みこめば日本語の取得は出来ます。

しおりに日本語が入っている場合は -utf8  -list-bookmarks でしおり一覧をテキストに出力できます。標準出力で確認しました。 -utf8  が無いと日本語は無視されますので注意してください。
>cpdf  -utf8  -list-bookmarks  in.pdf  >  in-text.txt

このWindows 版ツールで日本語を扱うのは出来ないか、何らかの別の設定が必要かもしれません。

Linux版、Mac版は未確認ですが、ひょっとしたら環境を整えたら日本語は扱えるのかもしれません。(勘

 

注意点

  1. あくまでもテスト結果から見た考えです。前にも書きましたが。
     
    文書のプロパティでタイトル(Title)へ漢字を入れよう「-set-title」としてエラー「Bad UTF8 in codepoints_of_utf8」で出来ませんでした。「-utf8」も「-stripped」オプションを追加もダメです。
    「-raw」オプションは正常終了しましたが。「-info」では見ると漢字は無視されます。更にAcrobat で見ると全く結果が反映されてないです。つまり、PDFファイル内の反映する場所がCPDFとAcrobatとでは違うみたいです。
    結果、CPDFは独自の場所に情報を設定している可能性が有ります。

    文書のプロパティのタイトル関連に関して、CPDFで設定した内容はCPDFでは見れますが、Acrobat XI (+Acrobat Reader DC)では見れないと言う事です。
     
    でも コチラ なら日本語でも問題無く設定できます。

 

備考

  • 「Coherent PDF Command Line Tools」 ツールは長いので CPDF と省略する場合もあるみたいです。CPDFと言う時は有償版を言う雰囲気も多少はありますが。
  • 日本語文字の表示は未確認ですが。ファイルへの出力が出来るはずなので、後はプログラムで何とでも出来ると思っています。
  • 文書のタイトル、作成者、サブタイトル、キーワードの部分の設定は少し変です。「-info」で反映結果は確認できます。しかし実際にPDFを開いて文書プロパティを見てると全く反映されていません。メタデータにも残っていません。この結果はかなり変です。「-set-title」「-set-author」「-set-subject」「-set-keywords」「-set-creator」「-set-producer」
  • CPDF は poppler (又はxpdf )の上位互換では無いみたいなので、poppler の言語ファイルをインストールしても意味は無いみたいです。

 

< TOPへ戻る >

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

コメントをする時は最低でも以下をお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン