Concaténer deux fichiers PDF en PHP

Voici un code PHP pour faire la concaténation de deux documents PDF (fusion de 2 fichiers PDF pour en faire 1 seul) à l’aide de la librairie Ghostscript :

function ConcatPDF($p1, $p2) {
	$temp = "/tmp/merged_".md5(time().$p1.$p2).".pdf";
	$cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$temp $p1 $p2";
	$result = shell_exec($cmd);
	$finalfile = @realpath($temp);
	if(!$finalfile || !@filesize($finalfile)) return false;
	return $finalfile;
}

$pdfResultat = ConcatPDF("dossier/doc1.pdf", "autre/dossier/doc2.pdf");

Attention, cette fonction suppose que les chemins d’accès aux deux fichiers ($p1 et $p2) sont sûrs, et ne peuvent pas avoir été influencés par l’utilisateur, sinon problème de sécurité.

Vous aurez besoin d’installer au préalable la librairie Ghostscript sur le serveur :

apt-get install ghostscript