En cuanto a visualizarlo sin que se pueda copiar, es muy fácil usando Pdfium u otra librería similar para Delphi. Lo que haces es, a la hora de mostrarlo, renderizas cada página a imagen y la pintas en el canvas. Esa librería o alguna similar viene con u. Ejemplo precisamente de eso.
En cuanto que extraigan el PDF, basta con que el PDF esté encriptado; si lo extraen no sabrás la contraseña para verlo.
Lo del ID para decidir si se muestra o no, como dicen, tienes la MAC, el número de serie del disco, el GUID del equipo, el GUID del usuario Windows, y más cosas.
Según sea el caso, si puedes hacer el EXE personalizado, una posibilidad sería calcular el identificador de máquina destino, y encriptar el PDF con ello.
Esto te permitirá no tener que incorporar el ID al exe: si no es correcto, el PDF no se puede abrir, y ya está.
Procura utilizar streams, y no archivos temporales, a la hora de manejar el PDF embebido.
Por cierto: si el PDF lo encriptas con el ID del destino, no necesitas emveberlo en el EXE, ya que va protegido.
De hecho, no necesitas el EXE personalizado: te vale un Exe único, y el PDF encriptado con el ID
|