TCPDF Custom page size
7 réponses
modifier : J'avais tout simplement tort : vous pouvez donner un tableau (array($width, $height)) en paramètre..
j'ai créé une sous-classe tcpdf où j'ai modifié quelques choses : getPageSizeFromFormat(); Voici le code : http://paste.pocoo.org/show/294958/.
Puis j'appelle ma classe personnalisée, ajouter un nouveau format et de définir un nouveau format :
$pdf = new CUSTOMPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//Add a custom size
$width = 175;
$height = 266;
$orientation = ($height>$width) ? 'P' : 'L';
$pdf->addFormat("custom", $width, $height);
$pdf->reFormat("custom", $orientation);
aucune édition de la classe n'est requise... tcpdf n'accepte pas un paramètre Largeur/Longueur, il n'accepte que deux longueurs et détermine laquelle est celle qui utilise la mise en page (Portrait ou paysage)
$pageLayout = array($width, $height); // or array($height, $width)
$pdf = new TCPDF('p', 'pt', $pageLayout, true, 'UTF-8', false);
sur la nouvelle version TCPDF vous pouvez définir la taille de la page de plusieurs façons:
- tous les formats de page standard sont déjà définis (plus de 300 types).
- vous pouvez simplement définir une taille de page en définissant un tableau avec 2 nombres: width, height (indépendamment de l'orientation de la page).
- alternativement, vous pouvez définir des détails de page avancés (MediaBox, Cropbox, BleedBox, TrimBox, ArtBox) comme expliqué sur la documentation de la
setPageFormat()
méthode à http://www.tcpdf.org.
vérifiez aussi les exemples par défaut no. 28 et 60 à http://www.tcpdf.org.
allez à /config / tcpdf_config.php et autour de la ligne 117, Modifiez la ligne:
define ('PDF_PAGE_FORMAT', 'A4');
par
define ('PDF_PAGE_FORMAT', 'LETTER');
il est important de mettre "lettre" en majuscule, vous pouvez voir toutes les valeurs possibles dans ce fichier:tcpdf/include/tcpdf_static.php
.
La vérité, maintenant, vous pouvez résoudre ce genre.
//AddPage [P(PORTRAIT),L(LANDSCAPE)],FORMAT(A4-A5-ETC)
$pdf->AddPage('P','A5');
modifier tcpdf.php et Ajouter un nouveau type de page ou modifier un type existant à la taille de votre page.
La réponse ci-dessus ne fonctionne pas pour moi, j'ajoute donc ma solution ici - à partir de http://www.tcpdf.org/examples/example_060.phps, changement urx, ury pour votre but
// set page format (read source code documentation for further information)
// MediaBox - width = urx - llx 210 (mm), height = ury - lly = 297 (mm) this is A4
$page_format = array(
'MediaBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297),
//'CropBox' => array ('llx' => 0, 'lly' => 0, 'urx' => 210, 'ury' => 297),
//'BleedBox' => array ('llx' => 5, 'lly' => 5, 'urx' => 205, 'ury' => 292),
//'TrimBox' => array ('llx' => 10, 'lly' => 10, 'urx' => 200, 'ury' => 287),
//'ArtBox' => array ('llx' => 15, 'lly' => 15, 'urx' => 195, 'ury' => 282),
'Dur' => 3,
'trans' => array(
'D' => 1.5,
'S' => 'Split',
'Dm' => 'V',
'M' => 'O'
),
'Rotate' => 90,
'PZ' => 1,
);
// Check the example n. 29 for viewer preferences
// add first page ---
$pdf->AddPage('P', $page_format, false, false);