![명령줄을 사용하여 제한된 PDF를 감지하는 방법은 무엇입니까?](https://linux55.com/image/164128/%EB%AA%85%EB%A0%B9%EC%A4%84%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%A0%9C%ED%95%9C%EB%90%9C%20PDF%EB%A5%BC%20%EA%B0%90%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
일부 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"}