Fusion de PDF

Résolu/Fermé
gnaoule Messages postés 24 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 22 décembre 2021 - Modifié le 30 oct. 2020 à 10:40
gnaoule Messages postés 24 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 22 décembre 2021 - 30 oct. 2020 à 15:00
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
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
30 oct. 2020 à 07:58
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
gnaoule Messages postés 24 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 22 décembre 2021
30 oct. 2020 à 10:25
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
30 oct. 2020 à 10:39
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
gnaoule Messages postés 24 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 22 décembre 2021 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
Modifié le 30 oct. 2020 à 11:19
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
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > gnaoule Messages postés 24 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 22 décembre 2021
30 oct. 2020 à 11:29
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
gnaoule Messages postés 24 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 22 décembre 2021 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
30 oct. 2020 à 15:00
Merci beaucoup
ca marche maintenant car j'ai du adapter la version de php du serveur local à celle du serveur web
0