“setlinestyle”中tcpdf中单元格的不同边框

时间:2014-09-08 18:18:37

标签: border cell tcpdf

在库TCPDF中。如何通过命令“setlinestyle”设置不同的边框,使单元格看起来像f.e.这个:

CSS

/* top */
border-top-width="1" 
border-top-style="solid" 
border-top-color="rgba(0, 255, 0, 1)"
/* right */
border-right-width="2" 
border-right-style="dotted" 
border-right-color="rgba(255, 0, 255, 1)" 
/* bottom */ 
border-bottom-width="3" 
border-bottom-style="solid" 
border-bottom-color="rgba(0, 0, 255, 1)"
/* left */
border-left-width="4" 
border-left-style="solid" 
border-left-color="rgba(255, 0, 255, 1)" 

PHP命令,所有边框都有一种样式

$pdf->SetLineStyle(array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => 4, 'color' => array(255, 0, 0)));

$text="DUMMY";
$pdf->Cell(0, 0, $text, 1, 1, 'L', 1, 0);

2 个答案:

答案 0 :(得分:10)

创建单元格时,您可以将每个边框分别设置为不同的线条样式,方法是将它们作为border参数的分组数组传递。例如(请注意,这与上面的CSS不完全匹配。)

$complex_cell_border = array(
   'T' => array('width' => 1, 'color' => array(0,255,0), 'dash' => 4, 'cap' => 'butt'),
   'R' => array('width' => 2, 'color' => array(255,0,255), 'dash' => '1,3', 'cap' => 'round'),
   'B' => array('width' => 3, 'color' => array(0,0,255), 'dash' => 0, 'cap' => 'square'),
   'L' => array('width' => 4, 'color' => array(255,0,255), 'dash' => '3,1,0.5,2', 'cap' => 'butt'),
);
//Where T,B,R, and L are Top, Bottom, Right and Left respectively.

$pdf->Cell(0,0,"Dummy text, more dummy text!", $complex_cell_border);

它们也可以分组,因此您不必多次提供相同的样式。例如,这里我们有平行边框共享相同的样式。

$complex_cell_border = array(
   'TB' => array('width' => 1, 'color' => array(0,255,0), 'dash' => 4, 'cap' => 'butt'),
   'RL' => array('width' => 2, 'color' => array(255,0,255), 'dash' => '1,3', 'cap' => 'round'),
);

$pdf->Cell(0,0,"Dummy text, more dummy text!", $complex_cell_border);

答案 1 :(得分:1)

上述问题的简单解决方案,如果您希望每一行都有不同的边界:

$tpdf->MultiCell(12,15,'','L','C',1,0);   // Left border only 
$tpdf->MultiCell(12,15,'','LR','C',1,0);  // Left and Right border only 
$tpdf->MultiCell(12,15,'','LRB','C',1,0); // Left,Right and Bottom border only 
$tpdf->MultiCell(12,15,'','LRBT','C',1,0);// Full border