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

TOP > Coherent PDF Command Line Tools (CPDF)


Untitled

頑張って働いたら、家で夕飯だよ。

目次

  1. 概要 ※当ページ
  2. オペレーションの解説
  3. smpdf.exe の説明

概要

非常に多機能な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. 文書情報とメタデータ
    • ページ数の表示
    • ページ情報の一覧
    • フォントの一覧
    • 文書情報(タイトル、作者、キーワードなど)の読み出し
    • 文書情報の設定 ※使用には問題有り。注意点を参照。v2.2
    • ページレイアウト、ページモード、表示オプションの設定
    • メタデータの読み込み、削除、設定
  12. 添付ファイルの削除と一覧 ※抽出と保存の機能は無い
  13. その他
    • 細線を太く
    • 不足しているフォントを検出
    • 低解像度画像を検出
    • テキスト、塗りつぶしや線を黒く する
    • ドラフト文書を作成(画像を削除)
    • PDFファイルのガベージコレクション(不要データの削除)
    • PDFバージョンの値を変更
    • 1ファイルから別のファイルへ固有のIDをコピー
    • ユニコードUTF8のテキスト入力と出力をサポート
    • PDFのオープンアクションを設定
  14. PDFファイルの圧縮(smpdf.exe)

cpdf.exe のHelpの内容

1 >cpdf --help 2 Syntax: cpdf <op> <op-specific arguments> [-o <output file>] <input files> 3 4 This is a copyrighted, commercial program, and may NOT be freely copied. 5 6 Version 2.2 (patchlevel 1, build of 1st September 2017) 7 8 To buy, visit http://www.coherentpdf.com/ 9 10 Input names are distinguished by containing a '.' and may be 11 followed by a page range specification, for instance "1,2,3" 12 or "1-6,9-end" or "even" or "odd" or "reverse". 13 14 Operations (See manual for full details): 15 16 -version Print the cpdf version number 17 -o Set the output file, if appropriate 18 -i Add an input file 19 -idir Add a directory of files 20 -stdin Read input from standard input 21 -stdin-owner Owner password for -stdin 22 -stdin-user User password for -stdin 23 -stdout Send result to standard output 24 -range Explicitly add a range 25 -change-id Change the file's /ID tag 26 -no-preserve-objstm Don't preserve object streams 27 -create-objstm Create object streams anew 28 -keep-version Don't change the version number 29 -l Linearize output file 30 -keep-l Linearize if the input file was linearized 31 -cpdflin Set location of 'cpdflin' 32 -recrypt Keep this file's encryption when writing 33 -raw Do not process text 34 -stripped Process text by simple stripping to ASCII 35 -utf8 Process text by conversion to UTF8 Unicode 36 -fast Speed over correctness with malformed documents 37 -control Use a control file. Deprecated. Use -args. 38 -merge Merge a number of files into one 39 -retain-numbering Don't renumber pages when merging 40 -remove-duplicate-fonts Remove duplicate fonts when merging 41 -split Split a file into individual pages 42 -chunk Set chunk size for -split (default 1) 43 -split-bookmarks Split a file at bookmarks at a given level 44 -scale-page -scale-page "sx sy" scales by (sx, sy) 45 -scale-to-fit -scale-to-fit "x y" scales to page size (x, y) 46 -scale-contents Scale Contents by the given factor 47 -scale-center Scale contents around center 48 -scale-to-fit-scale -scale-to-fit-scale (1.0 = 100%) 49 -shift -shift "dx dy" shifts the chosen pages 50 -rotate Set rotation of pages to 0, 90, 180, 270 51 -rotateby Rotate pages by 90, 180 or 270 degrees 52 -rotate-contents Rotate contents of pages 53 -upright Make pages upright 54 -hflip Flip pages horizontally 55 -vflip Flip pages vertically 56 -crop Crop specified pages 57 -hard-box Hard crop specified pages to the given box 58 -remove-crop Remove cropping on specified pages 59 -frombox Set box to copy from 60 -tobox Set box to copy to 61 -mediabox-if-missing If copy from box missing, substitute media box 62 -mediabox Set media box on specified pages 63 -encrypt Encrypt a document 64 -decrypt Decrypt a file 65 -no-edit No edits 66 -no-print No printing 67 -no-copy No copying 68 -no-annot No annotations 69 -no-forms No forms 70 -no-extract No extracting 71 -no-assemble No assembling 72 -no-hq-print No high quality printing 73 -no-encrypt-metadata Don't encrypt metadata (AES only) 74 -decompress Decompress 75 -compress Compress streams, leaving metadata alone 76 -list-bookmarks List Bookmarks 77 -remove-bookmarks Remove bookmarks from a file 78 -add-bookmarks Add bookmarks from the given file 79 -presentation Make a presentation 80 -trans Set the transition method for -presentation 81 -duration Set the display duration for -presentation 82 -vertical Set dimension for Split and Blinds styles 83 -outward Set direction for Split and Box styles 84 -direction Set direction for Wipe and Glitter styles 85 -effect-duration Set the effect duration in seconds 86 -stamp-on Stamp a file on some pages of another 87 -stamp-under Stamp a file under some pages of another 88 -scale-stamp-to-fit Scale the stamp to fit the page 89 -combine-pages Combine two files by merging individual pages 90 -add-text Superimpose text on the given range of pages 91 -remove-text Remove text previously added by cpdf 92 -add-rectangle Add a rectangle to the page 93 -bates Set the base bates number 94 -bates-at-range Set the base bates number at first page in range 95 -bates-pad-to Pad the bates number with leading zeroes to width 96 -font Set the font 97 -font-size Set the font size 98 -no-embed-font Do not embed fonts 99 -color Set the color 100 -opacity Set the text opacity 101 -outline Use outline mode for text 102 -linewidth Set line width for outline text 103 -pos-center Set position relative to center of baseline 104 -pos-left Set position relative to left of baseline 105 -pos-right Set position relative to right of baseline 106 -top Set position relative to center top of page 107 -topleft Set position relative to top left of page 108 -topright Set position relative to top right of page 109 -left Set position relative to center left of page 110 -bottomleft Set position relative to bottom left of page 111 -bottom Set position relative to center bottom of page 112 -bottomright Set position relative to bottom right of page 113 -right Set position relative to center right of page 114 -diagonal Place text diagonally across page 115 -reverse-diagonal Place text diagonally across page from top left 116 -center Place text in the center of the page 117 -justify-left Justify multiline text left 118 -justify-right Justify multiline text right 119 -justify-center Justify multiline text centre 120 -underneath Text stamp is underneath content 121 -line-spacing Line spacing (1 is normal) 122 -midline Adjust text to midline rather than baseline 123 -topline Adjust text to topline rather than baseline 124 -relative-to-cropbox Add text relative to Crop Box not Media Box 125 -prerotate Calls -upright on pages before adding text 126 -twoup Put 2 pages onto one 127 -twoup-stack Stack 2 pages onto one twice the size 128 -pad-before Add a blank page before the given pages 129 -pad-after Add a blank page after the given pages 130 -pad-every Add a blank page after every n pages 131 -pad-multiple Pad the document to a multiple of n pages 132 -list-annotations List annotations 133 -copy-annotations Copy annotations from given file 134 -remove-annotations Remove annotations 135 -list-fonts Output font list 136 -info Output file information 137 -page-info Output file information 138 -set-author Set Author 139 -set-title Set Title 140 -set-subject Set Subject 141 -set-keywords Set Keywords 142 -set-create Set Creation date 143 -set-modify Set Modification date 144 -set-creator Set Creator 145 -set-producer Set Producer 146 -set-trapped Mark as trapped 147 -set-untrapped Mark as not trapped 148 -set-page-layout Set page layout upon document opening 149 -set-page-mode Set page mode upon document opening 150 -open-at-page Set initial page 151 -open-at-page-fit Set inital page, scaling to fit 152 -set-metadata Set metadata to the contents of a file 153 -print-metadata Output metadata information 154 -remove-metadata Remove document metadata 155 -hide-toolbar Hide the viewer's toolbar 156 -hide-menubar Hide the viewer's menubar 157 -hide-window-ui Hide the viewer's scroll bars etc. 158 -fit-window Resize document's window to fit size of page 159 -center-window Position window in the center of screen 160 -display-doc-title Display document's title in the title bar 161 -pages Count pages 162 -list-attached-files List attached files 163 -attach-file Attach a file 164 -to-page Attach file to given page instead of document 165 -remove-files Remove embedded attached document-level files 166 -image-resolution List images under a given dpi 167 -copy-font Copy a named font 168 -copy-font-page Set the page a copied font is drawn from 169 -remove-fonts Remove embedded fonts 170 -copy-font-name Set the name of the font to copy 171 -missing-fonts List missing fonts 172 -remove-id Remove the file's /ID tag 173 -draft Remove images from the file 174 -boxes Add crossed boxes to -draft option 175 -blacktext Blacken document text 176 -blacklines Blacken lines in document 177 -blackfills Blacken fills in document 178 -thinlines Set minimum line thickness to the given width 179 -remove-clipping Remove clipping paths 180 -clean Garbage-collect a file 181 -set-version Set PDF version number 182 -copy-id-from Copy one file's ID tag to another 183 -print-page-labels Print page labels 184 -remove-page-labels Remove page labels 185 -add-page-labels Add or replace page labels 186 -label-style Set label style (default DecimalArabic) 187 -label-prefix Set label prefix (default none) 188 -label-startval Set label start value (default 1) 189 -remove-dict-entry Remove an entry from all dictionaries 190 -producer Change the /Producer entry in the /Info dictionary 191 -creator Change the /Creator entry in the /Info dictionary 192 -list-spot-colors List spot colors 193 -squeeze Squeeze 194 -squeeze-log-to Squeeze log location 195 -help Display this list of options 196 --help Display this list of options


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

smpdf.exe のHelpの内容

PDFファイルの最適化をします。非商用のみ使用可能です。
※現時点(2017/9/23)では配布の確認が出来ません。CPDFのv2.1 には含まれていました。 v2.2 には含まれてません。

1 >smpdf -help 2 smpdf input.pdf -o output.pdf [-keep-l] [-pw password] 3 4 -o Set the output file 5 -keep-l Keep linearization, if present 6 -pw The user password, if required 7 -version Print the version number and exit 8 -help Display this list of options 9 --help Display this list of options 10 11 >smpdf -version 12 smpdf Version 1.4.1


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

Web用の最適化(リニアライズ)をしたい時は -keep-l オプションを追加します。但し、Web用の最適化をしたい時は商用のcpdflinが別途必要になります。

注目:Acrobat 本体の最適化と同等以上の圧縮率を出す時も有ります。

終了コード

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

  • 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

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

倍率(100%表示、全体表示、幅に合わせる、高さに合わせる、描画領域の幅に合わせる、25%~6400%)を変更するオプションは現時点では無いです。※Version 2.2

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

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.pdf -o out.pdf

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

Acrobat のOLEでも出来ますが完璧では無いです。出来ない部分をこの CPDF で補います。

以下のオプションが有ります。

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

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

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

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

>cpdf -utf8 -list-bookmarks input.pdf > siori-1.txt

注意:

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

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

0 "目次" 3 0 "はじめに" 28 1 "このマニュアルの内容" 28 1 "対象読者" 28

 

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

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

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

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

>cpdf -utf8 -remove-bookmarks input.pdf -o out-1.pdf

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

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

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

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

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

>cpdf -add-bookmarks siori.txt input.pdf -o output.pdf

実行結果は

Cpdf:しおりの追加後

しおりを手動で開くと

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

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

例:

0 "目次" 3 0 "はじめに" 28 open 1 "このマニュアルの内容" 28 1 "対象読者" 28 1 "関連ドキュメント" 28 0 "JavaScript API" 35 open 1 "ADBC" 36 open 2 "ADBC のプロパティ" 36 open 3 "SQL 型" 36 3 "JavaScript 型" 37

 

上記の実行結果は

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 」をご使用ください。

DownloadcLine-cpdfDemo.xls

001 Option Explicit 002 003 Private gDebugMode As Boolean 004 005 ' コマンドラインを起動するメイン・デモ 006 007 Sub Main_Demo() 008 009 Dim i As Long 010 Dim bRet As Boolean 011 Dim strOutFile1() As String 012 Dim strOutFile2() As String 013 014 '引数で使う変数 015 Dim strCmd As String 016 Dim strOutFile(1) As String 017 Dim strErr As String 018 Dim strWorkFolder As String 019 Dim lRetCode As Long 020 Dim lErrCount As Long 021 Dim lErrCode(2) As Long 022 023 gDebugMode = True '実運用ではFalse 024 025 '終了コードのセット 026 lErrCode(0) = 0 'Success 027 lErrCode(1) = 2 'Errors 028 lErrCode(2) = 1 'a bad or inappropriate Password 029 lErrCount = 2 'Ubound(lErrCode) 030 strCmd = "I:¥Tools¥Run¥CPDF-2.1¥cpdf.exe " & _ 031 "-hide-window-ui true " & _ 032 "-set-page-mode UseAttachments " & _ 033 "I:¥Tools¥Run¥CPDF-2.1¥IN-pass.pdf " & _ 034 "owner=pass " & _ 035 "-o I:¥Tools¥Run¥CPDF-2.1¥out.pdf" 036 037 'コマンドラインの実行 038 bRet = RunCommandLineEX(strCmd, strWorkFolder, _ 039 lErrCount, lErrCode, _ 040 strOutFile, strErr, lRetCode) 041 042 If gDebugMode Then 043 '実行結果の表示 044 Debug.Print "bRet=" & bRet 045 Debug.Print "lRetCode=" & lRetCode 046 strOutFile1 = Split(strOutFile(0), vbCrLf) 047 strOutFile2 = Split(strOutFile(1), vbCrLf) 048 Debug.Print "strErr=" & strErr 049 For i = 0 To UBound(strOutFile1) 050 Debug.Print "msg1 i(" & i & ")="; strOutFile1(i) 051 Next i 052 For i = 0 To UBound(strOutFile2) 053 Debug.Print "msg2 i(" & i & ")="; strOutFile2(i) 054 Next i 055 End If 056 MsgBox "End " & Now 057 End Sub 058 059 Public Function RunCommandLineEX( _ 060 ・・・・) As Boolean 061 062 'ココはVBA関数「 RunCommandLineEX 」をご使用ください。 063 064 End Function


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

ライセンス

▽ 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)では見れないと言う事です。
       
    コチラ なら日本語でも問題無く設定できます。
    また「関数:PDFの文書プロパティ(概要)を更新」も少し注意点は有りますが、かなり有効なやり方です。

備考

  • 「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へ戻る >

「CPDF:メッチャ多機能なPDFのコマンドライン・ツール」への2件のフィードバック

  1. こんにちは。
    無理を承知で教えて下さい。

    CPDFコマンドで、あるCSVの内容をPDFに書き込みたいのですが可能でしょうか?
    PDFの中身を検察する際にこのようなことがしたいです。
    自動でやりたいのでDOSコマンドを用いてバッチ処理が目的です。
    可能かどうかご教授をお願い致します。

    OS:WINDOWS10
    AcrobatReader DC:2020.006.20034

  2. 田中 さん
    はじめまして。

    >・・あるCSVの内容をPDFに書き込み・・

    CPDFにその様な機能は無いと思います。

    >・・PDFの中身を検察・・

    スイマセンが、この部分の意味は理解できません。

コメントを残す

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

CAPTCHA



SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください