2017-09-28 5 views
0

J'utilise FPDI et FPDF et quand j'importé mon pdf qui a un design de bonne taille, beau, pour une raison quelconque, le pdf généré que je sauvegarde dans un dossier est légèrement modifié en taille , un peu plus petit/recadré à la fois en bas et sur les côtés droit/gauche. Comment puis-je importer le PDF tel quel? Avec exactement la même taille que l'original? Merci d'avance!FPDI recadre légèrement mon PDF importé

<?php 
use setasign\Fpdi\Fpdi; 

require_once('FPDF/fpdf.php'); 
require_once('FPDI/src/autoload.php'); 

// initiate FPDI 
$pdf = new Fpdi(); 

$pdf->setSourceFile('file.pdf'); 
$tplidx = $pdf->importPage(1); 

$pdf->addPage(); 
$pdf->useTemplate($tplidx); 

$pdf->SetFont('Helvetica'); 
$pdf->SetXY(5, 5); 
$pdf->Write(8, 'This is an example of inputted text.'); 

$filename="test8.pdf"; 
$pdf->Output($filename, 'F'); 

?> 

Répondre

0

Ceci est une bonne question pour montrer que FPDI ne modifie pas un PDF mais vous permettent d'importer la page dans une structure réutilisable.

Vous n'avez défini aucune taille de page dans le constructeur ni dans l'appel addPage(), donc la taille de la page résultante est A4 (taille par défaut).

Si vous importez une page par ex. format de lettre cette page importée ne tiendra pas sur la page A4 - bien sûr.

Il existe des solutions pour cela:

A: Obtenez ce paramètre la taille de la page importée et appelez AddPage():

$pageId = $this->ImportPage($pageNo); 
$s = $this->getTemplatesize($pageId); 
$this->AddPage($s['orientation'], $s); 
$this->useTemplate($pageId); 

B: Réglez le paramètre adjustPageSize $ du useImportedPage()/méthode useTemplate() true:

$this->AddPage(); 
$pageId = $this->ImportPage($pageNo); 
$this->useTemplate($pageId, ['adjustPageSize' => true); 

je suggère la solution A parce qu'elle est simple.

+0

Bel homme !! Merci beaucoup!!! –