Skip to content

È possibile produrre un PDF con testo non copiabile?

Vogliamo darti la migliore risposta che abbiamo trovato su internet. Vogliamo che tu lo trovi molto utile e se puoi condividere eventuali miglioramenti, fallo liberamente.

Soluzione:<61>

Oltre a convertire tutti i testi in immagini, un metodo che conosco è quello di distruggere le mappe C dei caratteri. Possiamo usare cmap e un file cmap speciale per questo scopo. Questo file cmap viene generato all'interno dell'ambiente VerbatimOut.

(Attenzione: non ha molto senso produrre PDF non copiabili. L'OCR è oggi molto semplice).

define_font

Luatex permette di manipolare i caratteri nella cartella define_font .
Luaotfload facilita ancora di più questo compito, grazie a un gancio aggiuntivo che installa
subito dopo che il caricatore di font ha finito il suo lavoro: l'elemento
<26> .
Normalmente viene usato per compiti seri e costruttivi, come l'impostazione di un paio di dimensioni di font
dimensioni dei font o garantire la compatibilità con le strutture di dati.
strutture dati.
Naturalmente, si può anche abusare di questa funzione per fare degli hack sporchi, come disabilitare il copia e incolla.
e incollare.

Nel punto in cui l'elemento patch_font viene applicato il callback, il font è
già definito e pronto all'uso.
Tutte le tabelle necessarie sono state create e messe in un posto dove Luatex
se le aspetta.
Tra queste c'è la tabella characters che contiene informazioni preelaborate
informazioni pre-elaborate sui glifi.
Nel codice seguente si modifica la tabella tounicode di ogni glifo in modo che
in modo che corrisponda a una posizione casuale all'interno dell'intervallo ASCII stampabile.
Si noti che questo non influisce sulla forma e sulla metrica del glifo, in quanto
glifo, poiché non sono correlati al punto di codifica effettivo.
Di conseguenza, il PDF conterrà un testo leggibile che non può essere
copiato.

File pacchetto obfuscate.lua:

pdftotext

Dimostrazione d'uso:

obfuscate.lua

Risultato nel visualizzatore PDF:

<23>

In contrasto con l'output di pdftotext:

rf2yC'I_J I_dI r_f{_ 9;H`bp<

Ma dimenticatevi immediatamente di tutto questo e non offuscate mai un testo di
testo di produzione - non siate cattivi con i vostri lettori!


EDIT
Poiché il generoso donatore di karma ha chiesto specificamente una soluzione Context
la inserirò come bonus.
È molto più elegante, poiché si basa sul metodo font goodies <61>
che consente l'applicazione di postprocessori a font specifici che
che possono essere usati in seguito proprio come le caratteristiche dei font comuni.

rf2yC'I_J I_dI r_f{_ 9;H`bp<

Osservazioni

Uso un piccolo script che converte tutti i miei font in percorsi. Lo script usa il primo parametro come input di un file .pdf-e scrive l'output in un file con lo stesso nome e l'estensione -rst.pdf

Per eseguire il mio script è necessario Ghostscript.

Implementazione

Esegue su bash

-rst.pdf

utilizzare ps2write (al posto di pswrite) in questi giorni, come si vede qui.

Risultato

<22>

Commenti e valutazioni del post

Se hai il coraggio, puoi lasciare un post su ciò che ti è piaciuto di questa divisione.



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.