TCPDF добавить строку на странице в заголовке

Я создал собственный заголовок для своего PDF-файла, созданного с помощью TCPDF. Теперь я хотел бы добавить синюю линию (шириной около 2 пикселей), которая проходит через страницу в нижней части заголовка, но не могу понять, как это сделать?


person Billy    schedule 01.05.2011    source источник


Ответы (6)


Я считаю, что вы делаете это так:

$style = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(255, 0, 0));

$pdf->Line(5, 10, 80, 30, $style);

Вот полный пример

http://www.tcpdf.org/examples/example_012.phps

person serby    schedule 01.05.2011
comment
@PabliSerbo - спасибо за примеры, теперь я понял. Но как бы вы получили ширину заголовка, чтобы установить ширину строки? - person Billy; 01.05.2011

Я нашел самый простой способ поставить строку

$pdf->writeHTML("<hr>", true, false, false, false, '');
person Vinayak Shedgeri    schedule 28.02.2016

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

$pdf->Line(5, $pdf->y, $pdf->w - 5, $pdf->y);

Однако, если вы пытаетесь отобразить цветной html-тег <hr>, вам нужно будет настроить TCPDF::DrawColor (этот отрывок из кода, который добавляет полосу графика к каждой строке отчета о данных в соответствии с $twidth и $lengthmm):

$htmlbar = '<hr style="width:' . $lengthmm . 'mm;">';
$oldDrawColor = $pdf->DrawColor;
$pdf->setDrawColor(121, 161, 46);
$pdf->MultiCell($twidth,'2',$htmlbar,0,'L',$fill,1,'','',true,0,true,false,4,'T',false);
$pdf->DrawColor = $oldDrawColor;
person ekerner    schedule 11.04.2013

Суть в том, чтобы получить значение x для второй точки. Вот как я это делаю:

$pageWidth    = $pdf->getPageWidth();   // Get total page width, without margins
$pageMargins  = $pdf->getMargins();     // Get all margins as array
$headerMargin = $pageMargins['header']; // Get the header margin
$px2          = $pageWidth - $headerMargin; // Compute x value for second point of line

$p1x   = $this->getX();
$p1y   = $this->getY();
$p2x   = $px2;
$p2y   = $p1y;  // Use same y for a straight line
$style = array();
$this->Line($p1x, $p1y, $p2x, $p2y, $style);

Ссылки TCPDF::getMargins()
http://www.tcpdf.org/doc/code/classTCPDF.html#ae9bd660bf5b5e00eea82f1168cc67b5b

TCPDF::getPageWidth()
http://www.tcpdf.org/doc/code/classTCPDF.html#a510ab21d6a373934bcd3bd4683704b7e

Повеселись!

person Uwe Schmelzer    schedule 17.05.2014

Просто добавьте немного HTML :)

$html ='<hr>';
$pdf->writeHTML($html, true, false, true, false, '');
person Community    schedule 26.08.2016

Рисование горизонтальной черной линии в текущей позиции:

$style = ['width' => 0.2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => [0, 0, 0]];
$this->pdf->SetLineStyle($style);

$this->pdf->Line(PDF_MARGIN_LEFT, $this->pdf->getY(), $this->pdf->getPageWidth()-PDF_MARGIN_LEFT, $this->pdf->getY());
$this->pdf->Ln();
person Martin Zeitler    schedule 21.09.2020