x-ray — это небольшая, но очень полезная Python‑библиотека и CLI‑утилита для поиска «плохих» редактирований в PDF: тех случаев, когда поверх текста просто нарисовали чёрный прямоугольник, но сам текст под ним по‑прежнему можно выделить и прочитать.
from pathlib import Path
from pprint import pprint
import xray
# 1. Указываем путь к PDF
pdf_path = Path("docs/sample.pdf")
# 2. Запускаем проверку: xray сам откроет файл и проанализирует его
bad_redactions = xray.inspect(pdf_path)
# 3. Структура результата:
# {
# 1: [
# {
# "bbox": (x1, y1, x2, y2), # координаты «чёрного прямоугольника»
# "text": "утёкший текст под ним"
# },
# ...
# ],
# 2: [...],
# ...
# }
pprint(bad_redactions)
# 4. Пример пост‑обработки: просто напечатаем найденные утечки по страницам
if not bad_redactions:
print("Плохих редактирований не найдено.")
else:
for page, items in bad_redactions.items():
print(f"\nСтраница {page}:")
for item in items:
bbox = item["bbox"]
text = item["text"]
print(f" BBox: {bbox}")
print(f" Текст: {text}")
Ключевые моменты: xray.inspect(...) принимает путь, URL или bytes; возвращает словарь, где ключи — номера страниц, а значения — списки словарей с координатами прямоугольника (bbox) и текстом, который под ним всё ещё читается.
#xray #Python #PDF #Redaction #BadRedactions #InfoSec #Privacy #LegalTech #PyMuPDF #CLI
https://github.com/freelawproject/x-ray
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - freelawproject/x-ray: A tool to detect whether a PDF has a bad redaction
A tool to detect whether a PDF has a bad redaction - freelawproject/x-ray
1🔥3👍1