Граница Tcpdf multiCell отсутствует при превышении градиента - PullRequest
0 голосов
/ 04 апреля 2020

Как использовать MultiCell с границей над градиентом?

enter image description here

Обратите внимание, что при использовании ячейки отображается граница.

// set colors for gradients (r,g,b) or (grey 0-255)
$red = array(255, 0, 0);
$blue = array(0, 0, 200);
$yellow = array(255, 255, 0);
$green = array(0, 255, 0);
$white = array(255);
$black = array(0);

// set the coordinates x1,y1,x2,y2 of the gradient (see linear_gradient_coords.jpg)
$coords = array(0, 0, 1, 0);

// paint a linear gradient
$pdf->LinearGradient(20, 45, 80, 80, $red, $blue, $coords);

// write label
$pdf->MultiCell(100, 100, 'LinearGradient()', 1);

1 Ответ

1 голос
/ 04 апреля 2020

Согласно Николау (https://sourceforge.net/p/tcpdf/bugs/236/) "это разыскиваемое поведение".

Добавить $pdf->setPageMark() между градиентом и многоячейкой.

// paint a linear gradient
$pdf->LinearGradient(20, 45, 80, 80, $red, $blue, $coords);

$pdf->setPageMark();

// write label
$pdf->MultiCell(100, 100, 'LinearGradient()', 1);

Также, с помощью setPageMark docblock:

Установить начальную метку записи для текущего Поток страницы используется для установки границ и заливок. Границы и заливки всегда создаются после содержимого и вставляются в позицию, отмеченную этим методом . Эта функция должна вызываться после вызова функции Image () для фонового изображения. Фоновые изображения должны всегда вставляться перед вызовом функций Multicell () или WriteHTMLCell () или Write HTML ().

...