Una de las características añadidas a PDFDocument
en Xojo 2022r2 es la capacidad de encriptar los archivos PDF creados con Xojo. Sigue leyendo y te mostraré cómo.
La encriptación o cifrado de archivos PDF creados con PDFDocument está basada en el uso de la nueva clase PDFPermissions
; de modo que tendrás que crear una nueva instancia de dicha clase proporcionando las contraseñas de “propietario” y de “usuario”. Por ejemplo:
Var d As New PDFDocument Var g As Graphics = d.Graphics Var p As New PDFPermissions("OwnerPassword","UserPassword")
Adicionalmente también puedes definir otra serie de propiedades para la instancia creada a partir de PDFPermissions
. Todas ellas son de lectura/escritura y serán aplicadas por el visor de documentos PDF cuando se abra el documento utilizando la contraseña de “usuario”.
- AllowCopyingContents está configurado a
False
por omisión. Cuando se configura aTrue
permitirá el copiado de contenidos en el PDF, como pueda ser por ejemplo el caso del texto o imágenes seleccionadas. - AllowModifyingContents está configurado a
False
por omisión. Cuando se define aTrue
permitirá modificar los contenidos del documento PDF protegido. - AllowPrinting está configurado a
False
por omisión. Cuando se define al valorTrue
permitirá que el PDF se imprima.
Una vez se ha creado la instancia de PDFPermissions y se han configurado las propiedades deseadas, todo lo que resta es asignar dicha instancia a la propiedad Permissions
de la instancia PDFDocument que quieras cifrar:
d.Permissions = p
Entonces, cuando el documento se guarde a disco PDFDocument cifrará todos los flujos de datos que puedan ser objeto de contener información sensible, tal y como pueda ser el caso de los textos, las imágenes e incluso los propios metadatos asociados con el PDF propiamente dicho. Para ello utiliza un cifrado AES de 128 bits.
¡Y eso es todo! Podrás diferenciar un PDF cifrado de otro que no lo está porque los documentos cifrados suelen incorporar la imagen de un candado como parte de su icono.
Por supuesto, cuando abras el documento en el visor o editor de archivos PDF la app te solicitará que introduzcas una contraseña. Si introduces la contraseña asociada con el “propietario” tendrás acceso a todas las opciones disponibles, mientras que si se hace utilizando la contraseña de “usuario” entonces las capacidades estarán restringidas a aquellas que se hubiesen marcado mediante las propiedades de la instancia PDFPersmissions
.