web-dev-qa-db-fra.com

Taille de la page TCPDF personnalisée

Cet exemple sur le site Web de tcpdf montre comment utiliser les formats de page tels que A4, A5, etc., mais comment puis-je configurer tcpdf pour utiliser des formats personnalisés comme 175 mm x 266 mm?

Des solutions appréciées.

19
abel

EDIT: Je me suis trompé: vous pouvez donner un tableau (array ($ width, $ height)) en paramètre ..

J'ai créé une sous-classe tcpdf dans laquelle j'ai modifié quelques éléments: getPageSizeFromFormat (); Voici le code: http://paste.pocoo.org/show/294958/ .

J'appelle ensuite ma classe personnalisée, ajoute un nouveau format et définit 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);  
13
nicofrand

Aucune édition de la classe n'est requise ... tcpdf n'accepte pas de paramètre largeur/longueur, il accepte seulement deux longueurs et détermine laquelle est laquelle à l'aide de la présentation (Portrait ou Paysage)

$pageLayout = array($width, $height); //  or array($height, $width) 
$pdf = new TCPDF('p', 'pt', $pageLayout, true, 'UTF-8', false);
36
Sam

Sur la nouvelle version de TCPDF, vous pouvez définir la taille de la page de plusieurs manières:

  • 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 chiffres: largeur, hauteur (quelle que soit l'orientation de la page).
  • Vous pouvez également définir des détails de page avancés (MediaBox, Cropbox, BleedBox, TrimBox, ArtBox), comme indiqué dans la documentation de la méthode setPageFormat() à http://www.tcpdf.org .

Vérifiez également les exemples par défaut no. 28 et 60 sur http://www.tcpdf.org .

7
Nicola Asuni

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 "LETTER" en majuscule, vous pouvez voir toutes les valeurs possibles dans ce fichier: tcpdf/include/tcpdf_static.php.

7
jgoge

La vérité, maintenant vous pouvez le résoudre comme ça.

//AddPage [P(PORTRAIT),L(LANDSCAPE)],FORMAT(A4-A5-ETC)

$pdf->AddPage('P','A5');

Source: https://tcpdf.org/examples/example_028/

2
Atalus

La réponse ci-dessus ne fonctionnera pas pour moi, alors j'ajoute ma solution ici - de http://www.tcpdf.org/examples/example_060.phps , changez urx, à votre intention

// 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);
0
Tom

Modifiez le fichier tcpdf.php et ajoutez un nouveau type de page ou modifiez un type existant à la taille de votre page.

0
abel