TCPDF et FPDI avec plusieurs pages
Cela ressemble à la chose la plus simple, mais je ne peux pas le faire fonctionner.
J'ai besoin d'ajouter du texte à la première page d'un pdf multi-pages (peut être n'importe quel nombre de pages)
À l'aide de ce code sur une page de deux pdf (sans la boucle, en utilisant seulement $pdf->importPage(2)), je me retrouve avec deux pages, mais la deuxième page est une répétition de la page un. Le texte est écrit sur la première page qui est bon, mais j'ai besoin de toutes les pages incluses dans la sortie pdf. Voici mon code
//Original file with multiple pages
$fullPathToFile = 'full/path/to/file.pdf';
class PDF extends FPDI {
var $_tplIdx;
function Header() {
global $fullPathToFile;
if (is_null($this->_tplIdx)) {
$this->setSourceFile($fullPathToFile);
$this->_tplIdx = $this->importPage(1);
}
$this->useTemplate($this->_tplIdx);
}
function Footer() {}
}
//initiate PDF
$pdf = new PDF();
$pdf->setFontSubsetting(true);
//add a page
$pdf->AddPage();
//The new content
$pdf->SetFont("helvetica", "B", 14);
$pdf->Text(10,10,'Some text here');
//How to get the number of pages of original pdf???
//$numPages = $pdf->getNumPages(???);
//Carry on adding all remaining pages starting from page 2
for($i=2;$i<=$numPages;$i++) {
//Add another page
$pdf->AddPage();
//Do I need to declare the source file here?
//$pdf->setSourceFile($fullPathToWD);
$pdf->importPage($i);
}
//Output the file as forced download
$pdf->Output('theNewFile.pdf', 'D');
Liens vers des docs
Classe TCPDF
http://www.tcpdf.org/doc/code/classTCPDF.html#a5171e20b366b74523709d84c349c1ced
FPDI Classes
http://www.setasign.de/support/manuals/fpdi/
FPDF_TPL Classes
http://www.setasign.de/support/manuals/fpdf-tpl/
OriginalL'auteur PaulMrG | 2013-01-27
Vous devez vous connecter pour publier un commentaire.
Résolu mon problème...
Vous obtenez le nombre de pages par l'ajout de la première partie de cette ligne
Et de voir l'avant-dernier bloc de code - pour la boucle ajoute le reste des pages.
Ne sais pas si c'est comment il devrait être fait? J'ai lu à quelques endroits qu'il n'était même pas possible de réaliser cela, le code n'est pas fourni dans la documentation. Toutefois, cela fonctionne, espérons que cela aide quelqu'un.
Vous pourriez tout aussi bien pu mettre le
useTemplate
dans cefor
boucle au lieu de l'extension de la classe, ce serait sans doute faire la boucle de plus intuitive (c'est à dire obtenir les données (importPage
), les données d'impression (useTemplate
)). Mais la bonne question/réponse, néanmoins, il m'a inspiré pour résoudre mon problème!La méthode
$pdf->endPage()
n'est plus présent.OriginalL'auteur PaulMrG
J'ai du mal avec ce un peu et a essayé de trouver la manière la plus simple pour ajouter du texte à la dernière page d'un document de plusieurs pages. Voici le code très simple qui a fonctionné pour moi:
Il suffit de changer le chemin d'accès complet vers le fichier à un emplacement où vous avez un PDF multi-pages.
$pdf->Output('F', $path)
OriginalL'auteur Michael Parmley
Dans l'exemple, vous avez 10 élèves dans la gamme, et vous avez besoin de créer des curriculum vitae pour chaque. Lors de l'examen, un résumé ont 3 pages. Donc dans u obtenir des pdf de 30 pages, avec le texte correct.
SetAutoPageBreak(true, 10), pas de curseur à la dernière page, donc vous devrez le faire manuellement avec la fonction
$pdf->lastPage();
OriginalL'auteur smashrain
que le code ne fonctionnent pas, essayez ceci:
OriginalL'auteur rimba