MAGAZINE

ルーターマガジン

クローリング/スクレイピング

PDFを覗く ~pdfinfoの使い方~

2023.07.13
Pocket

こんにちは。アルバイトの秋山です。
今回はpdfinfoというコマンドについてインストール方法からコマンドの書式、オプション、様々なPDFファイルに対する実行例についてご紹介します。

pdfinfoとは?

pdfinfoはPDFファイルの操作するためのライブラリであるpopplerが提供するコマンドの一つで、PDFファイルの作成者や作成日時などのメタ情報を覗いてみたいときに使います。

pdfinfoの使い方

実行環境

  • OS:macOS 13.4.1

インストール(mac)

pdfinfoを提供するpopplerをインストールします。

brew install poppler

コマンドの書式

基本的な書式は以下のとおりです。

pdfinfo [オプション] PDFファイル名
 

pdfinfoでPDFの情報を見てみる

それでは実際にPDFの情報を見てみましょう。

OfficeファイルからエクスポートしたPDF

まずexcelファイルからエクスポートしたPDFの情報を見てみましょう。

まず最初に気がつくのは"Author"が"Microsoft Office ユーザー"と表示されていることでしょう。Officeソフトによって作成されたPDFであることが一瞬で分かってしまいます。

$ pdfinfo excel_to_pdf.pdf
Author: Microsoft Office ユーザー
Creator:
Producer:
CreationDate: Sat Jul 1 15:06:37 2023 JST
ModDate: Sat Jul 1 15:06:37 2023 JST
Custom Metadata: no
Metadata Stream: yes
Tagged: yes
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 1
Encrypted: no
Page size: 595.32 x 841.92 pts (A4)
Page rot: 0
File size: 52169 bytes
Optimized: no
PDF version: 1.7

webページから作成されたPDF

つづいてwebページをエクスポートしたPDFについても見てみます。

今回はGoogle Chrome上でwebページをPDFに変換しましたが、"Creator"を見てみるとGoogle ChromeのUserAgentの情報が表示されています。どのOSのどのバージョンのブラウザからPDFが作成されたかを判別することができてしまいます。

$ pdfinfo webpage_to_pdf.pdf
Creator: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Producer: Skia/PDF m114
CreationDate: Sat Jul 1 15:05:21 2023 JST
ModDate: Sat Jul 1 15:05:21 2023 JST
Custom Metadata: no
Metadata Stream: no
Tagged: yes
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 8
Encrypted: no
Page size: 594.96 x 841.92 pts (A4)
Page rot: 0
File size: 3141274 bytes
Optimized: no
PDF version: 1.4

パスワードつきのPDF

最後にパスワード付きのPDFの情報も見てましょう。

$ pdfinfo encrypted.pdf
Command Line Error: Incorrect password

やはり、そう簡単には情報を見ることはできませんでした。

パスワードで暗号化されたPDFの情報を見たいときには、下記のようにオプションでパスワードを指定する必要があります。”Producer”の項目を見ると今回の実行環境であるmacOSによってパスワードつきのPDFが作成されたことが分かりますね。

$ pdfinfo -upw password encrypted.pdf
Author: Microsoft Office ユーザー
Producer: macOS バージョン13.4.1(ビルド22F82) Quartz PDFContext
CreationDate: Sat Jul 1 15:11:48 2023 JST
ModDate: Sat Jul 1 15:11:48 2023 JST
Custom Metadata: no
Metadata Stream: no
Tagged: yes
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 1
Encrypted: yes (print:yes copy:yes change:no addNotes:yes algorithm:AES)
Page size: 595.32 x 841.92 pts (A4)
Page rot: 0
File size: 51758 bytes
Optimized: no
PDF version: 1.6

おわりに

今回はいくつかの実行例を通してpdfinfoの使い方をご紹介しましたがいかがだったでしょうか。コマンド一つでそんなことまでわかってしまうのかと不安になってしまったでしょうか。皆さんがPDFを作成するときには公開したくない情報がメタデータとして埋め込まれてしまっていないか注意していただきたいところですが、popplerでは他にも便利なコマンドが提供されているので、それらも合わせて使うことでPDFと慣れ親しんでいただければと思います。

 

関連

バイナリとPopplerによるPDFファイル内の画像検出
PDFに埋め込まれたテーブルを、画像処理でパースする
 
Pocket

CONTACT

お問い合わせ・ご依頼はこちらから