Skip to main content

No project description provided

Project description

PDF-Sanitizer

PDFSanitizer é uma ferramenta Python poderosa para analisar, detectar e tratar conteúdos suspeitos dentro de arquivos PDF. Ideal para ambientes que lidam com documentos potencialmente inseguros, ela permite identificar elementos como textos ocultos, fontes esquisitas, caracteres de controle e imagens com características suspeitas.

Funcionalidades

  • 📄 Análise de conteúdo textual (texto invisível, fontes estranhas, etc.)
  • 🖼️ Verificação de imagens (entropia baixa, metadados suspeitos, tamanhos incomuns)
  • ✂️ Múltiplas formas de tratamento (remover, substituir, destacar ou apenas exibir)
  • 🔁 Suporte a múltiplos PDFs em uma única chamada
  • 🧪 Resultados prontos para serem consumidos por outras aplicações

Instalação

pip install pdf-sanitizer-diacde

Como funciona

  1. Recebe arquivos PDF codificados em base64
  2. Analisa cada página do PDF buscando textos e imagens suspeitas
  3. Aplica o tratamento configurado (remove, replace, highlight, show)
  4. Retorna o PDF sanitizado + as informações dos elementos suspeitos encontrados

Uso

Função principal

from your_module import sanitize_pdf

# Um único PDF base64
result = sanitize_pdf(pdf_base64_data, error_treatment="remove", show_info=True)

# Vários PDFs
results = sanitize_pdf([pdf1_base64, pdf2_base64], error_treatment="highlight", show_info=True)

Tratamentos disponíveis

  • "remove" – Remove o conteúdo suspeito
  • "replace" – Substitui por um marcador
  • "highlight" – Destaca o conteúdo (ex: texto vermelho, bordas)
  • "show" – Apenas mostra, sem modificações

Estrutura do Projeto

  • PDFSanitizer: Classe principal, herda lógica da classe ProcessPDFMethods
  • ProcessPDFMethods: Onde a mágica acontece – análise de texto, imagens e reescrita das páginas
  • sanitize_pdf: Interface externa para uso em aplicações ou pipelines
  • SanitizationResult: Objeto de retorno que contém:
    • base64_pdf: PDF tratado
    • is_doc_suspect: Booleano indicando se há algo estranho
    • suspect_elements: Lista de textos/imagens considerados suspeitos

Regras de Detecção

Texto

  • hidden_text_rule: Detecta texto invisível (ex: branco em fundo branco)
  • weird_font_rule: Detecta fontes não usuais
  • control_character_rule: Caracteres ASCII de controle
  • margin_outlier_rule: Textos posicionados fora das margens usuais

Imagens

  • image_rule: Verifica entropia, metadados e resolução da imagem

Exemplo de Resultado

SanitizationResult(
    base64_pdf='JVBERi0xLjcKJ...',
    is_doc_suspect=True,
    suspect_elements={
        "text": [
            SuspectText(page_number=1, reason="potential harmful text", text="invisible spam")
        ],
        "images": [
            SuspectImage(page_number=2, reason="potential harmful image", image_name="img1.jpg", image_bytes=b'...')
        ]
    }
)

Contribuindo

Pull requests são mais do que bem-vindos! Envie melhorias de regras, tratamento, refatorações ou novas ideias.

⚠Aviso

Este projeto é experimental. Nenhuma regra substitui uma análise humana completa. Use com sabedoria!

Licença

MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pdf_sanitizer_diacde-1.3.1.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdf_sanitizer_diacde-1.3.1-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

Details for the file pdf_sanitizer_diacde-1.3.1.tar.gz.

File metadata

  • Download URL: pdf_sanitizer_diacde-1.3.1.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.4

File hashes

Hashes for pdf_sanitizer_diacde-1.3.1.tar.gz
Algorithm Hash digest
SHA256 c0e9880610a4cdb6007281210ba7ea1604c6c20d6e351344ce08380883e3fa58
MD5 2128e26c924582b1edf591e43c5fab07
BLAKE2b-256 fef5a614073e9b29b984879b51e0ccbc7f764e83c8a74c5cf3ef1129b5fbe155

See more details on using hashes here.

File details

Details for the file pdf_sanitizer_diacde-1.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pdf_sanitizer_diacde-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 72f50371d172f565878473e003611be68b12438ed8de9e84712347ec118bb784
MD5 c1f528f4e7fd01457d421acaa4f6830a
BLAKE2b-256 488c2d7507dca346ccd309d3c6627a52220a079228971f3af1b0710549382e02

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page