Fusion de PDF

Résolu
gnaoule Messages postés 28 Statut Membre -  
gnaoule Messages postés 28 Statut Membre -
Bonjour, je voudrais fusionner des fichiers en php en utilisant la librairie fpdf.
Le code marche bien sur un serveur local mais ne marche pas lorsque je le mets en ligne.
voici le code :
<?php
error_reporting(1);

require_once('fpdf/fpdf.php');
require_once('fpdi/fpdi.php');

$pdf = new FPDI();

ajouteFichier($pdf,"AP0001.pdf");
ajouteFichier($pdf,"AP0002.pdf");

$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->SetTextColor(50,50,50); 
$pdf->Cell(0,10,'Nouvelle Page Annexe',1,1,'C');



$pdf->Output('nouveau_fichier.pdf','F');

function ajouteFichier($pdf,$file)
{
$nbPage = $pdf->setSourceFile($file);
for ($i = 1; $i <= $nbPage; $i++) {
 $tplidx = $pdf->ImportPage($i);
 $size = $pdf->getTemplatesize($tplidx);
 $pdf->AddPage('P', array($size['w'], $size['h']));
 $pdf->useTemplate($tplidx);
 }
}

?>


EDIT : Correction des balises de code ( ajout du LANGAGE pour avoir la coloration syntaxique et l'indentation )
Explications à lire ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

.

Merci de m'aider

2 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Si ton code fonctionne en local.... c'est que le souci ne vient pas de ton code.

    As tu des messages d'erreur quand tu lances ton code ?

    A minima,
    Il faut vérifier que tu as bien tous les fichiers nécessaires sur ton serveur, que toutes les librairies sont bien présentes, que tu as les bons droits d'accès aux fichiers/dossiers.

    Il faudrait également regarder les log du serveur pour essayer de trouver la cause de ton souci.

    0
  2. gnaoule Messages postés 28 Statut Membre
     
    Merci de me répondre,
    lorsque j'exécute le fichier sur le serveur, je vois apparaitre une page blanche sans message erreur. de plus, je me suis rassuré que les librairies soient bien en place.
    Mais toujours pareil
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Si tu as une page blanche.. c'est que tu as une erreur 500 ...
      Il y a donc un souci dans ton script, certaintement lié aux droit d'accès aux fichiers/dossiers et/ou au chargement des scripts de la lib fpdf

      NB: ça pourrait aussi venir d'une version php différente sur ton serveur que celle que tu as en local....

      Donc :
      1 - Faire un phpinfo() pour vérifier les versions de php entre ton local et ton serveur
      2 - Utiliser ce phpinfo pour vérifier que les lib php requises pour faire fonctionner fpdf sont actvées
      3 - Vérifier les droits du dossier et des fichiers où se trouvent la lib fpdf et ton script
      4 - (qui aurait pu être le 1 en fait.... ) regarder dans les logs d'erreurs du serveur ce qui s'affiche.
      0
      1. gnaoule Messages postés 28 Statut Membre > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci de me répondre,
        après la modification du code,

        include('fpdf/fpdf.php');
        include('Fpdi/fpdi.php');


        $files = ['AP0001.pdf', 'AP0002.pdf'];

        $pdf = new FPDI();

        // iterate over array of files and merge
        foreach ($files as $file) {
        $pageCount = $pdf->setSourceFile($file);
        for ($i = 0; $i < $pageCount; $i++) {
        $tpl = $pdf->importPage($i + 1, '/MediaBox');
        $pdf->addPage();
        $pdf->useTemplate($tpl);
        }
        }

        $pdf->Output('merged.pdf','F');


        voici l'erreur qui apparait sur le serveur


        Fatal error: Uncaught Error: Class 'FPDI' not found in /htdocs/PDFMerger/sample.php:10 Stack trace: #0 {main} thrown in /htdocs/PDFMerger/sample.php on line 10

        PHP Version 5.6.3 en local
        PHP version 7.3.23 sur le serveur
        Qaund je verifie sur phpinfo les lib Zlib et GD sont actives
        0
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > gnaoule Messages postés 28 Statut Membre
         
        Et bien.. rien que ça

        Fatal error: Uncaught Error: Class 'FPDI' not found

        ça devrait te permettre d'avancer.....

        Il ne trouve pas la class FPDI .. ce qui semble donc indiquer un souci avec le fichier Fpdi/fpdi.php
        0
      3. gnaoule Messages postés 28 Statut Membre > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci beaucoup
        ca marche maintenant car j'ai du adapter la version de php du serveur local à celle du serveur web
        0