Fusion de PDF [Résolu]

Signaler
Messages postés
23
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
18 novembre 2020
-
Messages postés
23
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
18 novembre 2020
-
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

Messages postés
30421
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 039
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.


Messages postés
23
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
18 novembre 2020

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
Messages postés
30421
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 039
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.
Messages postés
23
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
18 novembre 2020
>
Messages postés
30421
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020

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
Messages postés
30421
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 039 >
Messages postés
23
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
18 novembre 2020

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
Messages postés
23
Date d'inscription
vendredi 15 mai 2009
Statut
Membre
Dernière intervention
18 novembre 2020
>
Messages postés
30421
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020

Merci beaucoup
ca marche maintenant car j'ai du adapter la version de php du serveur local à celle du serveur web