TCPDF нестандартный размер страницы - PullRequest
21 голосов
/ 16 октября 2010

В этом примере на веб-сайте tcpdf показано, как использовать форматы страниц, такие как A4, A5 и т. Д., Но как настроить tcpdf для использования нестандартных размеров, например 175 мм x 266 мм?.

Ответы [ 7 ]

36 голосов
/ 24 июня 2011

Редактирование класса не требуется ... tcpdf не принимает параметр ширины / длины, он просто принимает две длины и определяет, какой из них использует макет (либо книжный, либо альбомный)

$pageLayout = array($width, $height); //  or array($height, $width) 
$pdf = new TCPDF('p', 'pt', $pageLayout, true, 'UTF-8', false);
13 голосов
/ 23 ноября 2010

РЕДАКТИРОВАТЬ: Я был просто неправ: вы можете дать массив (массив ($ width, $ height)) в параметре ..

Я создал подкласс tcpdf, где я изменилНесколько вещей: getPageSizeFromFormat ();Вот код: http://paste.pocoo.org/show/294958/.

Затем я вызываю свой пользовательский класс, добавляю новый формат и устанавливаю новый формат:

$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);  
7 голосов
/ 03 апреля 2014

Перейдите в /config/tcpdf_config.php и около строки 117, измените строку:

define ('PDF_PAGE_FORMAT', 'A4');

от

define ('PDF_PAGE_FORMAT', 'LETTER');

Важно указать букву «ПИСЬМО» в верхнем регистре, вы можете увидеть все возможные значения в этом файле:

7 голосов
/ 27 сентября 2011

В более новой версии TCPDF вы можете определить размер страницы несколькими способами:

  • Все стандартные форматы страниц уже определены (более 300 типов).
  • Вы можете простоопределить размер страницы, указав массив из 2 чисел: ширина, высота (независимо от ориентации страницы).
  • В качестве альтернативы, вы можете определить дополнительные детали страницы (MediaBox, Cropbox, BleedBox, TrimBox, ArtBox), как описано вдокументация по методу setPageFormat() в http://www.tcpdf.org.

Проверьте также примеры по умолчанию №.28 и 60 на http://www.tcpdf.org.

2 голосов
/ 14 октября 2016

Правда, теперь вы можете решить это следующим образом.

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

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

Источник: https://tcpdf.org/examples/example_028/

0 голосов
/ 24 сентября 2013

Ответ выше не будет работать для меня, поэтому я добавляю свое решение здесь - с http://www.tcpdf.org/examples/example_060.phps, изменить urx, ury для вашей цели

// 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 голосов
/ 23 октября 2010

Отредактируйте tcpdf.php и добавьте новый тип страницы или измените существующий тип в соответствии с размером страницы.

...