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 pdf_sanitizer_diacde 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.3.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.3-py3-none-any.whl (3.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pdf_sanitizer_diacde-1.3.3.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.3.tar.gz
Algorithm Hash digest
SHA256 8f31ca26f44f5194354919d078755a6091e123896897981d413a123299fb9b3a
MD5 1a15f26d5cff3472bdcfe8c0d8bf59be
BLAKE2b-256 0494b3b158f4f39e33221bcd931bfbd3cd4fa66508a6789637629404ae88cb4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pdf_sanitizer_diacde-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1a8b77091fcdfe264ef28271ef3938393e6a91f02295ced9d0b724f89f85d9e6
MD5 c38756d4d32da14961a4abf27a60238b
BLAKE2b-256 8c8a1ce5eaaf3074cb56e3870daf370de315a0a2a507b07d75bef428938730de

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