一部のPDFファイルには、コンテンツをクリップボードにコピーできないようにするフラグが設定されています。印刷やその他の一部のジョブも無効にすることができます。qpdf -decrypt
この制限は通常、コマンドを使用して簡単に削除できます。
私が望むのは、復号化操作を適用せずに(実際にPDFを開いて何かをコピーしようとせずに)PDFが制限されていることを確認して、スクリプトを実行して特定のファイルシステムで制限付きファイルをすべて見つけることができるようにすることです。
答え1
ポプラpdfinfo
特定のPDFで有効になっている保護を確認するために使用できるツールを提供します。制限されたPDFでは暗号化が有効になっており、pdfinfo
とりわけ次のような行を出力します。
Encrypted: yes (print:no copy:no change:no addNotes:no algorithm:RC4)
そのように
pdfinfo yourpdf.pdf | grep -q 'Encrypted:.*yes \(.*copy:no.*\)'
PDFがコピーを許可しない場合にのみ成功します。
答え2
qpdf
確認できる機能もあります。たとえば、次のように使用できます。
qpdf --is-encrypted FILE.pdf
または
qpdf --requires-password FILE.pdf
結果はを介してアクセスできますecho $?
。詳細を確認してくださいqpdf --help=inspection
。
答え3
あなたはそれを使用することができますpdfly
pypdfを使用します(私は著者です)。
インストールする
これはPythonパッケージなので、次のようになります。
pip install pdfly
システムに応じてpip3
。また、ユーザーにのみ適用される場合は、この--user
フラグを追加できます。
使用できるpipx
インストールしてください。
使用法
$ pdfly meta encrypted-pdf.pdf
Operating System Data
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Attribute ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ File Name │ /home/moose/Downloads/encrypted-pdf.pdf │
│ File Permissions │ -rw-rw-r-- │
│ File Size │ 18,950 bytes │
│ Creation Time │ 2023-07-02 23:23:18 │
│ Modification Time │ 2023-07-02 23:23:18 │
│ Access Time │ 2023-07-04 22:55:44 │
└───────────────────┴─────────────────────────────────────────┘
PDF Data
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ Attribute ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩
│ Title │ │
│ Producer │ │
│ Author │ │
│ Pages │ unknown │
│ Encrypted │ revision=6 v_value=5 │
│ PDF File Version │ │
│ │ endobj │
│ │ │
│ Page Layout │ │
│ Page Mode │ │
│ PDF ID │ ID1=None ID2=None │
│ Attachments │ unknown │
│ Images │ 0 images (0 bytes) │
└──────────────────┴──────────────────────┘
Encryption information
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ Attribute ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ Security Handler Revision Number │ 6 │
│ V value │ 5 │
└──────────────────────────────────┴───────┘
Use the 'pagemeta' subcommand to get details about a single page
または:
$ pdfly meta encrypted-pdf.pdf --output json
{"encryption": {"revision": 6, "v_value": 5}, "pdf_file_version": "\nendobj\n", "title": null, "producer": null, "author": null, "pages": null, "page_mode": null, "page_layout": null, "attachments": "unknown", "id1": null, "id2": null, "images": [], "file_permissions": "-rw-rw-r--", "file_size": 18950, "creation_time": "2023-07-02T23:23:18.056793", "modification_time": "2023-07-02T23:23:18.056793", "access_time": "2023-07-04T22:55:44.186378"}