Crear un PDF con contraseña en PHP

Crear un PDF con contraseña en PHP

Veremos cómo crear un PDF con contraseña mediante la librería FpdfProtection en lenguaje de programación PHP, si te interesa crear archivos pdf con seguridad para tus proyectos entonces este artículo te interesara bastante.

Muchas veces necesitamos que nuestros proyectos puedan generar archivos PDF.

Además estos archivos PDF puedan tener una cierta seguridad básica para controlar quien ve el contenido.

Justo ahora estoy en un proyecto en el que se genera un documento PDF y se almacena de forma pública por requisitos de proyecto.


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

Aun así este documento generado debería ser visualizado únicamente por las personas autorizadas.

Por esta razón hoy vamos a aprender cómo crear un PDF con contraseña en PHP.

Para este proyecto necesitamos la librería FpdfProtection.

use setasign\FpdiProtection\FpdiProtection;
require __DIR__ . '/vendor/autoload.php';

Considerando que nuestro pdf que queremos encriptar se encuentra en la variable $output hacemos lo siguiente.

$pdf = new FpdiProtection();
numPages = $pdf->setSourceFile($output);

Aquí más que nada creamos nuestra variable de FpdiProtection y creamos un documento basado en el pdf que ya existe.

Ahora debemos pasar todo el contenido o páginas de nuestro archivo a un archivo con Fpdi.

for($i=1; $i<=$numPages; $i++){
	$pageid = $pdf->importPage($i);
	$size = $pdf->getTemplateSize($pageid);
	$pdf->addPage($size['orientation']);
	$pdf->useImportedPage($pageid);
}

Comprimir archivos en PHP y descomprimir, con contraseña.

Establecemos la contraseña maestra y la contraseña de usuario, no puede ser la misma, de hecho debería ser diferente una de otra.

$ownerPassword = $pdf->setProtection(
	FpdiProtection::PERM_PRINT | FpdiProtection::PERM_COPY,
	[contraseña de usuario],
	[contraseña maestra]
);

Ya por último volcamos la salida a un archivo.

$pdf->Output('F', [ruta de guardado]);

Cabe recordar que ahora tendrás dos documentos PDF, el original y el encriptado, siéntente libre de eliminar el primero si ya no te es de utilidad.

Ahora ya podemos publicar nuestro documento PDF con la contraseña establecida, recuerda guardar esta contraseña si es que la estás generando dinámicamente.

En este mismo proyecto también tuve la necesidad de convertir varios PDF en uno o lo que lo mismo hacer merge estos documentos.

Si te interesa en otro post publico el código para hacer esto, de hecho fusiono documentos PDF e imágenes de una carpeta en un solo PDF.

Si esta información sobre cómo crear un PDF con contraseña en PHP te ha sido de utilidad no olvides compartirla en tus redes sociales favoritas y dejarnos un comentario en la sección de abajo si tienes cualquier duda relacionada con este tema, será un placer ayudarte.

¡Hasta luego!

Clic para valorar esta información
[Total: 1 Promedio: 5]