TCPDF практические заметки (документация) на русском

    Опубликовано Andres - пн, 10/09/2017 - 16:30

    SetMargins - поля страницы

    $pdf->SetMargins(20, 10, 10); 

    SetMargins( $left, $top, $right = -1, $keepmargins = false )
    $left - слева
    $top - сверху
    $right - справа
    $keepmargins - сохранять поля (необяз) показывает, что значения отступов по умолчанию заменяются нашими собственными значениями

    AddPage - создание страницы

    $pdf->AddPage(); 

    SetAutoPageBreak - авто создание страницы когда место закочится

    $pdf->SetAutoPageBreak(true,10);

    автоматически создавать следующую страницу при достижении конца (36 пунктов от нижнего края) предыдущей.

    Включает или отключает автоматический режим разбивки страницы. При включении вторым параметром является расстояние от нижней части страницы, которое определяет предел срабатывания. По умолчанию режим включен, а край составляет 2 см.

    SetFont - шрифт

    1. $pdf->SetFont('arial','',8);
    2. SetFont( $family, $style = '', $size = null, $fontfile = '', $subset = 'default', $out = true )

    Устанавливает шрифт, используемый для печати символьных строк. Шрифт может быть либо стандартным, либо шрифтом, добавленным с помощью метода AddFont (). Стандартные шрифты используют кодировку Windows cp1252 (Западная Европа). Этот метод можно вызвать до создания первой страницы и сохранения шрифта со страницы на страницу. Если вы хотите изменить текущий размер шрифта, проще вызвать SetFontSize (). Примечание. Для стандартных шрифтов файлы метрики шрифта должны быть доступны. Для этого есть три возможности:
    Они находятся в текущем каталоге (том, где работает скрипт)
    Они находятся в одной из каталогов, определяемых параметром include_path
    Они находятся в каталоге, определяемом константой K_PATH_FONTS

    setCellHeightRatio - высота строки (line-height)

    $pdf->setCellHeightRatio(1.5);

    SetX - положение по X

    SetX( $x, $rtloff = false )

    Определяет абсцисс текущей позиции. Если переданное значение отрицательное, оно относится к правой части страницы (или осталось, если язык RTL).

    SetY - положение по Y

    $this->SetY( -1.5 * 72, true );

    SetY( $y, $resetx = true, $rtloff = false )

    Перемещает текущую абсцисс обратно в левое поле и устанавливает ординату. Если переданное значение отрицательное, оно относится к нижней части страницы.

    SetXY - положение по X и Y

    Определяет абсцисс текущей позиции. Если переданное значение отрицательное, оно относится к правой части страницы (или осталось, если язык RTL).

    GetX - возвращает положение по X

    $pdf->GetX();

    GetY -  возвращает положение по Y

    $pdf->GetY();

    Номер страницы

    $pdf->PageNo();

    MultiCell - ячейка таблицы

    MultiCell($w (Ширина), $h(Высота),
        $txt (Текст), $border(Бордюр)= 0, $align (Выравнивание по гор.) = 'J', $fill (Цвет ячейки) = 0, $ln (куда след.) = 1, 
        $x (Горизонталь) = '', $y (Вертикаль) = '', $reseth (Сброс последней высоты ячейки) = true, $stretch (режим растяжения) = 0, 
        $ishtml (содержимое HTML) = false, $autopadding (Автозаполнение  - учет ширины линии) = true, $maxh (Максимальная высота) = 0,
        $valign (Выравнивание по верт.)='M', $fitcell (Подходящая ячейка) =false)

     

    1. $pdf->MultiCell($w = 19.6, $h = 4.5, 
    2.     $txt = "Код",
    3.     $border = array('LTRB' => array('width' => 0.1)), $align = 'L', $fill = 0, $ln = 10, 
    4.     $x = '',  $y = '', $reseth = true, $stretch = 0, 
    5.     $ishtml = false, $autopadding = true, $maxh = $h, $valign = 'M', 
    6.     $fitcell = true);

    $w - Ширина
    $h - Высота
    $txt - Текст
    $border - Бордюр
    $align - Выравнивание по горизонтали
    $fill - Цвет ячейки
    $ln - куда следующая
    $x - Горизонталь
    $y - Вертикаль
    $reseth - Сброс последней высоты ячейки
    $ishtml - содержимое HTML
    $autopadding - Автозаполнение  - учет ширины линии
    $maxh - Максимальная высота
    $valign - Выравнивание по вертикали
    $fitcell - Подходящая ячейка

    Автоматическая высота ячейки

    $h = 0

    Что бы высота ячейки задавалась автоматически в зависимости от содержимого нужно указать (2ым аргументом) значение 0. Например:

    1. $pdf->MultiCell($w = $td1_100 * 75, $h = 0,
    2. "{$doc_kem_vydan}",
    3. array('B' => array('width' => 0.1)), $align='L', $fill=0, $ln=10,
    4. $x = $nextX, $y = $nextY, $reseth = true, $stretch = 0,
    5. $ishtml=false, $autopadding=true, $maxh='', $valign='B',
    6. $fitcell=true);

    Соответственно, что бы следующая ячейка знала откуда ей следует начинаться по ординате Y воспользуйтесь функцией: $pdf->GetY();

    Разное

    1 пт (пункт) = 0.3527775 мм

    Где ещё можно смотреть годную инфу

    Онлайн конверторы шрифтов (для старых версий TCPDF*)

    * В новой версии (на момент написании статьи август 2018 г использовал версию 6.2.25) всё проще:

    Последняя версия TCPDF автоматически преобразует шрифты в формат TCPDF с использованием метода addTTFfont(). Старые шрифтовые программы и скрипты были удалены.

    Например:

    1. // convert TTF font to TCPDF format and store it on the fonts folder
    2. $fontname = $pdf->addTTFfont('/path-to-font/FreeSerifItalic.ttf', 'TrueTypeUnicode', '', 96);
    3.  
    4. // use the font
    5. $pdf->SetFont($fontname, '', 14, '', false);

    ПРИМЕЧАНИЕ. После того, как шрифт был преобразован, TCPDF больше не требует, чтобы TTF файл или вышеупомянутый вызов addTTFfont()!

    ** У меня не получилось сделать по примеру, что показан выше, я использовал такой код:

    1. $path_to_ttf = $_SERVER["DOCUMENT_ROOT"] . '/tcpdf/fonts/arial/arial.ttf';
    2. $fontname = TCPDF_FONTS::addTTFfont($path_to_ttf , 'TrueTypeUnicode', '', 96);

    P.S.: Если у вас что то пошло не так, (не поняли вышесказанного) - скачайте этот архив в нём папка fonts из моей рабочей TCPDF (я использую только Arial (обычный, жирный и курсивный)). В крайнем случае - пишите в Telegram (ник: Andres_website) - разберёмся.

    Теги