Je m'auto répond tout seul, c'est vachement plus pratique.
L'erreur venait de la ligne : useTemplate($tplidx, 10, 10, 90);
qui signifie (si j'ai bien compris) : utiliser le modèle (c'est à dire le fichier que l'on vient d'ouvrir), en le mettant au point de coordonnées 10 et 10, et d'une largeur de 90 mm.
J'ai donc modifié cette ligne en mettant les coordonnées 0,0 et d'une largeur de 210 mm, soit la largeur d'une page A4.
Et ça fonctionne très bien.
Donc, pour info, je récapitule :
Il faut récupérer fpdi ici :
http://www.setasign.de/supra/kon2_dl/60 ... -1.4.4.zip.
Puis récupérer fpdf_tpl ici :
http://www.setasign.de/supra/kon2_dl/63 ... -1.2.3.zip
Mettre au même endroit que fpdl (ou sinon changer l'adresse dans l'appel à la classe).
On crée notre fichier pdf avec libre office.
On le sauvegarde en le mettant dans le même répertoire que notre fichier php qui va l'utiliser (dans cet exemple).
Dans le fichier php :
On appelle fpdl :
On appelle fpdi :
ATTENTION : fpdl_tpl doit être dans le méme répertoire que fpdi, car il est appelé par celui-ci (ou sinon, changer son adresse dans fpdi.php)
On crée un objet fpdi :
(j'espère que la terminologie est bonne, parce que moi et l'objet...)
On ouvre notre fichier php fabriqué avec libreoffice :
(notre fichier s'appelle ici doctest.pdf et se trouve dans le même répertoire).
On "importe" la page 1
Je ne sais pas ce que signifie '/MediaBox'. Dans d'autres exemple sur le site, il n'y a rien. Mais avec ça , je sais que ça marche...
On crée un nouveau document php :
On utilise la page 1 que l'on a importée avant :
Je rappelle donc qu'il s'agit ici de la mettre aux coordonnées 0,0 et qu'elle fait 210 mm de large.
On rajoute sur cette page, tout ce que l'on veut rajouter par des instructions fpdf.
On finit par :
pour le sauvegarder dans un fichier newpdf.pdf, ou si l'on veut directement l'imprimer, on utilisera simplement à la place :
Pour l'option 'D', je ne sais plus ce que c'est; regardez le manuel (en français) de fpdf pour plus d'informations.
Je résume donc tout ça par
Code : Tout sélectionner
<?php
require_once('fpdf.php');
require_once('fpdi.php');
$PDF = new FPDI();
$pagecount = $PDF->setSourceFile('doctest.pdf');
$tplidx = $PDF->importPage(1, '/MediaBox');
$PDF->addPage();
$PDF->useTemplate($tplidx, 0, 0, 210);
/* code pour rajouter tout ce qu'on a à rajouter */
$PDF->Output();
?>
En espérant avoir aidé des prochains intéressés.
Merci à Moogli pour son aide.
Michel
Je m'auto répond tout seul, c'est vachement plus pratique.
L'erreur venait de la ligne : useTemplate($tplidx, 10, 10, 90);
qui signifie (si j'ai bien compris) : utiliser le modèle (c'est à dire le fichier que l'on vient d'ouvrir), en le mettant au point de coordonnées 10 et 10, et d'une largeur de 90 mm.
J'ai donc modifié cette ligne en mettant les coordonnées 0,0 et d'une largeur de 210 mm, soit la largeur d'une page A4.
Et ça fonctionne très bien.
Donc, pour info, je récapitule :
Il faut récupérer fpdi ici : [url]http://www.setasign.de/supra/kon2_dl/60111/FPDI-1.4.4.zip[/url].
Puis récupérer fpdf_tpl ici : [url]http://www.setasign.de/supra/kon2_dl/63411/FPDF_TPL-1.2.3.zip[/url]
Mettre au même endroit que fpdl (ou sinon changer l'adresse dans l'appel à la classe).
On crée notre fichier pdf avec libre office.
On le sauvegarde en le mettant dans le même répertoire que notre fichier php qui va l'utiliser (dans cet exemple).
Dans le fichier php :
On appelle fpdl :
[code]require_once('fpdf.php');[/code]
On appelle fpdi :
[code]require_once('fpdi.php');[/code]
ATTENTION : fpdl_tpl doit être dans le méme répertoire que fpdi, car il est appelé par celui-ci (ou sinon, changer son adresse dans fpdi.php)
On crée un objet fpdi : [code]$PDF = new FPDI();[/code] (j'espère que la terminologie est bonne, parce que moi et l'objet...)
On ouvre notre fichier php fabriqué avec libreoffice : [code]$pagecount = $PDF->setSourceFile('doctest.pdf');[/code] (notre fichier s'appelle ici doctest.pdf et se trouve dans le même répertoire).
On "importe" la page 1 [code]$tplidx = $PDF->importPage(1, '/MediaBox');[/code] Je ne sais pas ce que signifie '/MediaBox'. Dans d'autres exemple sur le site, il n'y a rien. Mais avec ça , je sais que ça marche...
On crée un nouveau document php : [code]$PDF->addPage();[/code]
On utilise la page 1 que l'on a importée avant : [code]$PDF->useTemplate($tplidx, 0, 0, 210);[/code] Je rappelle donc qu'il s'agit ici de la mettre aux coordonnées 0,0 et qu'elle fait 210 mm de large.
On rajoute sur cette page, tout ce que l'on veut rajouter par des instructions fpdf.
On finit par : [code]$PDF->Output('newpdf.pdf', 'D');[/code] pour le sauvegarder dans un fichier newpdf.pdf, ou si l'on veut directement l'imprimer, on utilisera simplement à la place : [code]$PDF->Output();[/code]
Pour l'option 'D', je ne sais plus ce que c'est; regardez le manuel (en français) de fpdf pour plus d'informations.
Je résume donc tout ça par [code]<?php
require_once('fpdf.php');
require_once('fpdi.php');
$PDF = new FPDI();
$pagecount = $PDF->setSourceFile('doctest.pdf');
$tplidx = $PDF->importPage(1, '/MediaBox');
$PDF->addPage();
$PDF->useTemplate($tplidx, 0, 0, 210);
/* code pour rajouter tout ce qu'on a à rajouter */
$PDF->Output();
?>[/code]
En espérant avoir aidé des prochains intéressés.
Merci à Moogli pour son aide.
Michel