Impedir a extração de texto de um documento PDF ofuscando o texto

Categoria do blog: PDF.NET

18.05.2020

VintaSoft Imaging .NET SDK suporta a capacidade de ofuscar a codificação de texto para todos os tipos de fonte.

Qual é o objetivo? Por exemplo, você publica um documento com acesso aberto (ou o fornece a terceiros) e não deseja que o texto do documento seja facilmente extraído por copiar/colar em qualquer visualizador de PDF.

Solução 1: Impedir a extração de texto usando sinalizadores das configurações de segurança do documento PDF; no entanto, a conformidade com as configurações dependerá do aplicativo que o usuário utiliza para visualizar o documento. O texto pode ser facilmente extraído se o visualizador de PDF ignorar as configurações de segurança do documento PDF.

Solução 2: Remover completamente as informações sobre a codificação do texto, misturar os glifos da fonte e os códigos dos símbolos na página. Isso pode ser feito usando a funcionalidade de ofuscação da codificação de texto fornecida no VintaSoft PDF .NET Plug-in. O mecanismo de ofuscação remove completamente as informações sobre a codificação do texto, mistura os glifos dos símbolos na fonte e na página e duplica fontes e glifos de símbolos. O texto ofuscado dessa forma pode ser extraído usando apenas OCR.

Vamos analisar a ofuscação de um documento PDF simples (document-without-text-obfuscation.pdf) usando o aplicativo VintaSoft PDF Editor Demo.

O documento contém duas páginas. Quatro frases foram escritas usando três fontes diferentes.

A primeira frase da primeira e da segunda página foi escrita usando a mesma fonte.
Text before text encoding obfuscation in PDF document

O painel de extração de texto e a caixa de diálogo de visualização de fontes mostram que todos os símbolos têm a codificação de texto correta.
Text characters before text encoding obfuscation in PDF document

A caixa de diálogo de ofuscação de codificação de texto pode ser acessada pelo menu do aplicativo: Text -> Obfuscate Text Encoding -> Settings
Standard settings for text encoding obfuscation in PDF document

Vamos realizar a ofuscação com as configurações padrão e revisar o documento de saída com o texto ofuscado: document-with-default-text-obfuscation.pdf.

A revisão do documento mostra que as fontes foram completamente alteradas e os glifos foram realocados aleatoriamente. O texto extraído pode ser visualizado no painel de extração de texto.
Text after text encoding obfuscation in PDF document

Como a primeira frase em ambas as páginas foi escrita com a mesma fonte, os símbolos da primeira palavra (destacados em verde) em ambas as páginas são os mesmos:
The same word is written using one font after text encoding obfuscation in PDF document

Você pode pensar: "Vou escrever um programa simples e extrair o texto. Vou criar manualmente uma tabela de mapeamento de caracteres e decodificar o texto." Sim. Isso é possível, especialmente quando há poucas fontes no documento. Por isso, implementamos as configurações de ofuscação, que tornam a decodificação praticamente impossível.

Vamos abrir novamente a caixa de diálogo de ofuscação de codificação de texto e: Settings for strong text encoding obfuscation in PDF document

Depois disso, vamos ofuscar a codificação de texto no documento PDF mais uma vez e revisar o documento PDF de saída com o texto ofuscado: document-with-strong-text-obfuscation.pdf.

Agora podemos observar que para a letra "e" foram usados ​​glifos diferentes e o texto extraído incluirá símbolos dessa letra com códigos diferentes.
The same character is written using different glyphs after text encoding obfuscation in PDF document

A palavra "Texto" da primeira linha agora está escrita com fontes diferentes. Em cada fonte, é usada sua própria localização aleatória e duplicação de glifos. Agora, os resultados desta extração de palavras da primeira e da segunda página são completamente diferentes:
The same word is written using different fonts after text encoding obfuscation in PDF document