複数のPDFファイルのページ数を表示・取得できるかメモ

PDFファイルのページ数を確認したいことがありました。

その簡単なメモです。執筆時点では、PDFファイルの作成の仕方か、windows環境自体によるのか、うまくいくケースと駄目なケースとあり、着地は悪いです。

PDFファイルのページ数を確認する

Windows環境です。なお以下の方法が確認出来たのは、Windows7+32bitのはずです。

  1. エクスプローラを起動する
  2. PDFファイルを検索、またはPDFファイルがあるフォルダを開く
  3. エクスプローラを表示形式を詳細にする。また、名前、更新日時などの「列名」欄を右クリックして、「その他」を選び「ページ数」を追加する
  4. PDFファイルのページ数が表示される

さらに、ページ数については、検索欄に「ページ数:1」とすれば、1ページのみのPDFファイルが表示されました。また「ページ数:>=3」とすれば、3ページ以上のPDFファイルが表示されました。

OSが古いですが図の説明イメージが欲しい方は以下が参考になります。

エクスプローラの[詳細]表示をカスタマイズする

Windows10+64bitでは確認できず

メインで使っているのはWindows10+64bitなのですが、これだと上記のことをやっても表示されませんでした。PDFファイル自体は、自分で作ったWord→PDFとかでなく、色々なPDFファイルをHDD全体で見ても同様でした。

MSコミュニティで同様の投稿がありました。

フォルダ内の表示する項目のページ数について PDF データのページ数が表示されません

これについては未解決です。モデレーターの方も、Windows7で駄目とあったので、なんとも着地が悪い感じですね(笑)

pdftkツールでコマンドラインから調べてみた→精度が微妙

コマンドラインからいけるのではと思ったらそれっぽいソフトがありました。ただ結論的には全PDFファイルのページ数を取得できなかったので、実際にやってみてどうかという感じでしょうか。

例えば100ファイル程度あれば手で頑張っても、それ以上ならこのやり方をある程度検討しても良さそうです。とはいえ今回テストでは7割程度のカバー率でした。

Windowsバッチ・コマンドで,大量のPDFを一括で結合・分割し,各ページ数を調べて一定サイズにまとめよう (pdftkをコマンドプロンプトやWSHから使う方法)

で紹介されているpdftkツールを入れてみると、

pdftk 調べたいファイル名.pdf dump_data

と入れると確かにページ数は取得できます。

ただ一個ずつやるのでは意味がないので、単純にFOR分で同じ命令を繰り返せばいけるのではというところです。例えば、バッチファイルを作って、

FOR %%f IN (*.pdf) DO pdftk %%f dump_data | findstr NumberOfPages

のようにします。これによって、手入力は避けられるのですが、コマンドプロンプト上で出しても意味がなさそうという感じです(ここではページ数を見たいとは、リスト化してみたいケースを想定しています)。

苦肉の策として、コマンドプロンプトで出力命令である「>」をファイルにして、

pagect.bat > aa.txt

とすれば、aa.txtに、

C:\Users\ユーザー名\Desktop>pdftk line.pdf dump_data | findstr NumberOfPages 
NumberOfPages: 1
C:\Users\ユーザー名\Desktop>pdftk 違和感発想法.pdf dump_data | findstr NumberOfPages 
NumberOfPages: 8

みたいに、テキストファイルで取れます。これをサクラエディタなどマクロを使って整形すれば、ファイル名+ページ数が出せます。

これで終わればいいのですが、実はNumberOfPages:として数字を取ってこれたのは、70件PDFがあるものの中で、48件でした。これを出すにも、がちゃがちゃ正規表現取ってきたり、なんとも初心者向けにはつらいです。しかも頑張っても、48件しか取れず。というわけで、実用的ではないなあと思ったりしました。7割程度のカバー率です。

上のバッチファイル作成などが良くわからない人は全くおすすめできないです。仮にある程度分かる人は検討の価値はどうしてもやりたいならありかもです。

他のCUIツールは試してないのですが、まあ必ずページ数を読み取れるとかってことはなさそうですね。ちなみに、ここで取れなかったページ数のPDFファイルは、当然PDFファイルをAcrobatReaderDCで開いて見ればプロパティにページ数は表示されていました。

目視で良いならCubePDFPageもあり

PDFページ数を知りたいといっても、PDFファイル数が100個程度までならこの方法でも良さそうです。このソフトで何ファイルまでいけるかは未確認なので試してみてください。画面は最大化もできるのでサイズは動かせます。

CubePDF Page

フリーソフトです。例えば対象のPDFファイルをドラッグすればOKです。

CubePDF Pageの実行画面

これを見て事足りるかどうかというところですね。

ページ数を押すとソートできそうな気もしますが、ソートは出来ませんので、さすがにそこは期待しすぎというところでした。またこれらの情報をコピーできるかと思ったのですがそれも無理でした。

目視であればこのようなツールで回避可能かもしれません。

おわりに

こういったやりたいことを実現する時に意外に「面倒」なことは山程ありますよね。実際にページ数くらい簡単に取れないかという時、例えば上のPDFtkであれば、GUIツールもあるのでそこでPDFファイルを読み込ませればページ数が見えました。

ただなぜか大量のファイルを読み込ませるとエラーとなり、一個ずつ入れていけば見えました。このあたりがなんともですが、日本語名が問題なのか、そのあたりであればまたリネームしたりとなんともですね。

ひとまず、ベストプラクティスとしては、エクスプローラ標準機能でやってみて駄目なら他のソフトで開くなり、ツールで検討していくということになりそうです。

何か他の良いやり方があったらこっそり教えてください。

以上です。

タイトルとURLをコピーしました