Intégration de Python dans PHP pour la Concaténation de Fichiers PDF

Dans cet article, nous aborderons une approche innovante pour la gestion des fichiers PDF en PHP. Face aux limitations des modules existants sous PHP, qui sont souvent payants ou obsolètes, nous opterons pour une solution alternative : l’utilisation d’un script Python. Cette méthode nous permettra de contourner les contraintes des outils PHP en exploitant la flexibilité et la puissance de Python pour la concaténation des fichiers PDF.

Appel de Python depuis PHP

				
					public function mergePDFs() {
    $pdfPaths = [/* Chemins des fichiers PDF à fusionner */];
    $pdfPaths = array_map('escapeshellarg', $pdfPaths); 
    $outputPath = 'chemin/vers/le/fichier/sortie.pdf'; 
    $outputPathPython = escapeshellarg($outputPath);
    $command = "python3 chemin/vers/le/script/mergePdf.py " . implode(' ', $pdfPaths) . " " . $outputPathPython;
    exec($command, $output, $returnVar);

    if ($returnVar === 0) {
        return response()->download($outputPath);
    } else {
        // Gérer l'erreur
        return response()->json(['error' => 'Failed to merge PDFs'], 500);
    }
}

				
			

Ce script PHP récupère les chemins des fichiers PDF, construit la commande pour exécuter le script Python, et gère la réponse. Ne pas oublié d’importer la librairie PyPDF2. 

				
					pip install PyPDF2
				
			
				
					import PyPDF2
import sys

def merge_pdfs(paths, output):
    pdf_writer = PyPDF2.PdfWriter()

    for path in paths:
        pdf_reader = PyPDF2.PdfReader(path)
        for page in range(len(pdf_reader.pages)):
            pdf_writer.add_page(pdf_reader.pages[page])

    with open(output, 'wb') as out_pdf:
        pdf_writer.write(out_pdf)

    return output

if __name__ == '__main__':
    input_paths = sys.argv[1:-1]  # Les chemins des fichiers source
    output_path = sys.argv[-1]    # Le chemin de sortie
    merge_pdfs(input_paths, output_path)

				
			

Ce script Python lit les fichiers PDF spécifiés, les fusionne en utilisant `PdfWriter`, et sauvegarde le résultat dans le chemin de sortie spécifié.

 

En combinant ces deux scripts, vous pouvez réaliser une fusion de fichiers PDF de manière flexible et puissante, tout en contournant les limites des modules PHP pour la gestion des PDF.

Partager l'article

Autres articles