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.2.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.2-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pdf_sanitizer_diacde-1.3.2.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.2.tar.gz
Algorithm Hash digest
SHA256 023a702091b4f34fb1ad9395493d4d2d970d6e2de3a7aa0e9ae09ee8d6fcb925
MD5 c62e8cc6724ed13a50aabef3c0157d83
BLAKE2b-256 16c0489869c34d34a57d137fa463bef7188988c3991519225406b42ce2ff141c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pdf_sanitizer_diacde-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2ade4f2687bdac74a1a0634c84fde5055baa900b66b784292b4c5c556a6391d0
MD5 8f2410e5f67b981dcf6a2d20d52c48d9
BLAKE2b-256 ac9da38834dfe34f670bc9942362e20150dcc6a325501da33df10a17a6c362dc

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